向上游服務建立聯系
Syntax: proxy_connect_timeout time; #設置TCP三次握手超時時間,默認60秒;默認超時后報502錯誤 Default: proxy_connect_timeout 60s; Context: http, server, location
超時更換上游服務器處理請求
Syntax: proxy_next_upstream http_502 | ..; Default: proxy_next_upstream error timeout; Context: http, server, location
上游連接啟用TCP keepalive的長連接
Syntax: proxy_socket_keepalive on | off; Default: proxy_socket_keepalive off; Context: http, server, location
上游連接啟用http長連接
Syntax: keepalive connections; Default: — Context: upstream Syntax: keepalive_requests number; Default: keepalive_requests 100; Context: upstream
修改tcp連接中的local address
Syntax: proxy_bind address [transparent] | off; Default: — Context: http, server, location 可以使用的變量 proxy_bind $remote_addr; 可以使用不屬於所在機器的IP proxy_bind $remote_addr transparent;
當客戶端關閉連接時
Syntax: proxy_ignore_client_abort on | off; Default: proxy_ignore_client_abort off; Context: http, server, location
向上游服務發送HTTP請求;超時時間
Syntax: proxy_send_timeout time; Default: proxy_send_timeout 60s; Context: http, server, location
接收上游服務器HTTP響應頭部
Syntax: proxy_buffer_size size; #設置接收上游服務的頭部最大值 Default: proxy_buffer_size 4k|8k; Context: http, server, location
接收上游服務器HTTP包體大小
Syntax: proxy_buffers number size; # 接收上游服務器響應包大小內存設置 Default: proxy_buffers 8 4k|8k; Context: http, server, location
接收上游服務器的包體
Syntax: proxy_buffering on | off; X-Accel-Buffering 頭部 Default: proxy_buffering on; #接收完完整的響應包在在響應給客戶端 Context: http, server, location Syntax: proxy_max_temp_file_size size; #設之上游服務器響應包過大,后存入磁盤文件。文件大小的設置 Default: proxy_max_temp_file_size 1024m; Context: http, server, location Syntax: proxy_temp_file_write_size size; # 每一次向磁盤寫入的字節數 Default: proxy_temp_file_write_size 8k|16k; Context: http, server, location Syntax: proxy_temp_path path [level1 [level2 [level3]]];# 設置存儲文件的目錄的路徑 Default: proxy_temp_path proxy_temp; Context: http, server, location
及時轉發的包體
Syntax: proxy_busy_buffers_size size; #雖然設置緩存上游服務器的響應報文;但也可以接緩存一部分時就發送給客戶 Default: proxy_busy_buffers_size 8k|16k; Context: http, server, location
接收上游服務器網絡速率相關指令
Syntax: proxy_read_timeout time; #兩次讀取超時時間 Default: proxy_read_timeout 60s; Context: http, server, location Syntax: proxy_limit_rate rate; #限制讀取上游服務的響應 Default: proxy_limit_rate 0; Context: http, server, location
上游包體的持久化
Syntax: proxy_store_access users:permissions ...; #從上游服務接收文件存入本地文件權限的配置方法 Default: proxy_store_access user:rw; Context: http, server, location Syntax: proxy_store on | off | string; # on的話會存到root對應的目錄下;off不開啟,string通過變量重新指定存放目錄 Default: proxy_store off; Context: http, server, location
配置
[root@python vhast]# cat shangyou.conf server { listen 8011; default_type text/plain; return 200 '8011 server response.\n'; } server { listen 8012; default_type text/plain; root html; location /{ } location /test { return 200 '8012 server response. uri: $uri method: $request_method requset: $request http_name: $http_name \n'; } } [root@python vhast]# cat proxy_method.conf upstream haha{ #ip_hash; #hash user_$arg_username; #server 127.0.0.1:8011; server 127.0.0.1:8012; #keepalive 32; } server { server_name proxy_pass.com; error_log rrups_error.log info; proxy_set_header Connection ""; root /tmp; location /{ #proxy_pass http://rrups/addurl; proxy_pass http://haha; proxy_store on; proxy_store_access user:rw group:rw all:r; } } [root@python vhast]# echo "qwertyuopuughgbbvvbaaa" > ../../html/a.txt [root@python vhast]# ll /tmp/ 總用量 0 drwx------. 3 root root 17 7月 5 12:35 systemd-private-1c111c1c3c844bb594508d0cf90d1752-chronyd.service-YE54pH drwx------. 3 root root 17 7月 8 12:40 systemd-private-24aea6f6d72d4605a59e86dc56dacf2a-chronyd.service-1Ocoyt drwx------. 3 root root 17 7月 9 12:05 systemd-private-d838c8aa5ea24b2d88e0e1c546dadbcf-chronyd.service-wNkAsB
測試
[root@python vhast]# curl proxy_pass.com/a.txt qwertyuopuughgbbvvbaaa [root@python vhast]# ll /tmp/ 總用量 4 -rw-rw-r--. 1 nginx nginx 23 7月 12 22:07 a.txt drwx------. 3 root root 17 7月 5 12:35 systemd-private-1c111c1c3c844bb594508d0cf90d1752-chronyd.service-YE54pH drwx------. 3 root root 17 7月 8 12:40 systemd-private-24aea6f6d72d4605a59e86dc56dacf2a-chronyd.service-1Ocoyt drwx------. 3 root root 17 7月 9 12:05 systemd-private-d838c8aa5ea24b2d88e0e1c546dadbcf-chronyd.service-wNkAsB