你們好,網上關於使用nginx的反向代理和靜態資源服務配置有不少資料,本篇主要分享在開發環境中,我如何利用nginx來實現對開發項目的反向代理和靜態資源的託管;css
一.神馬是反向代理
反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的鏈接請求,而後將請求轉發給內部網絡上的服務器,並將從服務器上獲得的結果返回給internet上請求鏈接的客戶端,此時代理服務器對外就表現爲一個反向代理服務器。
若是想了解更多資料,可百度一下;html
二.nginx配置案例
如上圖,是我最近參與開發的項目,那麼如何使用nginx實現反向代理和靜態資源託管?
當咱們沒有配置nginx時,訪問時以下圖: nginx
1.設置簡單的代理服務器
nginx的一個經常使用用途是將其設置爲代理服務器,這意味着服務器接收請求,將它們傳遞給代理服務器,代理服務器去對應的服務器中檢索響應並將它們發送給客戶端。web
咱們將配置一個基本的代理服務器,該服務器代理域名wap.gs.10086.cn的請求,並將全部其餘請求發送給代理服務器。緩存
首先,經過向server nginx的配置文件添加一個更多的塊並使用如下內容定義代理服務器:ruby
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這個文件 bash
增長配置:
127.0.0.1 wap.gs.10086.cn
- 1
- 2
最後,咱們來從新訪問一下: 服務器
2.靜態資源託管配置
細心同窗可能發現,我上面訪問時候,靜態資源已經正常加載(圖片.css,js).是由於我以前配置了已經有了緩存.markdown
正常狀況下,咱們訪問會報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錯誤,沒法正常加載?
答:正常狀況下,確定是你的路徑不對,這時候須要去日誌文件去查看真正的路徑,而後對照修改: