Хобрук: Ваш путь к мастерству в программировании

Перенаправить nginx в док-контейнер wordpress

У меня есть веб-сервер nginx на хосте моего vps с простым html-сайтом в главном корне (пример: domain.com).

Я хочу перенаправить конечную точку этого веб-сервера в док-контейнер с wordpress на порту 8080. Конечная точка должна быть /blog.

У меня есть эта конфигурация на виртуальном хосте nginx (включая перенаправление на порт 443):

server {

    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2 default_server;

    root /var/www/http/domain.com/public;

    index index.html index.htm index.nginx-debian.html;

    server_name domain.com www.domain.com;

    #headers
    add_header Strict-Transport-Security    "max-age=31536000; includeSubDomains" always;
    add_header X-Frame-Options              SAMEORIGIN;
    add_header X-Content-Type-Options       nosniff;
    add_header X-XSS-Protection             "1; mode=block";
    
    #ssl
    ssl_protocols               TLSv1 TLSv1.1 TLSv1.2;
    ssl_ecdh_curve              secp384r1;
    ssl_ciphers                 "ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384 OLD_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 OLD_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256";
    ssl_prefer_server_ciphers   on;
    ssl_certificate             /etc/ssl/private/domain.com.crt;
    ssl_certificate_key         /etc/ssl/private/domain.com.key;
    ssl_session_timeout         10m;
    ssl_session_cache           shared:SSL:10m;
    ssl_session_tickets         off;
    ssl_stapling                on;
    ssl_stapling_verify         on;
    

    location /blog {
            include  /etc/nginx/mime.types;
            #proxy
            proxy_pass  http://localhost:8080;
            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;
    }


}

server {

        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        server_name domain.com www.domain.com;

        return 301 $scheme://$server_name$request_uri;

}

server {

        listen 80;
        listen [::]:80;

        server_name domain.com www.domain.com;

        location /blog {
           include  /etc/nginx/mime.types;
           proxy_pass  http://localhost:8080;
        }

        return 301 https://$server_name$request_uri;
}

Это не работает. Я попытался установить другой виртуальный хост с именем blog.domain.com, но некоторые функции, как wp-login и wp-admin, не работают (ни css, ни javascript, ни сертификат ssl).

Спасибо.


Ответы:


1

Используя команду: docker inspect container_id контейнера Wordpress, получите IP-адрес идентификатора контейнера, затем:

proxy_pass http://ipaddress_of_container_ID:8080;

21.08.2020
  • Спасибо, но это дает мне 502 Bad Gateway 21.08.2020
  • Хорошо, я изменил только ip и домен, но все равно: 2020/08/21 13:34:54 [ошибка] 16187#16187: *1 connect() не удалось (111: Отказ в подключении) при подключении к восходящему каналу, сервер: domain.com, запрос: GET /test HTTP/2.0, восходящий поток: docker_wp_ip:8080/test, хост : домен.com. Кажется, что поиск/тест внутри контейнера докеров 21.08.2020
  • Вы должны проверить domain.com/blog 21.08.2020
  • Да, на данный момент я изменил конечную точку, чтобы избежать проблем с кешем. 21.08.2020
  • Новые материалы

    7 полезных библиотек JavaScript, которые вы должны использовать в своем следующем проекте
    Усильте свою разработку JavaScript Есть поговорка «Не нужно изобретать велосипед». Библиотеки — лучший тому пример. Это поможет вам написать сложные и трудоемкие функции простым способом...

    Базовое руководство по переносу концепций обучения в глубокое обучение
    Обзор По мере того, как машинное обучение становится все более мощным и продвинутым, модели, обеспечивающие эту расширенную возможность, становятся все больше и начинают требовать огромного..

    C в C.R.U.D с использованием React-Redux
    Если вы использовали React, возможно, вы знакомы с головной болью, связанной с обратным потоком данных. Передача состояния реквизитам от родительских компонентов к дочерним компонентам может..

    5 обязательных элементов современного инструмента конвейера данных
    В цифровом мире предприятия используют конвейеры данных для перемещения, преобразования и хранения огромных объемов данных. Эти конвейеры составляют основу бизнес-аналитики и играют..

    Случай использования npm3 вместо npm2 для разработки библиотеки
    Некоторое время назад я создал библиотеку на NodeJS, чтобы упростить рендеринг на стороне сервера и клиента. Он использует React и React Router для отображения соответствующего HTML на веб-сайте...

    Локаджит, спасибо, что поделились этой точкой зрения.
    Локаджит, спасибо, что поделились этой точкой зрения. «Вы становитесь сильными, поднимая других, а не опуская их». Мы все можем извлечь уроки из этой цитаты.

    Как простая библиотека может повысить производительность вашего приложения React
    Знакомство с Million.js Виртуальный DOM React не такой быстрый. Но мы не можем обойти это. Если мы хотим React, нам нужно его придерживаться, верно? Нет, есть альтернатива. Million —..