У нас есть запрос от клиента, где нам нужно разместить сайт 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
, и мы просто перенаправляем прокси для основного сайта.