Первым делом нужно привести настройки nginx, файл /etc/nginx/sites-available/default примерно вот к такому виду (по образцу моих настроек) :
server { server_name legan.by; listen 80 default_server; listen 443 ssl http2; listen [::]:443 ssl http2; ssl_session_cache shared:SSL:20m; ssl_session_timeout 60m; ssl_prefer_server_ciphers on; ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DHE+AES128:!ADH:!AECDH:!MD5; ssl_dhparam /etc/nginx/cert/dhparam.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; add_header Strict-Transport-Security "max-age=31536000" always; # root /var/www/html/wp/; ssl_certificate /etc/letsencrypt/live/legan.by/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/legan.by/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/legan.by/chain.pem; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8; access_log /var/log/nginx/host.com-access.log; error_log /var/log/nginx/host.com-error.log; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { #Тут унас живёт Tomcat ROOT proxy_pass http://127.0.0.1:8080/; } location /scm/ { #Отдельно настройку для SCM, что бы не было всяких 127.0.0.1 внутри приложения proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:8080/scm/; } location /blog/ { # Это Apache, а именно мой блог на базе Worldpress proxy_pass http://127.0.0.1:8081/blog/; } location /phpmyadmin/ { # Ну Это Apache phpmyadmin proxy_pass http://127.0.0.1:8081/phpmyadmin/; } }
но обычного редиректа для нормальной работы Worldpress недостаточно, необходимо отредактировать файл настроек (в моём случае его путь будет таким) /var/www/html/blog/wp-config.php, и добавить туда вот такие строки :
// If WordPress is behind reverse proxy. // which proxies https to http if ( (!empty( $_SERVER['HTTP_X_FORWARDED_HOST'])) || (!empty( $_SERVER['HTTP_X_FORWARDED_FOR'])) ) {. // http://wordpress.org/support/topic/wordpress-behind-reverse-proxy-1 $_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST']; define('WP_HOME', 'https://legan.by/blog/'); define('WP_SITEURL', 'https://legan.by/blog/'); // http://wordpress.org/support/topic/compatibility-with-wordpress-behind-a-reverse-proxy $_SERVER['HTTPS'] = 'on'; }
После такого рода манипуляций, в адресной строке должен правильно ресолвится ваше доменное имя, а не 127.0.0.1:8081 на котором висит Apache.