Nginx https反向代理 Docker wordpress http

发布于 作者 量尺寸留下评论

此例中,Docker容器A安装apache2,使用容器80端口(未映射宿主机端口),IP为 172.17.0.3,现在通过宿主机安装Nginx,绑定域名 abcdef.com,并配置SSL,以https转发。以下直接给出Nginx的 default.conf 配置文件,upstream 以下内容为自定义内容,其中 abcdef.com 是绑定的域名,SITE_SSL_CRT.crt SITE_SSL_KEY.key 是SSL证书文件和私钥文件。需要补充说明的是,如果你使用的是wordpress,则需要配置 wp-config.php文件添加

$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

上述代码必须添加在 wp-config.php 文件的 if ( ! defined( ‘ABSPATH’ ) ) 前。

宿主机的nginx反代Docker http,并配置SSL(强烈建议不要在Docker容器的网络服务器上配置SSL),nginx配置文件主要内容如下:

upstream abcdef_stream{
    server 172.17.0.3:80;
}

server {
        listen       443 ssl http2 default_server;
        listen       [::]:443 ssl http2 default_server;
        server_name  abcdef.com;
        add_header Access-Control-Allow-Origin https://abcdef.com;
        add_header Access-Control-Allow-Credentials true;
        ssl_certificate     /data/ssl/SITE_SSL_CRT.crt;
        ssl_certificate_key /data/ssl/SITE_SSL_KEY.key;
        ssl_prefer_server_ciphers on;
        location / {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://abcdef_stream;
        proxy_redirect default;
        }
        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

server {
listen 80;
listen [::]:80;
server_name _;
rewrite ^/(.*) https://$host/$1 permanent;
}
}

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注