问题描述
我遇到了Nginx问题,经过大量阅读并尝试了多种组合后,我找不到解决问题的方法。
我在使用Nginx的反向代理后面有一个Jira服务器。我的问题是我希望将jira.mydomain.com作为默认URL,但是在使用support.mydomain.com时,我希望它重定向到https://jira.mydomain.com/servicedesk/customer/portal/1 ,因为这是服务台所在的位置。这不是我做的。
我现在得到的结果是jira.mydomain.com和support.mydomain.com都位于同一位置,这可能是正常现象,我不知道如何配置它,但是如果有人可以帮助,非常感谢。
谢谢大家和蜂巢。
这就是我现在拥有的
/etc/Nginx/conf.d/default.conf
upstream jira {
server jira_ip_adress:8081;
}
server {
server_name jira.mydomain.com;
server_name support.mydomain.com;
rewrite ^/support.mydomain.com https://jira.mydomain.com/servicedesk/customer/portal/1;
[...]
location / {
proxy_pass http://jira;
[...]
}
解决方法
Nginx使用server_name
指令来匹配URL的域名部分。您需要使用两个server
块,每个域名一个。
例如:
server {
server_name support.mydomain.com;
return 301 https://jira.mydomain.com/servicedesk/customer/portal/1;
}
server {
server_name jira.mydomain.com;
...
}
很显然,如果这些是https
服务,则需要向两个listen
块中添加适当的server
语句。
使用nginx -T
(大写T
)测试配置文件并查看所有包含的文件的整个配置。
非常感谢。我昨天尝试了这个,但是在使用nginx -T
时遇到了下一个错误nginx: [emerg] unexpected "E" in /etc/nginx/conf.d/default.conf:183
nginx: configuration file /etc/nginx/nginx.conf test failed
在您的帮助下,我再次尝试,您发现了我的正确方向,因为今天我们已经知道错误在告诉我什么,并已解决。
因此,在您的建议下,您知道它的工作就像魅力一样。
非常感谢!