Назад | Перейти на главную страницу

Wordpress, tomcat, apache2 и nginx: цикл перенаправления на wordpress

Я установил tomcat для одного сайта и apache2 для другого (wordpress). Проблема возникает на сайте wordpress. Для обратного прокси есть nginx, и вот он:

server {
        listen   80;

        root /var/www/html/;
        index index.php index.html index.htm;

        server_name test.example.com;

        location / {
          try_files $uri $uri/ /index.php;
        }

        location ~ \.php$ {

        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8081;

         }

         location ~ /\.ht {
                deny all;
        }
}
server {
  listen 80;
  server_name conf.example.com;
  location / {
    proxy_pass http://127.0.0.1:8080;
  }
}

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /usr/share/nginx/html;
        index index.html index.htm;

        # Make site accessible from http://localhost/
        server_name batterykazakhstan.com;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
        }

}

Так что кот работает хорошо. Но Wordpress всегда в цикле перенаправляет на страницу приветствия. Не могли бы вы помочь с этой проблемой? Я прочитал об этом и попробовал решение, предложенное, поместив в functions.php вверху:

remove_filter('template_redirect', 'redirect_canonical');

Но это не помогло ..

РЕДАКТИРОВАТЬ1:

Порт 8081 переходит на сервер tomcat и открывает test.example.com, который является сайтом Wordpress.

Порт 8080 переходит на conf.example.com и открывает веб-сайт сервера tomcat, который работает нормально.

РЕДАКТИРОВАТЬ 2: вот конфигурация apache:

ServerAdmin веб-мастер @ localhost DocumentRoot / var / www / html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

РЕДАКТИРОВАТЬ 3:

У меня здесь только два файла .htaccess:

/var/www/html/wp-content/uploads/wp-clone/.htaccess

с содержанием:

<Files>
        Order allow,deny
        Deny from all
        Satisfy all
</Files>

И еще один здесь

/var/www/html/wp-content/plugins/akismet/.htaccess

С содержанием:

<IfModule !mod_authz_core.c>
        Order Deny,Allow
        Deny from all
</IfModule>

# Apache 2.4
<IfModule mod_authz_core.c>
        Require all denied
</IfModule>

# Akismet CSS and JS
<FilesMatch "^(form\.js|akismet\.js|akismet\.css)$">
        <IfModule !mod_authz_core.c>
                Allow from all
        </IfModule>

        <IfModule mod_authz_core.c>
                Require all granted
        </IfModule>
</FilesMatch>

# Akismet images
<FilesMatch "^logo-full-2x\.png$">
        <IfModule !mod_authz_core.c>
                Allow from all
        </IfModule>

        <IfModule mod_authz_core.c>
                Require all granted
        </IfModule>
</FilesMatch>

РЕДАКТИРОВАТЬ 4:

wp-admin работает нормально, это только сам сайт. Адрес Wordpress (URL) и адрес сайта (URL) установлены на http://test.example.com

Позвольте мне резюмировать решение здесь.

В этом примере наш автор собирается построить типичную веб-инфраструктуру Nginx-Apache. Nginx будет использоваться в качестве веб-прокси, перенаправляя трафик на другой внутренний сервер. Вот простая сетевая диаграмма, показывающая взаимосвязь.

Автор хотел бы перенаправить весь трафик PHP на свой внутренний веб-сервер Apache, но поскольку у нас могут быть параметры, стоящие за расширением php, сопоставление для завершения на php не удастся. Вместо этого мы использовали блок местоположения:

location ~ \.php

Это будет соответствовать любому URL-адресу с ключевым словом .php, которое должно иметь возможность автору запускать внутреннее приложение PHP (например, WordPress). Для новой установки нам также может потребоваться проверить, находится ли файл .htaccess в корневой папке WordPress.

Ссылка для справки: Руководство администратора обратного прокси Nginx, Файл WordPress htaccess, htaccess WordPress Безопасность