Я запускаю сервер GNU / Linux с установленным Nginx (не в контейнере Docker). Я хочу запустить экземпляр Wordpress через Docker Compose. Nginx будет пересылать запросы в контейнер Docker.
Я делал это ранее с контейнером MediaWiki.
Мой docker-compose.yml выглядит следующим образом:
version: '3.7'
services:
db:
image: mariadb:latest
container_name: wpdb
volumes:
- wpdb:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: wordpress
MYSQL_USER: user
MYSQL_PASSWORD: password
networks:
- wp
wp:
depends_on:
- db
image: wordpress:php7.3-apache
container_name: wp
ports:
- 8000:80
restart: always
volumes:
- wp:/var/www/html
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: user
WORDPRESS_DB_PASSWORD: password
networks:
- wp
networks:
wp:
external: true
volumes:
wpdb:
external:
name: wpdb
wp:
external:
name: wp
И моя конфигурация Nginx выглядит следующим образом:
server {
listen 80;
listen 443 ssl http2;
server_name wp.example.com;
# HSTS header
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
if ($scheme != "https") {
return 301 https://$host$request_uri;
}
location / {
proxy_pass http://localhost:8000;
}
}
Я изменил некоторую информацию из соображений конфиденциальности, например, имя домена и т. Д.
Когда я выполняю docker-compose up -d, я могузайдите на сайт Wordpress на моем настроенном поддомене wp.example.com.
Некоторые ресурсы будут загружены через wp.example.com
, но есть также некоторые ресурсы, в основном файлы css и js, которые будут загружаться через localhost:8000
.
Я пытался использовать различные типы заголовков прокси, но они, похоже, не работали, как хотелось, они просто удалили ресурсы, загруженные localhost:8000
в целом.
Это были некоторые изИспользуемые заголовки:
location / {
proxy_pass http://localhost:8000;
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;
Любая помощь будет принята с благодарностью, поэтому я могу корректно загрузить все активы через поддомен, и она не будет "просачиваться" из localhost:8000
.
Просто чтобы прояснить,Nginx не работает в Docker-контентеВ любом случае, это просто пакет deb, установленный на сервере через apt install nginx
Спасибо.