搜尋

首頁  >  問答  >  主體

nginx 反向代理伺服器設定基礎問題?小弟是菜鳥,請大神賜教,感激不盡…

公司有反向代理伺服器,nginx.conf 設定文件,關鍵部分配置如下:

    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/;
        }

#問題1:請大神用菜鳥都能聽懂的語音,解釋箭頭標註的四個地方是什麼意思?
問題2:listen 預設連接埠是80,上面已經改為8077, 如果改為80,可以使用下面的連結存取實現反向代理(我想要的效果)

http://localhost/front/#/main/home     这种方法来访问
http://localhost/front/      测试服务器地址

但是,現在埠改為了8077,請問,上面兩個URL怎麼改寫,才能達到和80埠同樣的效果?

小弟是菜鳥,請大神賜教,感激不盡…

怪我咯怪我咯2783 天前571

全部回覆(4)我來回復

  • PHPz

    PHPz2017-05-16 17:17:08

    箭頭1
    監聽本機8077 埠
    箭頭二
    沒這種寫法
    箭頭三
    存取路徑中有front,
    箭頭四
    反向代理到本機9000埠,這個應該是php-fpm監聽埠需改為8077
    箭頭二改為

    server_name localhost;

    瀏覽器開啟http://localhost:8077/front/

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 17:17:08

    談不上賜教,我也只能說個大概,具體的東西我也是很清楚.

    1. listen 8077 意思就是用戶訪問的端口如果是8077的話,就走這個配置(nginx監聽8077端口)

    2. 如果nginx只配置一個server域的話,則nginx是不會去進行server_name的匹配的。因為只有一個server域,也就是這有一個虛擬主機,那麼肯定是發送到該nginx的所有請求均是要轉送到這一個網域的,即便做一次符合也是沒有用的。還不如乾脆直接就省了。如果一個http網域的server網域有多個,nginx才會根據$hostname去符合server_name進而把請求轉送到符合的server網域中

    3. 接下來是路徑匹配的規則如果路徑是/front/的話就把請求轉發(反向代理到)http://127.0.0.1:9000的服務,這樣監聽9000端口的服務就能接收到請​​求。

    疑問:"/front/" 與 "/front"的區別我不知有什麼區別,希望有高手解答

    我覺得這個配置是坐前後端分離用得。把介面請求和前端請求分開離開。

    回覆
    0
  • 怪我咯

    怪我咯2017-05-16 17:17:08

    這種問題還是去網路上查nginx的設定檔先看看吧,看不懂的再來提問。

    回覆
    0
  • 某草草

    某草草2017-05-16 17:17:08

    多建立server的設定檔立刻實作

    回覆
    0
  • 取消回覆