我想为 nginx 代理的两个域(jira.firstdomain.com、jira.seconddomain.com)配置 tomcat 的代理名称。
因此对于第一个域名我在 nginx 中有这样的配置
upstream jira {
server 127.0.0.1:8080;
}
proxy_cache_path /var/run/nginx-cache levels=1:2 keys_zone=nginx-cache:50m max_size=50m inactive=1440m;
proxy_temp_path /var/run/nginx-cache/tmp;
server {
server_name jira.firstdomain.com;
listen 80;
access_log /var/log/nginx/jira.log combined;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080;
proxy_set_header Authorization "";
set $do_not_cache 0;
if ($request_uri ~* ^(/secure/admin|/plugins|/secure/project)) {
set $do_not_cache 1;
}
proxy_cache nginx-cache;
proxy_cache_key "$scheme://$host$request_uri";
proxy_cache_bypass $do_not_cache;
proxy_cache_valid 1440m;
proxy_cache_min_uses 1;
add_header X-Proxy-Cache $upstream_cache_status;
}
location ~*/(feed)$ {
proxy_ignore_headers Cache-Control;
}
}
而tomcat的server.xml中有这样的配置
<Connector port="8080"
maxThreads="150"
minSpareThreads="25"
connectionTimeout="20000"
enableLookups="false"
maxHttpHeaderSize="8192"
protocol="HTTP/1.1"
useBodyEncodingForURI="true"
redirectPort="8443"
acceptCount="100"
disableUploadTimeout="true"
service="http"
proxyName="jira.firstdomain.com"
proxyPort="80"/>
我也想将我的第二个域名指向 tomcat。我需要做什么?
- 为 nginx 创建类似的配置?
- 在 tomcat 中创建第二个连接器,但使用另一个端口并将 proxyName 设置为 jira.seconddomain.com?
或者有没有更简单的设置?
谢谢
答案1
只需将其添加到 server_name
server_name jira.firstdomain.com jira.seconddomain.com;
当然,只要您希望它指向同一个 JIRA 实例,情况就是如此。
您可以安全地proxyName="jira.firstdomain.com"
从连接器上移除,只要您有,它就会工作proxy_set_header Host $host;
。
您也可以从 nginx 中proxy_set_header X-Forwarded-Host $host;
删除proxy_set_header X-Forwarded-Server $host;
。
对于 SSL,您要么需要具有备用名称的证书,要么需要创建多个服务器块。