我有以下的nginxconfiguration:
upstream toshiba15 { server toshiba15.local:80; } server { listen 443 ssl; server_name my.domain.com; ssl_certificate /etc/nginx/ssl/startssl-nginx.crt; ssl_certificate_key /etc/nginx/ssl/startssl-nginx.key; root /usr/share/nginx/html/; location /dev/ { proxy_pass http://toshiba15/; proxy_redirect http://toshiba15/ /dev/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
大多数情况下按预期工作,但是一个问题 – 当我在uri中指定一个不存在的子目录时,它会在代理(toshiba15)服务器的根目录中显示内容!
代理服务器有一个股票nginxconfiguration – 没有改变。
编辑 :我通过添加另一个服务器返回404,并使用正则expression式为我的server_names解决了子域问题
此外,如果我指定一个未定义的子域,它将redirect到代理服务器(my.domain.com)的根目录
谢谢!
好吧,我想出了该怎么做。 在上游服务器上,我移动了位置块内的根和索引指令,并删除了这些尝试。
在代理上,为了照顾子域问题,我在顶部设置了一个没有服务器名称的捕获,并返回404.我添加了一个正则expression式到主域名。