微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在nginx proxy_pass配置中使用server_name变量

我有两个不同数据的后端,我想测试我的UI代码,所以我试图配置Nginx,允许我根据URL切换它们.

例如,本地URL https://ui.local.otherserver:80将尝试我的本地文件,然后将其他任何内容代理到https:// otherserver:80.

我正在尝试避免使用两个服务器块,因为下面的配置已经简化,重复很痛苦.

我看到的行为是其中一个后端工作正常,另一个给我一个502(坏网关)错误,但如果我在proxy_pass行中硬编码任一服务器的名称它按预期工作,即成功代理该特定服务器.

我有什么想法我做错了吗?

ssl             on;
ssl_certificate      /usr/local/etc/Nginx/conf.d/cert.ui.crt;
ssl_certificate_key  /usr/local/etc/Nginx/conf.d/cert.ui.key;

server {
    listen          443;
    listen          80;
    server_name     ~^ui\.local\.(?Nginx/ui.access.log;
    error_log       /var/log/Nginx/ui.error.log;

    root /Users/richard/Projects/ui/trunk/;

    location ~ ^(.*)${
        try_files $1 @platform;
    }
    location @platform {
        proxy_pass https://$backend:$port;
    }
}
最佳答案
502是Bad Gateway错误,这意味着Nginx无法与后端通信. Nginx错误日志中应该有更详细的消息,说明通信错误是什么.查看/var/log/Nginx/error.log(或类似)以查找实际原因.

原文地址:https://www.jb51.cc/nginx/435420.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐