大家好,網上關於使用nginx的反向代理和靜態資源服務配置有很多資料,本篇主要分享在開發環境中,我如何利用nginx來實現對開發項目的反向代理和靜態資源的托管;
一.神馬是反向代理
反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的連接請求,然后將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現為一個反向代理服務器。
如果想了解更多資料,可百度一下;
二.nginx配置案例
如上圖,是我最近參與開發的項目,那么如何使用nginx實現反向代理和靜態資源托管?
當我們沒有配置nginx時,訪問時如下圖:
1.設置簡單的代理服務器
nginx的一個常用用途是將其設置為代理服務器,這意味着服務器接收請求,將它們傳遞給代理服務器,代理服務器去對應的服務器中檢索響應並將它們發送給客戶端。
我們將配置一個基本的代理服務器,該服務器代理域名wap.gs.10086.cn的請求,並將所有其他請求發送給代理服務器。
首先,通過向server nginx的配置文件添加一個更多的塊並使用以下內容定義代理服務器:
server {
#偵聽端口 listen 80; server_name wap.gs.10086.cn; #訪問域名 proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location /gscc_card_selling{ #本地開發機地址(127是我隨意寫的,要修改為自己電腦ip) proxy_pass http://127.0.0.1:8081; proxy_connect_timeout 600; proxy_read_timeout 600; } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
配置完成以后,我們需要重載配置文件信息
(注意:我們要退回到nginx安裝的根目錄,不要修改完配置文件直接敲命令,會提示命令無效)
接下來,我們要配置自己電腦的host
進入C盤的C:\Windows\System32\drivers\etc這個目錄下面找到host這個文件
增加配置:
127.0.0.1 wap.gs.10086.cn
- 1
- 2
最后,我們來重新訪問一下:
2.靜態資源托管配置
細心同學可能發現,我上面訪問時候,靜態資源已經正常加載(圖片.css,js).是因為我之前配置了已經有了緩存.
正常情況下,我們訪問會報404錯誤
我們需要將靜態資源訪問代理到硬盤固定路徑
location /gsccstatic{
root E:/WorkSpace/IDEA/gscc_card_selling/webapp/resource; }
- 1
- 2
- 3
重新刷新,就可以正常加載到了
最后,關於用nginx代理自己開發項目的完整配置文件
server {
listen 80; server_name wap.gs.10086.cn; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location /gscc_card_selling{ proxy_pass http://127.0.0.1:8081; proxy_connect_timeout 600; proxy_read_timeout 600; } location /gsccstatic{ root E:/WorkSpace/IDEA/gscc_card_selling/webapp/resource; } }
問題探究:
1.正常配置了路徑,可是發現還是報404錯誤,無法正常加載?
答:正常情況下,肯定是你的路徑不對,這時候需要去日志文件去查看真正的路徑,然后對照修改: