Nginx安装

具体安装nginx请移步:[nginx部署]

安装依赖

安装pcre依赖软件

[root@ubuntu ~]# yum install -y pcre pcre-devel //外网情况使用此安装方式
[root@ubuntu ~]# rpm -ivh pcre //内网情况使用此安装方式
[root@ubuntu ~]# rpm -ivh pcre-devel    //内网情况使用此安装方式
#编译安装pcre依赖软件(注意编译安装软件包需要开发工具的支持安装nginx需要make、gcc、c++支持)
#下载地址: https://ftp.pcre.org/pub/pcre/    //根据相关情况进行选择版本下载
[root@ubuntu ~]# wget https://ftp.pcre.org/pub/pcre/pcre-8.00.tar.gz    //下载pcre软件包
[root@ubuntu ~]# tar zxf pcre-7.80.tar.gz    //解压软件包
[root@ubuntu ~]# cd pcre-7.80 //进入相关目录
[root@ubuntu ~]# ./configure    //配置
[root@ubuntu ~]# make && make install    //编译并编译部署 

安装openssl依赖软件

[root@ubuntu ~]# yum install -y openssl openssl-devel    //外网情况使用此安装方式
[root@ubuntu ~]# rpm -ivh openssl    //内网情况使用此安装方式
[root@ubuntu ~]# rpm -ivh openssl-devel    //内网情况使用此安装方式
编译安装与pcre几乎一致,请参考上一小节

安装Nginx

nginx下载地址:[nginx官网地址],下载nginx时需要注意版本问题,nginx分为三个版本:稳定版、开发版和老版本稳定版

检查依赖是否安装

[root@ubuntu ~]# rpm -qa pcre-devel pcre
pcre-devel-.el6.x86_64     //pcre的devel字符串包已经安装
pcre-.el6.x86_64       //pcre软件包已经安装
[root@ubuntu ~]# rpm -qa openssl-devel openssl
openssl-.el6.x86_64     //openssl的包已经安装
openssl-devel--.el6.x86_64    //openssl的devel字符串包已经安装

安装nginx

[root@ubuntu:/opt]# wget -q http://nginx.org/download/nginx-1.17.6.tar.gz    //下载软件包
[root@ubuntu:/opt]# ls nginx-.tar.gz //查看是否下载成功
-rw-r--r--  root root  Nov  : nginx-.tar.gz
[root@ubuntu:/opt]# useradd nginx -s /sbin/nologin -M    //创建nginx执行用户
[root@ubuntu:/opt]# tar xf nginx-.tar.gz    //解压nginx软件包
[root@ubuntu:/opt]# cd nginx-    //进入解压目录
[root@ubuntu nginx-]#./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module    //配置nginx软件包

具体配置模块讲解请移步[nginx编译配置模块大全]

[root@ubuntu nginx-]# make    //编译nginx软件包
[root@ubuntu nginx-]# make install    //部署nginx软件包

启动nginx检查是否安装成功

检查nginx语法

root@ubuntu:~# /usr/local/nginx/sbin/nginx -t    //查看nginx配置文件是否正确
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok    //表示语法正确
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful    //test成功

启动nginx

root@ubuntu:~# /usr/local/nginx/sbin/nginx //直接启动就可以

具体的启动方式请移步:[nginx部署]

查看Nginx端口是否启动

root@ubuntu:~# lsof -i :    //查看相关端口
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx  root  0t0 TCP *:http (LISTEN)
nginx  nobody  0t0 TCP *:http (LISTEN)
root@ubuntu:~# netstat -anpl | grep nginx    //查看nginx的相关端口
tcp    /nginx: master
unix  [ ] STREAM CONNECTED  /nginx: master
unix  [ ] STREAM CONNECTED  /nginx: master
root@ubuntu:~# 

访问nginx

root@ubuntu:~# curl 127.0.0.1    //访问nginx
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin:  auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

nginx目录结构说明

root@ubuntu:~# tree /usr/local/nginx/
/usr/local/nginx/
├── client_body_temp
├── conf         //存放一系列配置文件的目录
│ ├── fastcgi.conf    //fastcgi程序相关配置文件
│ ├── fastcgi.conf.default    //fastcgi程序相关配置文件备份
│ ├── fastcgi_params      //fastcgi程序参数文件
│ ├── fastcgi_params.default      //fastcgi程序参数文件备份
│ ├── koi-utf       //编码映射文件
│ ├── koi-win       //编码映射文件
│ ├── mime.types     //媒体类型控制文件
│ ├── mime.types.default       //媒体类型控制文件备份
│ ├── nginx.conf        //主配置文件
│ ├── nginx.conf.default    //主配置文件备份
│ ├── scgi_params    //scgi程序相关配置文件
│ ├── scgi_params.default    //scgi程序相关配置文件备份
│ ├── uwsgi_params    //uwsgi程序相关配置文件
│ ├── uwsgi_params.default    //uwsgi程序相关配置文件备份
│ └── win-utf    //编码映射文件
├── fastcgi_temp    //存放fastcgi程序临时文件
├── html    //存放网页文档
│ ├── 50x.html    //错误页码显示网页文件
│ └── index.html    //网页的首页文件
├── logs    //存放nginx的日志文件
│ ├── access.log    //默认访问日志
│ ├── error.log    //错误日志
│ └── nginx.pid    //nginx pid文件
├── proxy_temp    //代理相关临时文件
├── sbin    //存放启动程序
│ └── nginx    //nginx启动程序
├── scgi_temp    //存放scgi程序临时文件
└── uwsgi_temp    //存放uwsgi程序临时文件

 directories,  files

主配置文件说明

#user nobody;    //定义执行nginx程序的用户
worker_processes ;    //指定nginx进程数

#错误日志定义类型有:debug、info、notice、warn、error、crit
#error_log logs/error.log;    //指定错误日志目录
#error_log logs/error.log notice;    //指定notice类型的错误日志目录
#error_log logs/error.log info;    //指定全局错误日志目录
#worker_rlimit_nofile ; //指定但进程最多打开文件数量
#pid logs/nginx.pid;    //指定进程文件的目录

events {    //事件区块
//事件模型有:kqueue、rtsig、epoll、/dev/poll、select、poll
use epoll;    //指定参考事件模型
worker_connections ;    //指定单进程最大链接数
}

http {    //http区块
include mime.types;    //指定nginx支持的媒体类型
default_type application/octet-stream;    //指定默认的媒体类型

#指定日志记录格式
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;    //指定nginx的访问日志目录

sendfile on;    //开启高效的传输模式
#tcp_nopush on;    //防止网络阻塞

#keepalive_timeout ;    //链接超时事件
keepalive_timeout ;

#gzip on;    //开启gzip压缩输出
#gzip_min_length 1k;    //最小压缩文件大小
#gzip_buffers  16k;    //压缩缓冲区
#gzip_http_version 1.0;    //压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
#gzip_comp_level ;    //压缩等级
#gzip_types text/x-javascript text/css application/xml;    //压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。
#gzip_vary on;    //增加响应头”Vary: Accept-Encoding”
#limit_zone crawler $binary_remote_addr 10m;    //开启限制IP连接数的时候需要使用
#FastCGI程序相关参数
#配置FastCGI程序相关参数是为了改善网站的性能:减少资源占用,提高访问速度。
#fastcgi_connect_timeout ;    //连接到后端fastcgi超时时间
#fastcgi_send_timeout ;    //向fastcgi请求超时时间(这个指定值已经完成两次握手后向fastcgi传送请求的超时时间)
#fastcgi_read_timeout ;    //接收fastcgi应答超时时间,同理也是2次握手后
#fastcgi_buffer_size 64k;    //读取fastcgi应答第一部分需要多大缓冲区,该值表示使用1个64kb的缓冲区读取应答第一部分(应答头),可以设置为fastcgi_buffers选项缓冲区大小
#fastcgi_buffers  64k;    //指定本地需要多少和多大的缓冲区来缓冲fastcgi应答请求,假设一个php或java脚本所产生页面大小为256kb,那么会为其分配4个64kb的缓冲来缓存;若页面大于256kb,那么大于的256kb的部分会缓存到fastcgi_temp指定路径中,这并非是个好办法,内存数据处理快于硬盘,一般该值应该为站点中php/java脚本所产生页面大小中间值,如果站点大部分脚本所产生的页面大小为256kb,那么可把值设置为16 16k,4 64k等
#fastcgi_busy_buffers_size 128k;    //默认值是fastcgi_buffer的2倍
#fastcgi_temp_file_write_size 128k;    //写入缓存文件使用多大的数据块,默认值是fastcgi_buffer的2倍
#fastcgi_cache TEST;    //开启fastcgi缓存并为其指定为TEST名称,降低cpu负载,防止502错误发生.
#应答代码缓存时间,200和302应答缓存为1个小时,301一天,其他1分钟
#fastcgi_cache_valid   1h;
#fastcgi_cache_valid  1d;
#fastcgi_cache_valid any 1m;
#主机配置
server {    #server区块,每一个区块表示一个虚拟主机
listen ;    #侦听端口
server_name localhost;    #配置此主机的域名

#charset koi8-r;    //配置字符编码

#access_log logs/host.access.log main;    //配置默认访问日志目录

location / {    #location区块 通过指定模式来与客户端请求的URI相匹配
root html;    #配置站点根目录
index index.html index.htm;    #默认文件
}

#error_page  /.html;    //当发生404错误的时候能够显示一个预定义的uri

# redirect server error pages to the static page /50x.html    //将服务器错误页重定向到静态页/50x.html
#
error_page     /50x.html;    #当发生其中错误的时候能够显示一个预定义的uri

#反向代理
#location / {
#proxy_pass http://127.0.0.1:88;    //指定代理地址
#proxy_redirect off;    //当上游服务器返回的响应是重定向或刷新请求(如HTTP响应码是301或者302)时,proxy_redirect可以重设HTTP头部的location或refresh字段。可选参数default、off、redirect replacement]
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header Host $host;    //允许重新定义或者添加发往后端服务器的请求头
#client_max_body_size 10m;   //允许客户端请求的最大单文件字节数
#client_body_buffer_size 128k;    //缓冲区代理缓冲用户端请求的最大字节数
#proxy_connect_timeout ;    //nginx跟后端服务器连接超时时间(代理连接超时)
#proxy_send_timeout ;    //后端服务器数据回传时间(代理发送超时)
#proxy_read_timeout ;    //连接成功后,后端服务器响应时间(代理接收超时)
#proxy_buffer_size 4k; //设置代理服务器(nginx)保存用户头信息的缓冲区大小
#proxy_buffers  32k; //proxy_buffers缓冲区,网页平均在32k以下的设置
#proxy_busy_buffers_size 64k; //高负荷下缓冲大小(proxy_buffers*2)
#proxy_temp_file_write_size 64k;    //设定缓存文件夹大小,大于这个值,将从upstream服务器传

#}

#设置js和css缓存时间
#location ~ .*\.(js|css)?$
#{
#expires 2h;
# }

#设置图片缓存事件
#location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
#{
#expires 5d;
# }

#监控Nginx状态的地址
#location /NginxStatus {
#stub_status on;    //开启监控状态
#access_log on;    //开启默认访问监控
#auth_basic "NginxStatus";    //设置验证模块
#auth_basic_user_file conf/htpasswd;    //htpasswd文件的内容可以用apache提供的htpasswd工具来产生。
#}

#动静分离配置
#所有jsp的页面均交由tomcat处理
#location ~ .(jsp|jspx|do)?$ {
#proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_pass http://127.0.0.1:8080;
# }

#所有静态文件由nginx直接读取不经过tomcat
#location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$#
#{
#expires 10d;
#}

#location ~ .*.(js|css)?${
#expires 2h;
#}

}

Nginx目录结构与配置文件详解的更多相关文章

  1. Nginx安装,目录结构与配置文件详解

    1.Nginx简介 Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设 ...

  2. Tomcat的目录结构和配置文件详解

    本文转载: https://www.zybuluo.com/1234567890/note/515235 参考帖子: Tomcat(一):基础配置详解 Tomcat服务器中配置多个域名,访问不同的we ...

  3. Linux:apache目录结构和配置文件详解

    bin目录下的常见命令 conf目录 htdocs目录 logs目录 httpd.conf文件解析. 如果后期自己新创建了新的站点目录,就要重新增加对应的目录权限配置 extra/目录下配置文件解析 ...

  4. nginx目录结构和配置文件

    nginx软件功能模块说明 Nginx软件之所以强大,是因为它具有众多的功能模块,下面列出了企业常用的重要模块. (1) Nginx核心功能模块(Core functionality)nginx核心功 ...

  5. elasticsearch(三) 之 elasticsearch目录介绍和配置文件详解

    目录 elasticsearch 配置 目录详情 (config) 配置文件 elasticsearch.yml 配置集群名称(cluster.name) 配置 network.host 更改数据和储 ...

  6. net core体系-web应用程序-3项目结构、配置文件详解

    一.应用程序文件结构 如下图所示,相比于Asp.Net项目,在新建的Asp.Net Core项目中,没有了Global.asax以及Web.config这样的文件,但多了几个其他主要的文件,它们分别为 ...

  7. nginx应用场景,特性,目录结构,常用模块,内置变量,URL和URI,http状态码,配置文件详解

    1.nginx介绍 1丶俄罗斯人开发的,开源www服务软件 2丶软件一共780K 3丶nginx本身是一款静态(html,js,css,jpg等)www软件 4丶静态小文件高并发,同时占用的资源很少, ...

  8. Nginx配置配置文件详解

    文章目录 配置文件 nginx.conf配置文件详解 用于调试.定位问题的配置参数 正常运行必备的配置参数 优化性能的配置参数 事件相关配置 Fastcgi相关配置参数 常需要调整的参数 nginx作 ...

  9. Nginx知多少系列之(三)配置文件详解

    目录 1.前言 2.安装 3.配置文件详解 4.Linux下托管.NET Core项目 5.Linux下.NET Core项目负载均衡 6.Linux下.NET Core项目Nginx+Keepali ...

随机推荐

  1. PHP常用的header头部定义

    <?php header('HTTP/1.1 200 OK'); // ok 正常访问 header('HTTP/1.1 404 Not Found'); //通知浏览器 页面不存在 heade ...

  2. 删除Linux的依赖库并进入救援模式恢复

    删除Linux的依赖库并进入救援模式恢复 模拟一下依赖库文件被删,并进入救援模式恢复 系统:CentOS7 一.删除mv的依赖库文件 删除/lib64/libc.so.6 [root@centos7 ...

  3. 关于Jvm的见解(一)

    Jvm组成结构 硬件体系(如Intel体系.spac等)——>操作系统(如Windows.Linux等)——>Java Virtual Machine  所以虚拟机与硬件系统并没有直接的交 ...

  4. [LC]141题 Intersection of Two Linked Lists (相交链表)(链表)

    ①中文题目 编写一个程序,找到两个单链表相交的起始节点. 如下面的两个链表: 在节点 c1 开始相交. 注意: 如果两个链表没有交点,返回 null.在返回结果后,两个链表仍须保持原有的结构.可假定整 ...

  5. hdu 1233 (prim,最小生成树) 还是畅通工程

    还是畅通工程Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  6. Tsx写一个通用的button组件

    一年又要到年底了,vue3.0都已经出来了,我们也不能一直还停留在过去的js中,是时候学习并且在项目中使用一下Ts了. 如果说jsx是基于js的话,那么tsx就是基于typescript的 废话也不多 ...

  7. MemoryStream相关知识分享

    一.简单介绍一下MemoryStream MemoryStream是内存流,为系统内存提供读写操作,由于MemoryStream是通过无符号字节数组组成的,可以说MemoryStream的性能可以算比 ...

  8. opencv 5 图像转换(1 边缘检测)

    边缘检测 一般步骤 canny算子 步骤 canny函数 彩色canny #include<opencv2/opencv.hpp> #include<opencv2/highgui/ ...

  9. Js获取宽高度的归纳总结

    首先,先吓唬一下我们的小白们!在js中的描述宽高的可以细分有22种. window.innerWidth //除去菜单栏的窗口宽度 window.innerHeight//除去菜单栏的窗口高度 win ...

  10. 【Linux系列】Centos 7部署Laravel项目(七)

    目的 本文主要介绍以下五点: 一. Composer安装 二. SSH设置 三. Git安装 四. Laravel部署 五. 上传GitHub 演示 一. Composer安装 # cd /usr/l ...