Проблема загрузки некоторых ресурсов Wordpress с использованием Nginx на сервере и Wordpress в Docker - PullRequest
0 голосов
/ 12 октября 2019

Я запускаю сервер 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

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...