- 进程相关配置
worker_processes auto; #nginx进程数,建议按照CPU数目来指定
worker_rlimit_nofile 65535; #一个Nginx 进程打开的最多文件描述符数目
worker_connections 65535; #每个进程允许的最多连接数
- 监听端口
server {
listen 80; #监听端口
server_name www.test.com; #域名信息
location / {
root html; #网站根目录,一般是在和conf同级目录
index index.html index.htm; #默认首页类型
deny 192.168.1.10; #禁止访问的ip地址,可以为all
allow 192.168.1.11; #允许访问的ip地址,可以为all
}
}
域名匹配的四种写法
精确匹配:server_name www.test.com;
左侧通配:server_name .test.com ;
右侧统配:server_name www.test. ;
正则匹配:server_name ~^www.test.*$ ;
匹配优先级:精确匹配 > 左侧通配符匹配 > 右侧通配符匹配 > 正则表达式匹配
- Nginx 日志
error_log /var/log/nginx/error.log warn;
#配置错误日志的级别及存储目录
events {
worker_connections 1024; #进程连接数
}
http {
..................
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 /var/log/nginx/access.log main;
#配置访问日志存储目录
}
- http 相关的配置
http {
sendfile on #高效传输文件的模式 一定要开启
keepalive_timeout 65 #客户端服务端请求超时时间
}
- 静态资源配置
server {
listen 80;
server_name test.com;
location /static {
root /var/www/static;
}
}
- 反向代理
http {
.............
upstream portal_server{
127.0.0.1:8081;
}
upstream base_server{
127.0.0.1:8082;
}
upstream order_server{
127.0.0.1:8083;
}
server {
#默认指向portal_server
location / {
proxy_pass http://portal_server;
}
location /base_server/{
proxy_pass http://base_server;
}
location /order_server/ {
proxy_pass http://order_server;
}
}
}
符号 | 说明 |
---|---|
~ | 正则匹配,区分大小写 |
~* | 正则匹配,不区分大小写 |
^~ | 普通字符匹配,如果该选项匹配,则,只匹配改选项,不再向下匹配其他选项 |
= | 普通字符匹配,精确匹配 |
@ | 定义一个命名的 location,用于内部定向,例如 error_page,try_files |
匹配优先级
路径匹配,优先级:(跟 location 的书写顺序关系不大)
- 精确匹配:=前缀的指令严格匹配这个查询。如果找到,停止搜索。
- 普通字符匹配:所有剩下的常规字符串,最长的匹配。如果这个匹配使用^〜前缀,搜索停止。
- 正则匹配:正则表达式,在配置文件中定义的顺序,匹配到一个结果,搜索停止;
- 默认匹配:如果第3条规则产生匹配的话,结果被使用。否则,如同从第2条规则被使用。
精确匹配>普通字符匹配>正则匹配>默认匹配
- 负载均衡
upstream server_pools {
server 192.168.1.11:8081 weight=1;
server 192.168.1.12:8081 weight=2;
server 192.168.1.13:8081 weight=7;
#weigth参数表示权值,权值越高被分配到的几率越大
}
server {
listen 80;
server_name test.com;
location / {
proxy_pass http://portal_server;
}
}
- 代理相关的其它配置
proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; #代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers缓冲区
proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; #设定缓存文件夹大小
proxy_set_header Host $host;
proxy_set_header X-Forwarder-For $remote_addr; #获取客户端真实IP
- 重定向配置
location / {
return 404; #直接返回状态码
}
location / {
return 404 "pages not found";
#返回状态码 + 一段文本
}
location / {
return 302 /conten;
#返回状态码 + 重定向地址}
location / {
return https://www.test.com ;
#返回重定向地址
}