docker容器上POST的特定Nginx反向代理重定向问题

时间:2019-12-01 14:53:12

标签: docker nginx networking reverse-proxy

我最近将我的wordpress安装迁移到了docker。我正在使用nginx(在容器中)作为反向代理来处理到域中多个容器的所有传入流量。大多数事情都可以正常工作,但是当在wordpress上发布评论时,用户在点击“发送”时会收到504网关超时,尽管此后评论正确显示在了网站上。所以我想这是nginx反向代理重定向的问题。我已经尝试了很多在线阅读的内容,似乎对我没有任何帮助,所以我非常感谢您的帮助。

我也有一个自定义指标终结点,我将带有curl的HTTP POST发送到该终结点,为了实现此目的,我不得不通过添加-L --post301来更改curl,否则将无法正常工作。

官方dockerhub图片

nginx:1.17.5

wordpress:5.2.4-php7.1

nginx容器日志:

2019/12/01 14:29:13 [error] 21#21: *3065 upstream timed out (110: Connection timed out) while reading response header from upstream, client: <my-ip>, server: <my-domain>, request: "POST /wp-comments-post.php HTTP/1.1", upstream: "http://172.18.0.11:80/wp-comments-post.php", host: "<my-domain>", referrer: "https://<my-domain>/index.php/<the-blog-post>/"  
[01/Dec/2019:14:29:13 +0000] "POST /wp-comments-post.php HTTP/1.1" 504 569 "https://<my-domain>/index.php/<the-blog-post>/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"

Nginx.conf:

events{}
http {
    server {
        listen 80;
        server_name <my-domain>;
        location / {
            return         301 https://$server_name$request_uri;
        }
        location /.well-known/acme-challenge/ {
            root /var/www/certbot;
        }
    }

    server {
        listen 443 ssl;
        server_name <my-domain>;

        location /grafana/ {
            proxy_pass http://grafana:3000/;
        }


        location /metrics-collect/ {
            proxy_pass http://metrics:8080/collect;
        }

        location / {
            proxy_pass http://wordpress:80/;
        }

        ssl_certificate /etc/letsencrypt/live/<my-domain>/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/<my-domain>/privkey.pem;
        include /etc/letsencrypt/options-ssl-nginx.conf;
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    }

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

评论者的请求:

Request URL: https://<my-domain>/wp-comments-post.php
Referrer Policy: no-referrer-when-downgrade
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Accept-Encoding: gzip, deflate, br
Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 105
Content-Type: application/x-www-form-urlencoded
DNT: 1
Host: <my-domain>
Origin: https://<my-domain>
Pragma: no-cache
Referer: https://<my-domain>/index.php/<the-blog-post>/
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36

0 个答案:

没有答案
相关问题