首页 > 解决方案 > Nginx 301 在本地访问代理域时

问题描述

我有一个 Nginx 作为域的反向代理运行,我们称它为“testdomain.com”,代理本身正在工作,我几乎可以从我想要的任何地方访问这个网站,除了本地。

为了更好地澄清它,这是我的架构:

我有一个 ESXi 服务器,它有一个 pfsense VM,pfsense VM 端口将所有发往端口 80 的请求转发到另一个 VM 的端口 80。该虚拟机有一个运行 nginx 的 docker 容器,因此它发送到容器的 80 端口,然后将 HTTP 请求代理传递到托管应用程序(WordPress)的另一个外部服务器。正如我之前所说,它工作正常,但是,如果在本地(即我的第一个我的第一个 VM 或 nginx 容器)执行 curl 到我的地址,它会返回以下内容:

curl testdomain.com
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>

似乎 Nginx 找不到虚拟主机,这是我的网站 .conf 的外观:

server {
        listen 80;
        modsecurity on;
        modsecurity_rules_file /etc/nginx/modsec/main.conf;
        server_name testdomain.com;
        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;


    location / {
                add_header Cache-Control public;
                add_header Pragma public;
                add_header Vary Accept-Encoding;
                expires 60M;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://myexternalserver.com:80;
    }
}

server {

        modsecurity on;
        modsecurity_rules_file /etc/nginx/modsec/main.conf;
        listen 443 ssl http2;
        server_name testdomain.com;
        access_log /var/log/nginx/access.log;
        ssl_certificate /etc/nginx/ssl/nginx-selfsigned.crt;
        ssl_certificate_key /etc/nginx/ssl/nginx-selfsigned.key;

        # 
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

        # 
        ssl_prefer_server_ciphers on;
        ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
        # 
        ssl_dhparam /etc/nginx/ssl/dhparam.pem;

        # 
        add_header Strict-Transport-Security "max-age=31536000" always;

        #
        ssl_session_cache shared:SSL:40m;
        ssl_session_timeout 4h;
        ssl_session_tickets on;

        location / {
                add_header Cache-Control public;
                add_header Pragma public;
                add_header Vary Accept-Encoding;
                expires 60M;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass https://myexternalserver.com:443;
        }
}

如果我错过任何相关信息,我深表歉意。

谢谢!

标签: wordpressdockernginxnginx-reverse-proxyhttp-status-code-301

解决方案


推荐阅读