linux入門:設置代理服務器


官方文檔地址:http://nginx.org/en/docs/beginners_guide.html#static

nginx最常用的一個功能是作為代理服務器。代理服務器接受請求並把請求傳遞給被代理的多個服務器,獲取被代理服務器的相應然后發送給用戶。下面將配置一個最基本的代理服務器,響應圖片文件請求,並把所有的其他請求轉發給被代理服務器服務器。兩個服務器都將被定義為一個單獨的nginx實例。

  1. 首先,通過增加server塊,定義被代理服務器。如下面配置:
    service {
        listen 8080;
        root /pathto/data/upl;
    
        location / {
        }  
    }

    這樣配置一個簡單的服務器,監聽8080端口(前提是這個端口還沒有被listen指令指定監聽過),並把所有請求映射到本地文件系統的/pathto/data/upl路徑。創建這個文件路徑並且放入index.html文件。注意,root指令需要放在server環境下。在對沒有自己root指令的請求進行響應,且location塊被選中時,location下的root指令才會被使用。

  2. 使用已經配置好的(http://www.cnblogs.com/Lissssssssss/p/8846719.html)服務,修改將其代理到上面的服務器中:在第一個location塊中,添加proxy_pass指令后接協議,服務名,端口號使其作為代理服務。
    server {
        location / {
            proxy_pass http://localhost:8080;
        }
    
        location /images/ {
            root /pathto/data;
        }
    }

    然后修改第二個location塊。第二個location原先是通過/images/前綴匹配,映射到本地文件系統的/pathto/data/images/路徑下。現在將其修改為通過匹配請求圖片的擴展名,將其映射到本地文件系統下。修改如下:

    location ~ \.(gif|jpg|png)$ {
        root /pathto/data/images;
    }

    參數是一個正則表達式,匹配所有的以.gif   .jpg 或者 .png為結尾的URLs。正則表達式需要~為開頭。對應的請求將會被匹配到/pathto/data/images路徑下。
    當nginx選擇一個location去服務一個請求時,它會首先檢查確定的前綴,並且是最長前綴優先,然后才會去匹配正則表達式。如果有匹配的正則表達式,nginx選擇對應的location,否則,它將會選擇之前記住的location。

  3. 最終的配置如下:
    server {
        location / {
            proxy_pass http://localhost:8080/;
        }
    
        location ~ \.(gif|jpg|png)$ {
            root /pathto/data/images;
        }
    }

    這樣配置的服務,會過濾以.gif .jpg或者.png為結尾的請求,並且將其映射到/pathto/data/images本地文件系統路徑(通過增加root指令的參數到URI上)。然后將其他所有的請求代理到代理服務器上。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM