wordpress - 用于 wordpress docker 的 Nginx 反向代理 SSL
问题描述
我很抱歉问了一个可能多余的问题,但是当我使用带有 ssl 的 nginx 反向代理服务时,我无法让 wordpress 工作。
当我输入 url http://domain.example.org时,它会将我重定向到https://domain.example.org:8000,说它不可用/
我的 wordpress 安装使用的是 docker,这里是 docker-compose.yml 的相关部分:
heei-wp:
depends_on:
- heei-wp-db
image: wordpress:apache
ports:
- "127.0.0.1:8000:80"
restart: always
volumes:
- ./php.conf.ini:/usr/local/etc/php/conf.d/php.conf.ini
- ./wp_data:/var/www/html
env_file:
- wp.env
这是 nginx 配置:
upstream wp-heei {
server 127.0.0.1:8000;
}
server {
if ($host = example.domain.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name example.domain.com;
location /.well-known {
alias /var/www/example.domain.com/.well-known;
}
server {
server_name example.domain.com;
listen [::]:443 ssl; #ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.domain.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.domain.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
location / {
proxy_pass http://wp-heei;
proxy_redirect off;
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-Host $server_name;
proxy_set_header X-Forwarded-Proto https;
}
}
最后是 wp-config.php
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
$_SERVER['HTTPS'] = 'on';
define('WP_HOME', 'https://domain.example.org');
define('WP_SITEURL', 'https://domain.example.org');
define('FORCE_SSL_ADMIN', true);
$_SERVER['SERVER_PORT'] = 443;
$_SERVER['REMOTE_ADDR'] = $http_x_headers[0];
}
感谢人们的帮助!
解决方案
推荐阅读
- cytoscape.js - 将图表保存到链接到 cytoscape.js 中的用户配置文件的数据库中
- android - FLAG_SECURE 正在模拟器上工作,但不在真实设备上
- laravel - 将文件上传到 S3。未找到“League\Flysystem\AwsS3v3\AwsS3Adapter”类
- python - Volttron Crate Historian 错误:无效数据未保存
- android - 在 Android 的 TextView 中管理大字体大小
- f# - FsUnit.Xunit 列表应该包含一个 x 使得 fx
- azure - 使用个人帐户 microsoft 使用 OAuth2 和 Azure Active Directory 登录
- flutter - Flutter 中的 PayPal WebView 在物理设备上不起作用
- regex - Nifi:ReplaceTextWithMapping 没有按预期工作
- ios - 即使在 iPad 等大屏幕上,当这个视图等于它的 superView 的高度、宽度时,我如何才能使任何视图变成球形的