将第二个域重定向回主域上的特定位置
Redirect 2nd domain back to a specific location on main domain
使用 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/ permanent;
}
尝试在没有重定向的情况下将 https://example2.com/foo
代理到 https://example.com/urlService/foo
可能很简单,也可能充满问题。主要的潜在问题是解析请求页面生成的 URL。
但是,一般的解决方案可能如下所示:
upstream tomcat {
...
}
server {
server_name example.com;
listen 443 ssl;
...
location / {
...
proxy_pass http://tomcat/;
}
}
server {
server_name example2.com;
listen 443 ssl;
...
location / {
...
proxy_pass http://tomcat/urlService/;
}
}
server {
listen 443 ssl default_server;
...
return 301 https://example.com/;
}
server {
listen 80 default_server;
return 301 https://$host$request_uri;
}
第一个 server
块是您的主站点。第二个 server
阻止代理进入您的主站点的子文件夹。
可选 第三个服务器块匹配 https
与您的任何一个域名都不匹配的请求(例如 IP 地址访问)。它需要一个 SSL 证书,该证书可以与您的主站点相同。浏览器会抱怨 - 但它会停止使用无效域名访问主站点。要么重定向到主站点,要么拒绝使用 return 444;
.
的连接
最后的 server
块是通用的 http
到 https
重定向器。
使用 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/ permanent;
}
尝试在没有重定向的情况下将 https://example2.com/foo
代理到 https://example.com/urlService/foo
可能很简单,也可能充满问题。主要的潜在问题是解析请求页面生成的 URL。
但是,一般的解决方案可能如下所示:
upstream tomcat {
...
}
server {
server_name example.com;
listen 443 ssl;
...
location / {
...
proxy_pass http://tomcat/;
}
}
server {
server_name example2.com;
listen 443 ssl;
...
location / {
...
proxy_pass http://tomcat/urlService/;
}
}
server {
listen 443 ssl default_server;
...
return 301 https://example.com/;
}
server {
listen 80 default_server;
return 301 https://$host$request_uri;
}
第一个 server
块是您的主站点。第二个 server
阻止代理进入您的主站点的子文件夹。
可选 第三个服务器块匹配 https
与您的任何一个域名都不匹配的请求(例如 IP 地址访问)。它需要一个 SSL 证书,该证书可以与您的主站点相同。浏览器会抱怨 - 但它会停止使用无效域名访问主站点。要么重定向到主站点,要么拒绝使用 return 444;
.
最后的 server
块是通用的 http
到 https
重定向器。