假设我有几个用于监视后端服务的Web UI站点。
我想让他们可以从网上访问(由Auth保护),但理想情况下捆绑在一个子域下,可以通过各种URL访问,如:
https://monitor.mydomain.com/my-service-monitor/
使用nginx,如果我使用重写规则
server { listen 443 ssl; server_name monitor.mydomain.com; # auth stuff here... location /my-service-monitor/ { rewrite ^/my-service-monitor(/.*)$ $1 break; proxy_pass http://my-service-monitor; } }
会发生什么是redirect工作,但因为所有的静态内容指的是根URL,它不会如预期的那样显示(因为后端站点正在输出HTML查看根/ url,而不是相对URL monitor.mydomain .COM /我的服务监视器/ …
我该如何解决这个问题,还是有一个更简单的解决scheme呢? (我可以使用多个子域名,但这是太多外曝光国际海事组织)
我想redirect(与返回301 …)到子域根URL,但在不同的端口上,然后添加一个服务器集群侦听该端口代理到服务器,但我觉得这将是麻烦与身份validation。
任何有识之士将不胜感激。
您需要教您的后端应用程序为页面生成正确的URL。 显然,有人正在编写自定义的lua代码来修改nginx中返回的HTML,但老实说,我build议避免,因为它是疯了。
我结束了分配每个站点不同的端口,在同一个子域
问题是服务器块应该在server_name中包含端口。 起初,我只有监听值列表的端口,但它不会在同一个server_name上的多个站点工作,所以需要
server { listen 8000 ssl; server_name sub-domain.domain.com:8000; #auth stuff location / { proxy_pass http://my-service-monitor1; } } server { listen 8001 ssl; server_name sub-domain.domain.com:8001; #auth stuff location / { proxy_pass http://my-service-monitor2; } }