nginx.conf的基本结构
nginx.conf是nginx的配置文件,其文件结构如下
### 全局模块
...
### events模块
events {
...
}
### http模块
http {
...
server {
...
location /web1 {
...
}
location /web2 {
...
}
}
server {
...
...
}
}
以上主要分为三个部分
1.全局模块配置
2.events模块配置
3.http模块配置
全局模块配置
默认的全局块的配置如下:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
在全局块通常配置类似运行Nginx服务器的用户、Nginx运行的进程数、服务器错误日志存储路径、Nginx进程号等Nginx服务器的全局属性
events模块配置
events模块主要配置的是Nginx服务器与用户之间连接的情况,在对服务器进行调优的时候会去重点关注这个部分。例如:
worker_connections:每个Nginx服务进程连接客户端的最大数量,默认情况下可以只配置这个属性,默认配置是1024
use:Nginx服务器的事件驱动模型,包括select、poll、epoll、rtsig、kqueue、/dev/poll、eventport几个事件驱动模型。事件驱动模型决定Nginx服务器对Web请求的响应和处理方式,因此需要根据应用场景和需求来选择适合的事件驱动模型,可以有效提高响应效率。
还有其他的一些对Nginx服务器的配置,包括序列化、进程锁、是否允许同时接收多个网络请求等,需要根据实际情况去找对应的配置。
http模块配置
http模块是Nginx服务器配置的重要组成部分。在这个模块中可以配置Web访问、反向代理、缓存等主要功能。
http模块可以配置许多属性,例如:
include mime.types; #引入MIME-Type定义
default_type application/octet-stream; #非MIME-Type时的默认类型
#access_log logs/access.log main; #日志路径
sendfile on; #是否使用sendfile传输文件
#tcp_nopush on; #是否等TCP数据包到一定大小再发送
#keepalive_timeout 0;
keepalive_timeout 65; #Nginx服务器与客户端保持连接的超时时间
#gzip on; #是否开启gzip压缩
除此之外,还可以配置单连接请求数上限等信息。
server:
每一个server配置相当于一台虚拟主机。server下面可以配置这台虚拟主机要去监听的端口,例如:
listen 8082
另外,还可以去配置这台虚拟主机的日志路径、错误返回的html等。
location:
每个server下面会配置一个或者多个location,每个location相当于一个指令,将Nginx收到的请求进行匹配,再对匹配到的请求进行处理。
例如可以这样去配置一个server:
server {
listen 80;
#这台虚拟主机的名字,没有特殊要求可以暂时不配置
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location /web1/upload/ {
alias /home/weblogic/upload/;
autoindex on;
}
location /web1/upload/ {
root /home/weblogic/upload/;
index index.html
}
}
这个server会持续监听80端口。
第一个location的alias会将对/web1/upload/的请求,直接转到访问系统的/home/weblogic/upload/目录,可以访问到这个目录下的文件。
将autoindex设置为on的话可以在访问/web1/upload/的时候直接将对应目录下的文件全部显示出来。不设置的话将不能获得目录,只能根据文件名去取出文件。
第二个location用的是root则不同,会将对/web1/upload/的请求,修改为访问/web1/upload/home/weblogic/upload/,这就是root与alias的不同之处。
设置index将使请求直接定向到index.html文件。