ฉันกำลังพยายามตั้งค่าต่อไปนี้:
- คอนเทนเนอร์นักเทียบท่าที่มี nginx บน localhost เป็นพร็อกซีย้อนกลับสำหรับ Wordpress ฟังบน localhost:80 นอกจากนี้ยังใช้เป็น reverse-proxy สำหรับไมโครเซอร์วิสอื่นๆ
- นักเทียบท่าเขียนคอนเทนเนอร์ด้วย Wordpress + Apache ฟังบน localhost:4261 docker-compose.yaml ถูกนำมาจาก ตัวอย่างเป็นทางการ. คำสั่ง 'พอร์ต' เปลี่ยนจาก "8000:80" --> "4261:80"
ฉันลองทำตามคำแนะนำและตัวแก้ไขปัญหามากมาย แต่ nginx ยังคงตอบสนองด้วย "การเชื่อมต่อ 111 ถูกปฏิเสธ" คำถามที่คล้ายกัน (ซึ่งไม่ได้ผลสำหรับฉัน): ที่นี่ และ ที่นี่.
ความคิดใด ๆ ?
การกำหนดค่า nginx:
เซิร์ฟเวอร์ {
# ฟัง HTTPS
ฟัง [::]:443 ssl ipv6only=เปิด;
ฟัง 443 ssl;
ชื่อเซิร์ฟเวอร์ ${NGINX_URL};
ssl_certificate /certs/certificate.pem;
ssl_certificate_key /certs/private.key;
ตำแหน่ง /wp/ {
เขียนใหม่ ^/wp/?(.*)$ /$1 ตัวแตก;
proxy_pass http://localhost:4261/;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-ส่งต่อเซิร์ฟเวอร์ $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header โฮสต์ $http_host;
proxy_set_header อัพเกรด $http_upgrade;
proxy_set_header การเชื่อมต่อ "อัพเกรด";
เปิด proxy_pass_request_headers;
}
...
}
wp-config.php:
...
// หากเราอยู่เบื้องหลังพร็อกซีเซิร์ฟเวอร์และใช้ HTTPS เราจำเป็นต้องแจ้งเตือน WordPress ถึงข้อเท็จจริงนั้น
// ดูเพิ่มเติมที่ https://wordpress.org/support/article/administration-over-ssl/#using-a-reverse-proxy
ถ้า (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== เท็จ) {
$_SERVER['HTTPS'] = 'เปิด';
}
...