nginx反向代理多個服務

1272881215發表於2018-01-19

打比方,我用 beego 分別開發了一個站點的 PC 版和手機版,他們分別監聽的是 8080 和 8081 埠,繫結的域名是 www.example.com ,我想讓使用者訪問 www.example.com 的時候訪問的是 PC 站點,訪問 www.example.com/mobile 的時候,訪問的是手機站點。 我的 nginx 目前的配置如下:

upstream pc {
    server 127.0.0.1:8080;
}
upstream mobile {
    server 127.0.0.1:8081;
}

server {
        listen    80;
        server_name    www.example.com;
        charset    utf-8;

        location / {
           proxy_pass http://pc/;
           port_in_redirect   on;
           proxy_redirect     off;
           proxy_set_header   Host             $host;
           proxy_set_header   X-Real-IP        $remote_addr;
           proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
      }
      location /mobile/ {
           proxy_pass http://mobile/;
           port_in_redirect   on;
           proxy_redirect     off;
           proxy_set_header   Host             $host;
           proxy_set_header   X-Real-IP        $remote_addr;
           proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
      }
}

但是這樣配置有個問題就是,在使用者訪問移動站點的時候,移動站點的靜態資原始檔的 url 連結不正確。 求解移動端如何定位到正確的靜態資源連結上。靜態資源的正確連結http://www.example.com/mobile/static/css/main.css ,但是目前定位到的位置是http://www.example.com/static/css/main.css 了,即訪問移動站點,但是樣式卻是 PC 站點的

更多原創文章乾貨分享,請關注公眾號
  • nginx反向代理多個服務
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章