在nginx proxy_pass配置中使用server_name变量

前端之家收集整理的这篇文章主要介绍了在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相关文章