ec2 实例和负载均衡器反向代理 Nginx

Posted

技术标签:

【中文标题】ec2 实例和负载均衡器反向代理 Nginx【英文标题】:ec2 instance and load balancer reverse proxy Nginx 【发布时间】:2022-01-03 03:42:54 【问题描述】:

当谈到负载均衡器时,我对 nginx 配置有点困惑。

这是我的情况。

在 aws 上,我有一个负载均衡器来控制 2 个 ec2 实例的流量。

Nginx 的默认配置工作得很好,事实上,如果我在浏览器中直接打开 ec2 实例 IP,我会看到 nginx 页面。如果我点击负载均衡器 dns 名称,我会看到 nginx 默认页面。

用于演示目的。我将我的 nginx.conf 配置如下:

server 
    listen   80; ## listen for ipv4; this line is default and implied
    listen vm-ip:80;

    server_name vm-ip;

    root /usr/share/nginx/html;
    index index.html;

    server_tokens  off; # disable the Server nginx header 

    # enable gzip
    gzip on;
    gzip_disable "msie6";

    gzip_comp_level 6;
    gzip_min_length 1100;
    gzip_buffers 16 8k;
    gzip_proxied any;
    gzip_types
        text/plain
        text/css
        text/js
        text/xml
        text/javascript
        application/javascript
        application/x-javascript
        application/json
        application/xml
        application/rss+xml
        image/svg+xml;

    location / 
        # try_files $uri /index.html; # redirect all request to index.html
        proxy_pass https://<dns of website I want to be redirected to>;

    

我为两个 ec2 实例设置了相同的 nginx.conf。完成此配置后,我尝试直接访问 ec2 实例的 ip,并正确重定向到我想要的网站。但是问题来了,当我尝试在浏览器中打开负载均衡器时,我仍然看到 nginx 默认页面。

谁能解释一下我在这里做错了什么?

如果我的问题不够清楚,请向我询问更多信息,我将非常乐意提供答案。

非常感谢您

【问题讨论】:

【参考方案1】:

问题已解决。问题是 server_name 我必须将其指向负载均衡器 A 记录。

【讨论】:

以上是关于ec2 实例和负载均衡器反向代理 Nginx的主要内容,如果未能解决你的问题,请参考以下文章

Nginx 反向代理负载均衡虚拟主机

nginx学习3:实现nginx反向代理和负载均衡

Nginx入门教程-简介安装反向代理负载均衡动静分离使用实例

网站构建负载均衡Nginx

nginx使用学习之正向代理反向代理负载均衡(配置实例详解)

(高级篇)Nginx反向代理and负载均衡实例详解