【问题标题】:rewrite is not working as desired for redirect URL in NGINX对于 NGINX 中的重定向 URL,rewrite 无法正常工作
【发布时间】:2020-12-07 02:10:27
【问题描述】:

我有一个 Nginx 问题,在阅读了很多内容并尝试了多种组合之后,我没有找到解决问题的方法。

我在使用 Nginx 的反向代理后面有一个 Jira 服务器。我的问题是我想将 jira.mydomain.com 作为默认 url,但是 在使用 support.mydomain.com 时我希望它重定向到 https://jira.mydomain.com/servicedesk/customer/portal/1 因为它是服务台的位置。这是我不做的。

我现在得到的结果是 jira.mydomain.com 和 support.mydomain.com 都去同一个地方,这可能是正常行为,我不知道如何配置它,但如果有人能帮忙的话非常感谢。

感谢大家和hivemind。


这就是我现在拥有的

/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 url-rewriting reverse-proxy


    【解决方案1】:

    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)测试配置文件并查看所有包含文件的完整配置。

    【讨论】:

      【解决方案2】:

      非常感谢。我昨天试过了,但是在使用 nginx -T 时出现了下一个错误

      nginx: [emerg] unexpected "E" in /etc/nginx/conf.d/default.conf:183
      nginx: configuration file /etc/nginx/nginx.conf test failed
      

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

      所以知道,有了你的建议,它就像一个魅力。

      非常感谢!

      【讨论】:

        猜你喜欢
        • 2018-05-18
        • 2018-12-12
        • 2017-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-25
        相关资源
        最近更新 更多