用Nginx搭建一個具備快取功能的反向代理服務
阿新 • • 發佈:2018-12-16
反向代理的理解:https://www.cnblogs.com/zkfopen/p/10126105.html
我是在一臺linux伺服器上搭建了兩個nginx伺服器A和B,把靜態資原始檔甲放在A伺服器上,B作為反向代理伺服器。
外界訪問靜態資原始檔甲時直接訪問B,B從A上獲取靜態資原始檔甲,然後再返回給外界請求方。
舉例:外界訪問百度時,www.baidu.com 就是我們的反向代理伺服器,反向代理伺服器會幫我們把請求轉發到真實的伺服器那裡去。
nginx伺服器A的埠是8080
nginx伺服器B的埠是80
1.配置A伺服器(存放靜態資源的nginx伺服器)
進入nginx/conf/,輸入:vim nginx.conf,把server欄修改如下:
listen 127.0.0.1:8080;
server_name localhost;
如下圖所示:
退出後,在nginx/conf下,輸入:
../sbin/nginx -s reload
重新載入修改後的配置檔案。
此時nginx伺服器A只能由本機上的服務訪問,外界訪問不到nginx伺服器A上的資源。
如下圖所示:
2.配置nginx伺服器B(反向代理伺服器)
同樣進入到nginx/conf下,開啟nginx.conf檔案,修改如下:
upstream local {
server 127.0.0.1:8080;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
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_pass http://local;
以上程式碼加入的位置如下圖所示:
退出後,在nginx/conf下,輸入:
../sbin/nginx -s reload
重新載入修改後的配置檔案。
此時再訪問本伺服器的公網ip地址:114.116.120.230,(預設埠就是80,所以ip後不用加80訪問)如下圖所示:
反向代理成功!