WordPress配置反向代理

出现重定向问题在于后端服务未配置HTTP或者不知道前端正在使用HTTPS,造成在HTTP跳转HTTPS时不断重定向,对后端代理HTTPS即可。

以下配置用于内网反代负载,使用了proxy_protocol协议方便后端获取源IP,与Frp配合使用。

server {
        listen 443 ssl proxy_protocol;

        server_name xxx.xxx.xxx;

        ssl_certificate /etc/ssl/xxx.crt;
        ssl_certificate_key /etc/ssl/private/xxx.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;

        location / {
            proxy_pass_header   Server;
            proxy_set_header    Host $host;
            proxy_set_header    X-Real-IP $proxy_protocol_addr;
            proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header    X-Forwarded-Proto $scheme;
            proxy_pass          https://127.0.0.1:443;

        }

}

注意,proxy_protocol协议不支持浏览器访问。

如果不需要使用和Frp或配置proxy_protocol协议,替换如下即可:

server {

        #删去监听端口处proxy_protocol协议监听
        listen 443 ssl;

        server_name xxx.xxx.xxx;

        ssl_certificate /etc/ssl/xxx.crt;
        ssl_certificate_key /etc/ssl/private/xxx.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;

        location / {
            proxy_pass_header   Server;
            proxy_set_header    Host $host;
            #替换$proxy_protocol_addr为$remote_addr以获取当前客户端地址
            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;
            proxy_pass          https://127.0.0.1:443;

        }

}