-
1 # 架構漫談
-
2 # 一個存在感小透明
根據我在BAT的工作經驗來說,nginx已經在java web開發中越來越重要了。我們在工作中,最常使用的就是nginx的負載均衡與反向代理功能。
之前的回答裡曾經詳細介紹過nginx的反向代理與負載均衡,接下來,就以題主的問題為例,把之前的理論落地到實踐,分析下如何配置
nginx.conf
檔案。
配置埠號首先,nginx需要繫結一個埠,如下圖紅框,nginx的埠號就是8001,當你訪問http://10.100.100.100:8001的時候,請求就會指向nginx(假設這個nginx所在機器的ip是10.100.100.100)。下面的server_name引數,是同時將nginx綁定了一個域名,當你輸入這個域名的時候,也會將請求轉向nginx。
在題主這種情況,就可以將8001替換成9000。
配置upstream接下來,我們可以設定後端伺服器組的主要指令upstream,我們首先給紅框中的upstream起名為aaa_back,這個upstream指向了一個server,當nginx將請求轉發到這個upstream的時候,其實是將請求轉發給這個ip:port/加後面的path。如圖所示,題主所說的情況,要將請求轉發給本機,那麼server的值就是127.0.0.1:80。
配置location上一個步驟配置的upstream其實是可以作為變數,用在location中的。
從下面的配置就可以看出來,當你的請求url是http://{nginx所在機器的ip}:{nginx繫結的port}/api/pts,其實是會被轉發到 {upstream裡引數名為xx_java_bak的server的ip:port}/
api.php/pts/
這個地址的。
至此,配置好port,upsteam和location,就能把9000埠的請求,轉向80了。
回覆列表
簡單配置下反向代理。nginx最擅長的就是這個。簡單幾行程式碼即可。
server{
listen 8888 //你要的埠
location /{
proxy_pass http://你要的埠
}
}
然後重啟nginx
service nginx restart