Я установил 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 Безопасность