天天看点

求教!在同一服务器部署多个服务遇到的问题

现有资源:

我的服务器IP:192.168.1.1

flask app1 部署在:192.168.1.1:10001

flask app2 部署在:192.168.1.1:10002

目的:

利用 Nginx 实现:

1、通过 192.168.1.1/app1/  访问 flask app1服务

2、通过 192.168.1.1/app2/  访问 flask app2服务

我的 Nginx 配置:

求教!在同一服务器部署多个服务遇到的问题

问题描述:

      可以通过 192.168.1.1/app1 或者 192.168.1.1/app2 访问相应服务的主页,但网站的其它资源的链接地址是:

      192.168.1.1/source_name 

      这样就没办法经过nginx转发,也就获取不到相应的资源了。

      个人理解是:资源的地址的html代码中是:/souce_name, 对应的实际 url 是: host + /source_name, 但这次请求的

      host 是 192.168.1.1 而不是 192.168.1.1/app1,所以它的链接地址不是 192.168.1.1/app1/souce_name

目前已知的解决方案:

1、给 192.168.1.1 绑定两个域名 app1, app2 ,Nginx 转发时通过域名转发,

     缺点:每个服务都需要一个域名

2、在客户端修改 host 文件,app1 对应 192.168.1.1 ,  app2 对应 192.168.1.1,  Nginx 转发时通过请求的host转发

     缺点:每个访问服务的客户端都需要修改host文件

3、把服务的端口对外开放,通过ip+端口访问服务

      缺点:安全问题和管理问题

跪求更好的解决方案!

继续阅读