【发布时间】:2020-06-29 19:43:08
【问题描述】:
将 Nginx 用作本地 Tomcat 实例的反向代理。需要将第二个域(example2.com)重定向到我们主域example.com 内的特定请求路径,例如example2.com/** => example.com/urlService/**。如果我们在浏览器中输入example2.com/foo,它应该会把我们带到example.com/urlService/foo。当我使用完整的请求路径时能够访问它,例如example2.com/urlService/foo.
使用下面的反向代理教程see here来设置nginx。
tomcat hook to njinx
upstream tomcat {
server 127.0.0.1:8080 fail_timeout=0;
}
server {
server_name example.com example2.com;
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
# ssl stuff here (left out);
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
#try_files $uri $uri/ =404;
include proxy_params;
proxy_pass http://tomcat/;
}
}
server {
listen 80;
server_name example.com;
rewrite ^/(.*) https://example.com/$1 permanent;
}
【问题讨论】:
-
为什么在第一个
server块中有server_name example.com example2.com;? -
从那里删除 example2.com?
-
如果您的网站使用
https,您需要三个server块监听端口443。一个用于您的每个域,一个作为default_server。 -
我的所有域 (https) 都列在第一个服务器块的一行中,您只有 2 个,因为我删除了其他域以简化这篇文章 - 我认为这是允许的。
-
example2.com 应仅指向特定位置。
标签: nginx nginx-reverse-proxy nginx-config