Nginx实现多域名转发到web服务不同路径

原文地址:https://blog.csdn.net/starwmx520/article/details/53353500/

项目背景

我们有个项目前端是用vue 写的,node 起的web服务,中转api到后台接口。

但是项目下有多个平台,可以理解成多个端,每个端都有自己的node web服务,绑定不同端口,如3001 3002 3003 3004 ...

这有个麻烦的就是部署,需要启多个服务。

现在想把多个端合并在一起,起一个node web 服务。

端的区别用路径。如a 端就是/a ,b端就是/b

这样在开发时是可以使用的。麻烦的一点就是解决多个端session 的问题。

部署时需要www.x.com 访问/

a.x.com 访问 /a/

b.x.com 访问/b/

这样就需要用nginx 实现代理了。

扫描二维码关注公众号,回复: 1182186 查看本文章

但是又有一个问题,a.x.com 访问的是/a/,导致静态资源加载不了。

解决:

location ~ .*\.(jpg|gif|jpeg|bmp|png|ico|js|json)$ 
        { 
            access_log off;            
            root /mnt/csyl_web/public;
        #expires 定义用户浏览器缓存的时间为7天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力
            expires      1d; 
        } 

测试时发现发起的api 请求访问不到。

请求都是在根目录,通过a.xx.com访问的就是/a/get 了。

还需要想办法解决,区分开来。

因为是SPA 项目,只有一个页面,请求/时node 返回页面。其他的都是请求了。

location = / 时 访问/a/

location /  时访问/

以下是代码

[html]  view plain  copy
  1. #----------------wwww  
  2.     server {  
  3.         listen       80;  
  4.         server_name  www.a.com;  
  5.     location / {  
  6.             proxy_pass http://localhost:3010/;  
  7.         }  
  8.      }    
  9. #----------------------------g  
  10.     server {  
  11.         listen       80;  
  12.         server_name  g.a.com;  
  13.   
  14.         #charset koi8-r;  
  15.   
  16.         #access_log  logs/host.access.log  main;  
  17.   
  18.         location ~ .*\.(jpg|gif|jpeg|bmp|png|ico|js|json)$   
  19.         {   
  20.             access_log off;              
  21.             root /mnt/csyl_web/public;  
  22.         #expires 定义用户浏览器缓存的时间为7天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力  
  23.             expires      1d;   
  24.         }   
  25.   
  26.   
  27.         location = / {  
  28.             #root   html;  
  29.             #index  index.html index.htm;  
  30.   
  31.             proxy_http_version  1.1;  
  32.             proxy_set_header    X-Real-IP $remote_addr;  
  33.             proxy_read_timeout  120;  
  34.             proxy_set_header    Host $http_host;  
  35.             proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;  
  36.             proxy_set_header    Upgrade $http_upgrade;  
  37.             proxy_set_header    Connection "upgrade";  
  38.             proxy_buffering off; #禁用缓存  
  39.             #proxy_pass          http://myapp;  
  40.             proxy_pass http://localhost:3010/webg/;  
  41.         }  
  42.         location / {  
  43.             proxy_pass http://localhost:3010/;  
  44.         }  
  45.     }  
  46.   
  47.   
  48.   
  49.    #-----------------------------o  
  50.     server {  
  51.         listen       80;  
  52.         server_name  o.a.com;  
  53.   
  54.         #charset koi8-r;  
  55.   
  56.         #access_log  logs/host.access.log  main;  
  57.   
  58.         location ~ .*\.(jpg|gif|jpeg|bmp|png|ico|js|json)$   
  59.         {   
  60.             access_log off;              
  61.             root /mnt/csyl_web/public;  
  62.         #expires 定义用户浏览器缓存的时间为7天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力  
  63.             expires      1d;   
  64.         }   
  65.         location = / {  
  66.             #root   html;  
  67.             #index  index.html index.htm;  
  68.   
  69.             proxy_http_version  1.1;  
  70.             proxy_set_header    X-Real-IP $remote_addr;  
  71.             proxy_read_timeout  120;  
  72.             proxy_set_header    Host $http_host;  
  73.             proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;  
  74.             proxy_set_header    Upgrade $http_upgrade;  
  75.             proxy_set_header    Connection "upgrade";  
  76.             proxy_buffering off; #禁用缓存  
  77.             #proxy_pass          http://myapp;  
  78.             proxy_pass http://localhost:3010/webo/;  
  79.         }  
  80.   
  81.   
  82.         location / {  
  83.             proxy_pass http://localhost:3010/;  
  84.             #index  index.html index.htm;  
  85.         }  
  86.   
  87.           
  88.     }  

猜你喜欢

转载自blog.csdn.net/tanga842428/article/details/80511025
今日推荐