Разрешение размещения Wordpress в подпапке на уже существующем сайте

У нас есть запрос от клиента, где нам нужно разместить сайт WordPress на нашем веб-сайте. Под внутренним я подразумеваю, что сайт не может находиться в субдомене, т.е. https://blog.example.com вместо этого он должен находиться в своем собственном маршруте/подпапке, т.е. https://www.example.com/blog< /а>. Это связано с ранжированием страниц (очевидно, ранжирование страниц штрафуется, если они помещаются в поддомены).

Проблема в том, что наш сайт не работает на PHP (он написан на Scala, который работает на Jetty). Кроме того, наш основной сайт запускается из контейнера Docker, поддерживаемого Nginx.

В идеале я хотел бы разместить Wordpress на отдельном сервере (контейнерном Docker или нет, это не большая проблема), а в конфигурации nginx для нашего основного сайта сделать его обратным к этому внешнему серверу для определенного URL-адреса (т.е. < href="https://www.example.com/blog" rel="nofollow">https://www.example.com/blog будет указывать на IP/хост внешнего сервера, работает вордпресс)

Как бы вы этого добились/возможно ли это? Это текущий nginx.conf для нашего основного сервера.

server {
    listen 80;
    listen [::]:80;
    listen       443 default_server ssl;
    server_name  www.example.com.au;

    ssl_certificate      /etc/nginx/cert.crt;
    ssl_certificate_key  /etc/nginx/cert.key;

    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:EECDH:!aNULL:!eNULL:!MEDIUM:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED";

    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";

    if ($scheme = http) {
        return 301 https://$server_name$request_uri;
    }

    location / {
         proxy_pass http://localhost:8080;
         proxy_redirect http://www.example.com.au /;
         proxy_set_header    Host            $host;
         proxy_set_header    X-Real-IP       $remote_addr;
         proxy_set_header    X-Forwarded-for $remote_addr;
         proxy_read_timeout 600s;
         port_in_redirect off;
    }
}

Это пример нашего текущего nginx.conf, как вы можете видеть, фактический веб-сайт размещен на localhost:8080, и мы просто перенаправляем прокси для основного сайта.


person mdedetrich    schedule 17.07.2015    source источник


Ответы (1)


Предположим, что служба wordpress размещена в http://localhost:8081, тогда вы можете просто proxy_pass отправить /blog запросы к http://localhost:8081, вы можете просто добавить следующий блок в свой блок nginx server:

    location ^~ /blog {
         proxy_pass http://localhost:8081;
    }
person Freeznet    schedule 17.07.2015