nginx常用配置

  • 進程相關(guān)配置
worker_processes auto;            #nginx進程數(shù),建議按照CPU數(shù)目來指定
worker_rlimit_nofile 65535;      #一個Nginx 進程打開的最多文件描述符數(shù)目
worker_connections 65535;       #每個進程允許的最多連接數(shù)
  • 監(jiān)聽端口
server {
        listen       80;            #監(jiān)聽端口
        server_name  www.test.com;  #域名信息
        location / {
            root   html;   #網(wǎng)站根目錄,一般是在和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;
左側(cè)通配:server_name .test.com ;
右側(cè)統(tǒng)配:server_name www.test.
;
正則匹配:server_name ~^www.test.*$ ;
匹配優(yōu)先級:精確匹配 > 左側(cè)通配符匹配 > 右側(cè)通配符匹配 > 正則表達式匹配

  • Nginx 日志
error_log  /var/log/nginx/error.log warn;
#配置錯誤日志的級別及存儲目錄

events {
    worker_connections  1024;  #進程連接數(shù)
}

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 相關(guān)的配置
http {
    sendfile  on                  #高效傳輸文件的模式 一定要開啟
    keepalive_timeout   65        #客戶端服務(wù)端請求超時時間
}
  • 靜態(tài)資源配置
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;
       }
    }
}
符號 說明
~ 正則匹配,區(qū)分大小寫
~* 正則匹配,不區(qū)分大小寫
^~ 普通字符匹配,如果該選項匹配,則,只匹配改選項,不再向下匹配其他選項
= 普通字符匹配,精確匹配
@ 定義一個命名的 location,用于內(nèi)部定向,例如 error_page,try_files

匹配優(yōu)先級

路徑匹配,優(yōu)先級:(跟 location 的書寫順序關(guān)系不大)

  • 精確匹配:=前綴的指令嚴(yán)格匹配這個查詢。如果找到,停止搜索。
  • 普通字符匹配:所有剩下的常規(guī)字符串,最長的匹配。如果這個匹配使用^?前綴,搜索停止。
  • 正則匹配:正則表達式,在配置文件中定義的順序,匹配到一個結(jié)果,搜索停止;
  • 默認匹配:如果第3條規(guī)則產(chǎn)生匹配的話,結(jié)果被使用。否則,如同從第2條規(guī)則被使用。

精確匹配>普通字符匹配>正則匹配>默認匹配

  • 負載均衡
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參數(shù)表示權(quán)值,權(quán)值越高被分配到的幾率越大
}
server {  
  listen 80; 
  server_name test.com;
  location / {    
  proxy_pass http://portal_server; 
   }
}
  • 代理相關(guān)的其它配置
proxy_connect_timeout 90;  #nginx跟后端服務(wù)器連接超時時間(代理連接超時)
proxy_send_timeout 90;     #后端服務(wù)器數(shù)據(jù)回傳時間(代理發(fā)送超時)
proxy_read_timeout 90;     #連接成功后,后端服務(wù)器響應(yīng)時間(代理接收超時)
proxy_buffer_size 4k;      #代理服務(wù)器(nginx)保存用戶頭信息的緩沖區(qū)大小
proxy_buffers 4 32k;      #proxy_buffers緩沖區(qū)
proxy_busy_buffers_size 64k;     #高負荷下緩沖大?。╬roxy_buffers*2)
proxy_temp_file_write_size 64k;  #設(shè)定緩存文件夾大小

proxy_set_header Host $host; 
proxy_set_header X-Forwarder-For $remote_addr;  #獲取客戶端真實IP
  • 重定向配置
location / { 
   return 404; #直接返回狀態(tài)碼
}
location / { 
   return 404 "pages not found"; 
   #返回狀態(tài)碼 + 一段文本
}
location / { 
   return 302 /conten; 
   #返回狀態(tài)碼 + 重定向地址}
location / { 
   return https://www.test.com ; 
   #返回重定向地址
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容