对于NGINX中的重定向URL,重写无法正常工作

问题描述

我遇到了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

在您的帮助下,我再次尝试,您发现了我的正确方向,因为今天我们已经知道错误在告诉我什么,并已解决。

因此,在您的建议下,您知道它的工作就像魅力一样。

非常感谢!