Nginx實現(xiàn)多域名反向代理轉(zhuǎn)發(fā)到不同項目的配置
2022-12-04 加入收藏
Nginx的反向代理,即可以基于端口進行,也可以基于域名進行。
過多的端口開放,就意味著更高的安全風險,因此只開放一個端口,比如80端口,然后根據(jù)域名的不同轉(zhuǎn)發(fā)到不同的項目路徑或服務器。
nginx的配置文件結(jié)構(gòu)就不多說了。
由于測試服務器較少,項目又較多,很多項目都在同一個服務器上,并且服務器并沒有綁定域名,只有IP可以使用。在訪問不同項目時用nginx做代理就意味著要有不同的路由地址和接口來區(qū)分不同的項目。其實在測試服務器上也是可以使用域名來做代理的。
例:配置一個網(wǎng)址為:www.qianduan.qa/road;接口地址為www.ceshi.qa的項目,程序運行在服務器的88端口。
接口地址的配置:
打開nginx新建文件夾vhosts,新建配置文件:ceshi.conf
2. 寫一個server:端口80,server_name填寫域名,可以是虛擬的不存在的;location里的內(nèi)容就是需要代理的應用程序。
location /{}:訪問www.ceshi.qa時,會轉(zhuǎn)發(fā)到服務器88端口上啟動的應用程序。
如果是不存在的域名那么需要在本地的hosts添加:
服務器IP www.ceshi.qa
前端地址的配置
新建qianduan.conf文件到vhosts文件夾下
寫一個server,server_name填寫:www.qianduan.qa,端口也是80,www.qianduan.qa這個域名已經(jīng)添加到本地的hosts中。
所有訪問www.qianduan.qa這個請求的都會被轉(zhuǎn)到www文件夾下,www.qianduan.qa/road則是訪問www/road文件夾下的前端資源,前端代碼中接口就連接www.ceshi.qa(不同項目連接各自的項目接口地址即可)
同理:如果想要訪問mob文件夾里的資源,地址則是:www.qianduan.qa/mob;接口連接mob這個項目對應的后臺接口地址即可。
使子conf生效
回到conf文件夾,打開nginx.conf,將新建的ceshi.conf和qianudan.conf添加進去(*.conf將所有以.conf結(jié)尾的文件都添加到nginx.conf)
2. 保存配置重啟nginx就成功了。由于這個域名并不存在,如果別人想要訪問的話也需要配置這兩個域名哦。
3. 多說無益,自己操作一遍最好。
問題一:本地的hosts在哪里?
答:C:\Windows\System32\drivers\etc\hosts文件以管理員身份打開。
問題二:為何域名配置了不可訪問?
答:確認域名是否真實有效;若是不存在的域名需在本地的hosts將域名添加進去
問題三:前端資源可以不放在nginx里嗎?
答:當然可以,放在各自的應用程序里的靜態(tài)資源文件夾下也可以;以上例子中后臺是.net寫的;項目中有一個文件夾wwwroot,可以存放靜態(tài)資源,如果將此項目的前端資源放在wwwroot下,那么訪問此項目時網(wǎng)址就是www.ceshi.qa。
問題三:用IP如何配置此例子?
答:訪問時地址就是服務器IP/road(XXX.XXX.XXX.XX/road);接口地址就連:服務器IP/api/v1(XXX.XXX.XXX.XX/api/v1)