1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > nginx.conf配置文件

nginx.conf配置文件

时间:2020-01-07 13:19:23

相关推荐

nginx.conf配置文件

默认配置文件

开头的表示注释内容

1 2 #user nobody;3 worker_processes 1;4 5 #error_log logs/error.log;6 #error_log logs/error.log notice;7 #error_log logs/error.log info;8 #error_log "pipe:rollback logs/error_log interval=1d baknum=7 maxsize=2G";9 10 #pid logs/nginx.pid;11 12 13 events {14worker_connections 1024;15 }16 17 18 http {19include mime.types;20default_type application/octet-stream;21 22#log_format main '$remote_addr - $remote_user [$time_local] "$request" '23# '$status $body_bytes_sent "$http_referer" '24# '"$http_user_agent" "$http_x_forwarded_for"';25 26#access_log logs/access.log main;27#access_log "pipe:rollback logs/access_log interval=1d baknum=7 maxsize=2G" main;28 29sendfile on;30#tcp_nopushon;

从配置文件开始到 events 块之间的内容,主要会设置一些影响nginx 服务器整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。

比如上面第一行配置的:

worker_processes 1;

这是 Nginx 服务器并发处理服务的关键配置,worker_processes 值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的制约,一般有多少个CPU核就配置多少

我将worker_processes设置成8;一共启动8个工作进程,master进程只有1个

[root@mylinux2 conf]# ps -ef | grep nginxroot 15291 0 08:47 ? 00:00:00 nginx: master process nginxnobody1530 1529 0 08:47 ? 00:00:00 nginx: worker processnobody1531 1529 0 08:47 ? 00:00:00 nginx: worker processnobody1532 1529 0 08:47 ? 00:00:00 nginx: worker processnobody1533 1529 0 08:47 ? 00:00:00 nginx: worker processnobody1534 1529 0 08:47 ? 00:00:00 nginx: worker processnobody1535 1529 0 08:47 ? 00:00:00 nginx: worker processnobody1536 1529 0 08:47 ? 00:00:00 nginx: worker processnobody1537 1529 0 08:47 ? 00:00:00 nginx: worker processroot 1546 1472 0 08:55 pts/0 00:00:00 grep --color=auto nginx

events { worker_connections 1024;}

events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word process 可以同时支持的最大连接数等。

上述例子就表示每个 work process 支持的最大连接数为 1024.

这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。

一、http 全局块

http全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。

18http {19include mime.types;29sendfile on;33keepalive_timeout 65;37server {38 listen 80;39 server_name localhost;45 46 location / {47 root html;48 index index.html index.htm;49 }error_page 500 502 503 504 /50x.html;location = /50x.html { root html; } }}

二、server 块

这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。后面会详细介绍虚拟主机的概念。

每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。

而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。

1、全局 server 块

最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或IP配置。

1)、listen

该指令用于配置网络监听。主要有如下三种配置语法结构:

1 listen *:80 | *:8080 #监听所有80端口和8080端口2 listen IP_address:port #监听指定的地址和端口号3 listen IP_address#监听指定ip地址所有端口4 listen port#监听该端口的所有IP连接

2)、server_name

该指令用于虚拟主机的配置。通常分为以下两种:

a、基于名称的虚拟主机配置

语法格式如下:

server_name ;

b、基于 IP 地址的虚拟主机配置

语法结构和基于域名匹配一样,而且不需要考虑通配符和正则表达式的问题。

server_name 192.168.1.1

案例1:通过nginx设置了2台虚拟主机,让不同的域名访问不同的目录,Nginx的虚拟机主机Server配置(配置百度项目和腾讯项目)

server {listen 80;server_name ;location / {root /usr/local/tengine-2.3/baidu;index index.html index.htm;}}server {listen 80;server_name ;location / {root /usr/local/tengine-2.3/qq;index index.html index.htm;}}

访问服务器

用户访问百度的过程,而我们配置hosts的目的则是不用访问DNS服务器

2、location 块

一个 server 块可以配置多个 location 块。

这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称(也可以是IP别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。

该指令用于匹配 URL。

语法如下:

location [ = | ~ | ~* | ^~] uri { }

1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。

2、~:用于表示 uri 包含正则表达式,并且区分大小写。

3、~*:用于表示 uri 包含正则表达式,并且不区分大小写。

4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。

注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。

优先级: = > ^~ > ~ / ~* >模糊匹配

案例2

访问/abc.html,会到/usr/local/tengine-2.3/baidu目录下找abc.html文件abc.html一定是精确匹配

访问/zilv.html,会匹配成功,会到/usr/local/tengine-2.3/qq目录下找zilv.html文件,但是qq目录下根本就没有zilv.html文件,所以找不到。模糊匹配

访问/index.html,会匹配成功,会到/usr/local/tengine-2.3/qq目录下找index.html文件,而qq目录下有index.html文件,所以会有返回

访问/documents,会匹配成功(能匹配到2个,分别为’/‘和‘/documents/’,’/'的优先级最低,),会到/usr/local/tengine-2.3/baidu目录下找index.html文件,而/baidu目录下有index.html文件,所以会有返回

37 server {38 listen 80;39 server_name ;51 location = /abc.html {52 root /usr/local/tengine-2.3/baidu;53 }54 location / {55 index index.html;56 root /usr/local/tengine-2.3/qq;57 }58 location /documents/ {59 root /usr/local/tengine-2.3/baidu;60 }61 location ^~ /images/ {62 root /usr/local/tengine-2.3/baidu;63 }64 location ~* \.(gif|jpg|jepg)$ {65 root /usr/local/tengine-2.3/baidu;66 }

3、index

该指令用于设置网站的默认首页。

语法为:

index filename ...;

后面的文件名称可以有多个,中间用空格隔开。

index index.html index.htm;

通常该指令有两个作用:第一个是用户在请求访问网站时,请求地址可以不写首页名称;第二个是可以对一个请求,根据请求内容而设置不同的首页。

location / {root /usr/local/tengine-2.3/baidu;index index.html index.htm;}

案例3

访问/index.html

访问/index.htm

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。