91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Nginx中location和proxy_pass路徑如何配置

發布時間:2021-09-01 10:57:34 來源:億速云 閱讀:185 作者:小新 欄目:開發技術

小編給大家分享一下Nginx中location和proxy_pass路徑如何配置,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

    一、Nginx location 基本配置

    1.1、Nginx 配置文件

    upstream test1{
    server 127.0.0.1:8000;
    }
    upstream test2{
    server 127.0.0.1:8000;
    }
    server{
    	server_name  test.com;
    	listen 80;
            access_log /usr/local/openresty/nginx/logs/test.com_access.log latest;
            error_log  /usr/local/openresty/nginx/logs/test.com.log error;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_connect_timeout   3s;
            proxy_read_timeout 120s;
            proxy_send_timeout 120s;
            proxy_next_upstream error timeout invalid_header http_404 http_502 http_504 http_500;
    	
            location /user/ {
    			proxy_set_header Connection "";
            	proxy_http_version 1.1;
    			proxy_pass http://test1/;
    		}
            location / {
                    proxy_set_header Connection "";
                    proxy_http_version 1.1;
                    proxy_pass http://test2/;
            }
    }

    1.2 、Python 腳本

    python2 可以運行

    該腳本用于獲取請求內容。 這個作為后端,也就是 proxy_pass 代理的后端。

    #!/usr/bin/env python
    
    import SimpleHTTPServer
    import SocketServer
    
    PORT = 8000
    
    class GetHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
        def do_GET(self):
            print(self.headers)
            self.send_response(200, "")
        def do_POST(self):
            print(self.headers)
            content_length = self.headers.getheaders('content-length')
            length = int(content_length[0]) if content_length else 0
            print(self.rfile.read(length))
            self.send_response(200, "")
    
    Handler = GetHandler
    httpd = SocketServer.TCPServer(("", PORT), Handler)
    httpd.serve_forever()

    二、測試

    2.1、測試 location

    末尾存在 / 和 proxy_pass末尾存在 /

    nginx配置如下

     location /user/ {
    			proxy_set_header Connection "";
            	proxy_http_version 1.1;
    			proxy_pass http://test1/;
    		}

    請求url

    test.com/user/test.html

    后端內容

    打印的內容:

    Host: test1
    Content-Length: 0
    User-Agent: PostmanRuntime/7.26.8
    Accept: */*
    Postman-Token: f2bfe770-4f44-4ee9-91c4-060f59dfb26c
    Accept-Encoding: gzip, deflate, br
    
    
    127.0.0.1 - - [10/Apr/2021 16:54:26] "POST /test.html HTTP/1.1" 200 -

    小結論:proxy_pass 地址加了 / 的話, 請求 test.com/user/test.html 實際請求是 http://test1/test.html

    2.2、測試 location

    末尾存在 / 和 proxy_pass末尾不存在 /

    nginx配置如下

     location /user/ {
    			proxy_set_header Connection "";
            	proxy_http_version 1.1;
    			proxy_pass http://test1;
    		}

    請求url

    test.com/user/test.html

    后端內容

    打印的內容:

    Host: test1
    Content-Length: 0
    User-Agent: PostmanRuntime/7.26.8
    Accept: */*
    Postman-Token: e33d0a2c-1965-4152-b87c-94fca50f2899
    Accept-Encoding: gzip, deflate, br

    127.0.0.1 - - [10/Apr/2021 16:57:18] "POST /user/test.html HTTP/1.1" 200 -

    小結論: proxy_pass 地址不加了 / 的話, 請求 test.com/user/test.html 實際請求是 http://test1/user/test.html

    2.3、測試三 location

    不加末尾 / 且 proxy_pass 不加 末尾 /

    nginx配置如下

     location /user {
    			proxy_set_header Connection "";
            	proxy_http_version 1.1;
    			proxy_pass http://test1;
    		}

    請求url

    test.com/user/test.html

    后端內容

    打印的內容:

    Host: test1
    Content-Length: 0
    User-Agent: PostmanRuntime/7.26.8
    Accept: */*
    Postman-Token: 31cd33c6-4c95-41b5-a095-28cdc7113dcd
    Accept-Encoding: gzip, deflate, br

    127.0.0.1 - - [10/Apr/2021 16:59:34] "POST /user/test.html HTTP/1.1" 200 -

    請求 test.com/user/test.html 實際請求是 http://test1/user/test.html

    2.4、location 不加

    末尾 / 且 proxy_pass 加 末尾 /

    nginx配置如下

      location /user {
    			proxy_set_header Connection "";
            	proxy_http_version 1.1;
    			proxy_pass http://test1/;
    		}

    請求url

    test.com/user/test.html

    后端內容

    打印的內容:

    Host: test1
    Content-Length: 0
    User-Agent: PostmanRuntime/7.26.8
    Accept: */*
    Postman-Token: d0f4b83f-6482-41ba-8a01-c059eececc2d
    Accept-Encoding: gzip, deflate, br

    127.0.0.1 - - [10/Apr/2021 17:00:21] "POST //test.html HTTP/1.1" 200 -

    請求 test.com/user/test.html 實際請求是 http://test1//test.html

    2.5、location 末尾

    / proxy_pass 末尾其他有路徑,且末尾加 /

    nginx配置如下

       location /user/ {
    			proxy_set_header Connection "";
            	proxy_http_version 1.1;
    			proxy_pass http://test1/haha/;
    		}

    請求url

    test.com/user/test.html

    后端內容

    打印的內容:

    Host: test1
    Content-Length: 0
    User-Agent: PostmanRuntime/7.26.8
    Accept: */*
    Postman-Token: 6447cf0b-5988-4f96-81a4-2b621fe32604
    Accept-Encoding: gzip, deflate, br

    127.0.0.1 - - [10/Apr/2021 17:03:27] "POST /haha/test.html HTTP/1.1" 200 -

    請求 test.com/user/test.html 實際請求是 http://test1/haha/test.html

    2.6、 location 末尾

    / proxy_pass 末尾其他有路徑,且末尾不加 /

    nginx配置如下

     location /user/ {
    			proxy_set_header Connection "";
            	proxy_http_version 1.1;
    			proxy_pass http://test1/haha;
    		}

    請求url

    test.com/user/test.html

    后端內容

    打印的內容:

    Host: test1
    Content-Length: 0
    User-Agent: PostmanRuntime/7.26.8
    Accept: */*
    Postman-Token: 32fb2a50-1e7c-4131-9804-1828e21ca841
    Accept-Encoding: gzip, deflate, br

    127.0.0.1 - - [10/Apr/2021 17:05:03] "POST /hahatest.html HTTP/1.1" 200 -

    請求 test.com/user/test.html 實際請求是 http://test1/hahatest.html

    三、總結








    序號訪問URLlocation配置proxy_pass配置后端接收的請求備注
    1test.com/user/test.html/user/http://test1//test.html
    2test.com/user/test.html/user/http://test1/user/test.html
    3test.com/user/test.html/userhttp://test1/user/test.html
    4test.com/user/test.html/userhttp://test1///test.html
    5test.com/user/test.html/user/http://test1/haha//haha/test.html
    6test.com/user/test.html/user/http://test1/haha/hahatest.html


    注意上表格中的后端是指 python 腳本對應的web服務。

    在日常的web網站部署中,經常會用到 nginxproxy_pass 反向代理,有一個配置需要弄清楚:配置 proxy_pass 時,

    • 當在后面的 upstram_name 后面出現了 /,相當于是絕對根路徑,則 nginx 不會把 location 中匹配的路徑部分代理走;

    • 如果沒有 /,則會把匹配的路徑部分也給代理走。

    以上是“Nginx中location和proxy_pass路徑如何配置”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    郯城县| 崇明县| 阜新市| 建平县| 陕西省| 正宁县| 大英县| 缙云县| 高邑县| 腾冲县| 闵行区| 三原县| 龙海市| 弥渡县| 延吉市| 木兰县| 临湘市| 教育| 中牟县| 玉龙| 东方市| 大港区| 清新县| 皋兰县| 吉林市| 江都市| 沙洋县| 略阳县| 曲周县| 正定县| 观塘区| 固安县| 应用必备| 庆阳市| 临桂县| 耒阳市| 鸡西市| 武乡县| 疏附县| 宝丰县| 镇沅|