反向代理程式是工作中最常用的伺服器功能,常用來解決跨網域問題,下面我們來簡單介紹如何實作反向代理。
首先進入Nginx 的主設定檔:
vim /etc/nginx/nginx.conf
登入後複製
(推薦教學:nginx使用教學)
然後我們去http 模組的server 區塊中的location /,增加一行將預設網址重新導向至最大學習網站Bilibili 的proxy_pass 設定:
##改完儲存退出,
nginx -s reload重新加載,進入預設網址,那麼現在就直接跳到B 站了,實作了一個簡單的代理程式。
實際使用中,可以將請求轉送到本機另一個伺服器上,也可以根據存取的路徑跳到不同連接埠的服務。
例如我們監聽9001 端口,然後把訪問不同路徑的請求進行反向代理:
把訪問http://127.0.0.1:9001/edu 的請求轉發到http:/ /127.0.0.1:8080
把訪問http://127.0.0.1:9001/vod 的請求轉送到http://127.0.0.1:8081
這種要怎麼配置呢,首先同樣打開主設定文件,然後在http 模組下增加一個server 區塊:
server {
listen 9001;
server_name *.sherlocked93.club;
location ~ /edu/ {
proxy_pass http://127.0.0.1:8080;
}
location ~ /vod/ {
proxy_pass http://127.0.0.1:8081;
}
}
登入後複製
反向代理還有一些其他的指令,可以了解一下:
1、proxy_set_header:在將客戶端請求傳送給後端伺服器之前,變更來自客戶端的請求頭資訊。
2、proxy_connect_timeout:設定Nginx與後端代理伺服器嘗試建立連線的逾時時間。
3、proxy_read_timeout:設定Nginx向後端伺服器群組發出read請求後,等待對應的逾時時間。
4、proxy_send_timeout:設定Nginx向後端伺服器群組發出write請求後,等待對應的逾時時間。
5、proxy_redirect:用於修改後端伺服器傳回的回應頭中的Location和Refresh。
以上是nginx如何設定反向代理的詳細內容。更多資訊請關注PHP中文網其他相關文章!