nginx常用配置

  • 进程相关配置
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 ; 
   #返回重定向地址
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容