用nginx搭建一個簡單的代理服務器
- 来源:未知 原创
- 时间:2018-08-08
- 阅读: 次
- 本文标签:
nginx另一個使用的比較多的情況是作為代理服務器,代理服務器接收請求,然後把請求傳遞到代理服務器,nginx最後會提取代理服務器的回復,並
把這些回復發送給客戶端。
我們將配置一個基本的代理服務器,圖片文件的請求在本地目錄中服務,其他的所有請求發送到代理服務器。這個示例中,兩個服務都被定義在同一
個nginx實例中。
首先,定義用來代理的服務器需要添加一個或者更多個server block到nginx配置文件中,內容如下:
server {
listen 8080;
root /data/up1;
location / {
}
}
這個服務監聽8080端口(先前的,listen指令沒有指定端口,是因為默認的端口是標註端口80被使用),映射所有的請求到本地文件系統
的/data/up1目錄。創建/data/up1目錄,放進index.html文件。註意:root指令是放在server裏的。這個root指令是在匹配到用來服務請求的
location block中沒有指定自己的root指令時。
接下來,使用先前的配置作為服務配置文件,然後修改它成為一個代理服務器配置。放置proxy_pass指令代表代理協議,proxy_pass的參數代表代理
服務器的名字和端口號(這裏是,http://localhost:8080):
server {
location / {
proxy_pass http://localhost:8080;
}
location /images/ {
root /data;
}
}
我們將修改第二個location block,當前映射的請求使用/images/前綴去比較,然後到/data/images目錄下找文件。為了通過典型的文件後綴進行
圖片請求的匹配,我們這樣修改:
location ~ \.(gif|jpg|png)$ {
root /data/images;
}
參數是一個正則表達式,匹配所有以.gif, .jpg, 或者 .png結尾的URI。一個正則表達式應該由~開頭。圖片請求就會映射到/data/images目錄下。
當nginx選擇一個location塊去服務一個請求,nginx首先檢測出location指令所指的前綴,並且會記住匹配到的最長前綴的location,然後檢查正
則表達式。如果匹配到了一個正則表達式,nginx就使用這個正則表達式所在的location,否則,使用先前記住的那個最長字串的location。
代理服務器的最終配置結果:
server {
location / {
proxy_pass http://localhost:8080/;
}
location ~ \.(gif|jpg|png)$ {
root /data/images;
}
}
這個服務器將會過濾以.gif, .jpg, or .png 結尾的請求,並映射他們到/data/images目錄下,其他所有請求都傳送到上面配置的代理服務器進行
處理。
關於代理鏈接的更多配置可以查看這裏
相关文章
本文链接:http://www.it892.com/content/ip/2018/0808/108259.html