nginx 7層全轉發


May 31, 2020 - 22:17:11
Django version 1.11.9, using settings 'mysite.settings'
Starting development server at http://0.0.0.0:9000/
Quit the server with CONTROL-C.
[31/May/2020 22:17:21] "GET /test111/ HTTP/1.0" 200 16

192.168.137.1 - - [01/Jun/2020:06:17:21 +0800] "GET /test111/ HTTP/1.1" 200 16 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"


events
    {
        use epoll;
        worker_connections 65535;
        multi_accept on;
    }

http
    {
        include       mime.types;
        default_type  application/octet-stream;

        server_names_hash_bucket_size 256;
        client_header_buffer_size 256k;
        large_client_header_buffers 4 256k;
        client_max_body_size 128m;
        client_body_buffer_size 16m;

 fastcgi_buffer_size 256k;
 fastcgi_buffers 256 16k;
 fastcgi_busy_buffers_size 256k;
 fastcgi_temp_file_write_size 256k;
 
 proxy_buffering on;
 proxy_buffer_size 1024k;
 proxy_buffers 32 8192k;
 proxy_busy_buffers_size 16384k;
 
        sendfile   on;
        tcp_nopush on;

        keepalive_timeout 120s;
 keepalive_requests 30000;
 reset_timedout_connection on;
 client_body_timeout 3m;

        tcp_nodelay on;

        gzip on;
        gzip_min_length  16k;
        gzip_buffers     8 32k;
        gzip_http_version 1.1;
        gzip_comp_level 4;
        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
        gzip_vary on;
        gzip_proxied   expired no-cache no-store private auth;
        gzip_disable   "MSIE [1-6]\.";

        server_tokens off;
       
        log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
             '$status $body_bytes_sent "$http_referer" '
             '"$http_user_agent" $http_x_forwarded_for';
 #access_log off;

 upstream backend1 {
    server 192.168.137.3:9000      weight=5;
   
}

 upstream backend2 {
    server 192.168.137.3:80      weight=5;
   
}

##upstream backend 位置放錯了, upstream位置應該放在http模塊裏面 但必須是在server模塊的外面

 server
 {
 listen 8090 default_server backlog=1024;
 #server_name paytest.zjtlcb.com;
 index index.html index.htm;
 #root  /app/weblogic/html/;
 #root  /app_nas/apps/deploy/html/;

           location /nginx_status  {
 stub_status on;
 access_log off;
 allow 1.2.101.1;
 allow 1.2.101.2;
 allow 1.2.101.3;
 allow 1.2.101.4;
 allow 1.2.101.5;
 allow 1.2.101.6;
 allow 1.2.101.7;
 allow 1.2.101.8;
 deny all;
 }






 location  ^~ / 
 {
proxy_pass http://backend1/;
 proxy_connect_timeout 300;
 proxy_send_timeout 300;
 proxy_read_timeout 300;
 }


 
 }
 #include vhost/*.conf;
}


查找順序和優先級
1:帶有“=“的精確匹配優先
2:沒有修飾符的精確匹配
3:正則表達式按照他們在配置文件中定義的順序
4:帶有“^~”修飾符的,開頭匹配
5:帶有“~” 或“~*” 修飾符的,如果正則表達式與URI匹配
6:沒有修飾符的,如果指定字符串與URI開頭匹配


Location區段匹配示例location = / {
  # 只匹配 / 的查詢.
  [ configuration A ]
}
location / {
  # 匹配任何以 / 開始的查詢,但是正則表達式與一些較長的字符串將被首先匹配。
  [ configuration B ]
}
location ^~ /images/ {
  # 匹配任何以 /images/ 開始的查詢並且停止搜索,不檢查正則表達式。
  [ configuration C ]
}
location ~* \.(gif|jpg|jpeg)$ {
  # 匹配任何以gif, jpg, or jpeg結尾的文件,但是所有 /images/ 目錄的請求將在Configuration C中處
  理。
  [ configuration D ]
} 各
請求的處理如下例:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章