如何用nginx在本地把9000端口轉發到80端口上?
根據我在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了。
以上是我的淺見,歡迎各位在下方評論區交流點贊。
我是蘇蘇思量,來自BAT的Java開發工程師,每日分享科技類見聞,歡迎關注我,與我共同進步。