nginx 反向代理服務(wù)器配置基礎(chǔ)問(wèn)題?小弟是菜鳥,請(qǐng)大神賜教,感激不盡……
問(wèn)題描述
公司有反向代理服務(wù)器,nginx.conf 配置文件,關(guān)鍵部分配置如下:
server {listen 8077;server_name localhost:9000;#charset koi8-r;#access_log logs/host.access.log main;location /front/ { proxy_pass http://127.0.0.1:9000/;}location /services/ { proxy_pass http://127.0.0.1:8080/services/;}
問(wèn)題1:請(qǐng)大神用菜鳥都能聽懂的語(yǔ)音,解釋箭頭標(biāo)注的四個(gè)地方是什么意思?問(wèn)題2:listen 默認(rèn)端口是80,上面已經(jīng)改為8077, 如果改為80,可以使用下面的鏈接訪問(wèn)實(shí)現(xiàn)反向代理(我想要的效果)
http://localhost/front/#/main/home 這種方法來(lái)訪問(wèn)http://localhost/front/ 測(cè)試服務(wù)器地址
但是,現(xiàn)在端口改為了8077,請(qǐng)問(wèn),上面兩個(gè)URL怎樣改寫,才能達(dá)到和80端口同樣的效果?
小弟是菜鳥,請(qǐng)大神賜教,感激不盡……
問(wèn)題解答
回答1:箭頭1監(jiān)聽本機(jī) 8077 端口箭頭二沒這種寫法箭頭三訪問(wèn)路徑中有front,箭頭四反向代理到本機(jī)9000端口,這個(gè)應(yīng)該是php-fpm監(jiān)聽端口如果需要改為8077箭頭二改為
server_name localhost;
瀏覽器打開http://localhost:8077/front/
回答2:談不上賜教,我也只能說(shuō)個(gè)大概,具體的東西我也是很清楚.
listen 8077 意思就是用戶訪問(wèn)的端口如果是8077的話,就走這個(gè)配置(nginx監(jiān)聽8077端口)
如果nginx中只配置一個(gè)server域的話,則nginx是不會(huì)去進(jìn)行server_name的匹配的。因?yàn)橹挥幸粋€(gè)server域,也就是這有一個(gè)虛擬主機(jī),那么肯定是發(fā)送到該nginx的所有請(qǐng)求均是要轉(zhuǎn)發(fā)到這一個(gè)域的,即便做一次匹配也是沒有用的。還不如干脆直接就省了。如果一個(gè)http域的server域有多個(gè),nginx才會(huì)根據(jù)$hostname去匹配server_name進(jìn)而把請(qǐng)求轉(zhuǎn)發(fā)到匹配的server域中
接下來(lái)是路徑匹配的規(guī)則如果路徑是/front/的話就把請(qǐng)求轉(zhuǎn)發(fā)(反向代理到)http://127.0.0.1:9000的服務(wù),這樣監(jiān)聽9000端口的服務(wù)就能接收到請(qǐng)求。
疑問(wèn):'/front/' 與 '/front'的區(qū)別我不知有什么區(qū)別,希望有高手解答
我覺得這個(gè)配置是坐前后端分離用得。把接口請(qǐng)求和前端請(qǐng)求分離開。
回答3:這種問(wèn)題還是去網(wǎng)上查查nginx的配置文件先看看吧,看不懂的再過(guò)來(lái)提問(wèn)。
回答4:多創(chuàng)建server的配置文件立刻實(shí)現(xiàn)
