我正在尝试将负载均衡器的请求分发到天蓝色规模设置实例。
我使用linux vm映像创建了一个比例尺集。在映像中,Nginx已安装在虚拟机中。 Nginx配置如下所示:
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?任何提示,关于如何调试的建议。
答案 0 :(得分:1)
流量如下:
端口80上的客户端-> LB(80)-> Nginx(80)重定向到带有位置标头的端口443 端口443上的客户端-> LB(443)-> Nginx(443)另一个重定向到端口9000(不确定它是否是内部重定向)
因此,您需要做的就是在端口443和9000上创建一条LB规则,如果它是重定向到客户端的话,则流保持不变。