在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(或类似)以查找实际原因.

相关文章

Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一...
本地项目配置 1 复制 luffy/settings/dev.py为prop.py 修改l...
nginx不仅可以隐藏版本信息,还支持自定义web服务器信息 先看...
一 、此次漏洞分析 1 nginx HTTP/2漏洞 [nginx-announce] ng...
###进入nginx 目录cd /usr/local/nginx###递归显示 2 级目录...
在cmd命令窗口输入下面命令进行查看 tasklist /fi "ima...