首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >公网负载均衡到nginx分配流量问题

问公网负载均衡到nginx分配流量问题
EN

Stack Overflow用户
提问于 2019-05-30 14:19:27
回答 1查看 114关注 0票数 0

我正在尝试将来自负载均衡器的请求分发到azure scale set实例。

我使用linux vm映像创建了一个比例集。在镜像中,Nginx已经安装在虚拟机中。Nginx配置如下:

代码语言:javascript
复制
server {
    listen 80 default_server;

    server_name _;

    return 301 https://$host$request_uri;
}

server {

    listen 443;
    listen [::]:443;
    server_name 127.0.0.1 127.0.0.1 *.cloudapp.azure.com;
    ssl_certificate /usr/local/etc/ssl/certs/certi/domain-crt.txt;
    ssl_certificate_key /usr/local/etc/ssl/certs/certi/domain-key.txt;
    ssl on;
    ssl_session_cache builtin:1000 shared:SSL:10m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;
    access_log /var/log/nginx/access.log;
    location / {
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-Host $host; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
        proxy_pass https://127.0.0.1:9000; 
        proxy_redirect http:// https://;
    }


}

另一个应用程序(XYZ)正在端口9000上运行。因此,Nginx将请求路由到端口9000。然后,应用程序(XYZ)使用请求并返回响应。

现在,我使用公共负载均衡器创建了一个伸缩集。负载均衡规则是监听80端口,发送到后端80端口。

为了检查实例的健康状况,我发送了一个tcpProbe(端口80,间隔5,不健康阈值4)。

存在与负载均衡器关联的公网IP地址。

但是,即使在浏览器中点击公共ip地址(或DNS名称)后,我也看不到应用程序在端口9000上运行。

我是Azure和Nginx的新手,在实现它时遇到了困难。我所要做的就是使用scale set和loadbalancer运行我的vm镜像的多个实例。

创建比例集时创建的资源包括pip、vnet、scaleset、lb、nsg。

如何将负载均衡的流量分发到nginx?任何关于我如何调试它的提示和建议。

EN

回答 1

Stack Overflow用户

发布于 2019-05-30 15:25:51

交通流量如下:

Client on port 80 --> LB(80) --> Nginx (80)重定向到端口443,带有location header Client on port443 --> LB(443) --> Nginx (443) -->Nginx(443)另一个重定向到端口9000 (不确定是否为内部重定向)

因此,您所需要做的就是在端口443和端口9000上创建一个LB规则(如果它是重定向到客户端),以便流保持不变。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56372686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档