Nginx 多域名转发到web服务的不同路径
2018-03-20 21:28:34
971 次阅读
0 个评论
项目下有多个平台,每个 平台都有自己的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 实现代理了。
但是又有一个问题,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/
这有个麻烦的就是部署,需要启多个服务。
现在想把多个端合并在一起,起一个node web 服务。
端的区别用路径。如a 端就是/a ,b端就是/b
这样在开发时是可以使用的。麻烦的一点就是解决多个端session 的问题。
部署时需要www.x.com 访问/
a.x.com 访问 /a/
b.x.com 访问/b/
这样就需要用nginx 实现代理了。
但是又有一个问题,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 / 时访问/
#----------------wwww
server {
listen 80;
server_name www.a.com;
location / {
proxy_pass http://localhost:3010/;
}
}
#----------------------------g
server {
listen 80;
server_name g.a.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location ~ .*\.(jpg|gif|jpeg|bmp|png|ico|js|json)$
{
access_log off;
root /mnt/csyl_web/public;
#expires 定义用户浏览器缓存的时间为7天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力
expires 1d;
}
location = / {
#root html;
#index index.html index.htm;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 120;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off; #禁用缓存
#proxy_pass http://myapp;
proxy_pass http://localhost:3010/webg/;
}
location / {
proxy_pass http://localhost:3010/;
}
}
#-----------------------------o
server {
listen 80;
server_name o.a.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location ~ .*\.(jpg|gif|jpeg|bmp|png|ico|js|json)$
{
access_log off;
root /mnt/csyl_web/public;
#expires 定义用户浏览器缓存的时间为7天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力
expires 1d;
}
location = / {
#root html;
#index index.html index.htm;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 120;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off; #禁用缓存
#proxy_pass http://myapp;
proxy_pass http://localhost:3010/webo/;
}
location / {
proxy_pass http://localhost:3010/;
#index index.html index.htm;
}
}
00
相关话题
- Nginx 根据URL请求参数转发
- Nginx端口转发端口配置
- Vue3+Vite+Nginx 二级路径部署
- hack来区分不同的IE浏览器
- MySQL5.7多主一从(多源复制)同步配置
- MyEclipse 2016创建Maven Web 项目
- Elasticsearch 不停止服务更新索引别名
- Nginx的upstream支持的5种分配方式
- jQuery中获取当前JS文件路径
- Chrome下多屏、长页面或者元素截图
- JS客户端同步服务端时间
- nginx禁止访问文件或目录的配置方法及location指令的uri匹配规则
- Spring boot打包后从类路径目录中获取资源列表
- Nginx支持字体文件
- Nginx配置WebSocket负载均衡