WordPress + Nginx на нестандартном порте за AWS ELB приводит к неработающим ссылкам - PullRequest
0 голосов
/ 27 сентября 2018

Nginx прослушивает порты 80 и 443 и обслуживает наш основной веб-сайт.Допустим, его зовут demosite.com.

Он работает на экземпляре AWS EC2, и трафик проходит через ELB.

Мне нужно развернуть WordPress на той же машине, чтобы он был частью основного сайта и был доступен через демосайт.com / блог.

Есть причина, по которой мы решили настроить WordPress для работы в качестве Vhost на отдельном порту 8088 ( HTTP, не-SSL ).

На ELB я создал правило:

IF Path is /blog/
THEN
Forward to Demosite-WP-blog

Блог Dem Dem-WP - целевая группа, указывающая на порт моей машины 8088.

WordPress Nginxvhost config:

server {
  listen 8088 default_server;
  access_log  /var/log/nginx/blog.access.log;
  error_log  /var/log/nginx/blog.error.log;
  server_name demosite.com www.demosite.com;
  root /var/www/wordpress;
  include /etc/nginx/nginx-wp-common.conf;
}

/ etc / nginx / nginx-wp-common.conf:

    charset utf-8;

    location / {
      index index.php index.html;
      try_files $uri $uri/ /index.php?$args;
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;

    location = /50x.html {
      root /usr/share/nginx/html;
    }

    location ~* /(?:uploads|files)/.*\.php$ {
      deny all;
    }

    location ~ /\. {
      access_log off;
      log_not_found off;
      deny all;
    }

    location ~ \.php$ {
      try_files $uri =404;
      include /etc/nginx/fastcgi_params;
      fastcgi_read_timeout 3600s;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_pass    unix:/run/php/php7.2-fpm.sock;
      fastcgi_split_path_info ^(/blog)(/.*)$;
      fastcgi_index index.php;
    }

   # this was added later   
    location  /blog {
         root /var/www/wordpress;
         index index.php index.html index.htm;
         rewrite /wp-admin$ $scheme://$host$uri/index.php?q=$1 permanent;
         try_files $uri $uri/ @blog;
         }

    location @blog {
            rewrite ^/blog(.*) /blog/index.php?q=$1;
    }

WordPress изначально был настроен как отдельный сайт, прошел через веб-интерфейспроцесс установки, чтобы убедиться, что он работает и т. д. Т.е. я настроил временное имя субдомена wpblog.demosite.com, настроил его - он работал нормально.Затем я перенастроил его как часть основного сайта.
Вот соответствующая часть /var/www/wordpress/wp-config.php, которую я добавил для этой цели:

define( 'WP_SITEURL', 'https://demosite.com' );
define( 'WP_HOME', 'https://demosite.com/blog' );

if ($_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https')
    $_SERVER['HTTPS'] = 'on';

if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
    $_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
}

Путь к содержимому:

/var/www/wordpress
total 204
drwxr-xr-x  5 root www-data  4096 Sep 26 23:15 .
drwxr-xr-x  8 root root      4096 Sep 26 00:47 ..
-rw-r--r--  1 root www-data   418 Sep 25  2013 index.php
-rw-r--r--  1 root www-data 19935 Jan  6  2018 license.txt
-rw-r--r--  1 root www-data  7415 Mar 18  2018 readme.html
-rw-r--r--  1 root www-data  5458 May  1 22:10 wp-activate.php
drwxr-xr-x  9 root www-data  4096 Sep 18 22:00 wp-admin
-rw-r--r--  1 root www-data   364 Dec 19  2015 wp-blog-header.php
-rw-r--r--  1 root www-data  1889 May  2 22:11 wp-comments-post.php
-rw-r-----  1 root www-data  3633 Sep 26 23:01 wp-config.php
-rw-r--r--  1 root www-data  2853 Dec 16  2015 wp-config-sample.php
drwxr-xr-x  5 root www-data  4096 Sep 26 00:26 wp-content
-rw-r--r--  1 root www-data  3669 Aug 20  2017 wp-cron.php
drwxr-xr-x 18 root www-data 12288 Sep 18 22:00 wp-includes
-rw-r--r--  1 root www-data  2422 Nov 21  2016 wp-links-opml.php
-rw-r--r--  1 root www-data  3306 Aug 22  2017 wp-load.php
-rw-r--r--  1 root www-data 37794 Jul 16 14:14 wp-login.php
-rw-r--r--  1 root www-data  8048 Jan 11  2017 wp-mail.php
-rw-r--r--  1 root www-data 16246 Oct  4  2017 wp-settings.php
-rw-r--r--  1 root www-data 30091 Apr 29 23:10 wp-signup.php
-rw-r--r--  1 root www-data  4620 Oct 23  2017 wp-trackback.php
-rw-r--r--  1 root www-data  3065 Aug 31  2016 xmlrpc.php 

Теперь, когда я пытаюсь открыть https://demosite.com/blog/, я получаю, что главная страница WordPress не работает: нет CSS, нет изображений, шрифт по умолчанию, ссылки не работают.

Что я делаю не так и как можно правильно настроить его работу?

...