Я пытаюсь использовать существующий nginx, работающий на порту 80, для прокси-сервера Apache, обслуживающего веб-сайт Wordpress.
Добавлен раздел nginx (некоторые закомментированные тесты оставлены намеренно, я перепробовал так много версий, извините, если это выглядит неправильно):
upstream wordpress {
server 127.0.0.1:5000;
}
server {
server_name media.raw-news.net;
access_log /home/plumi/PLUMI/plumi.app/var/log/wordpress-access.log;
error_log /home/plumi/PLUMI/plumi.app/var/log/wordpress-error.log;
#root /usr/local/apache2/htdocs/;
location / {
proxy_redirect off;
proxy_pass http://wordpress;
proxy_connect_timeout 75;
proxy_read_timeout 185;
}
location ~ .*\\.(php)$ {
proxy_pass http://wordpress;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
Мой Apache работает на порту 5000 с включенным PHP (только соответствующие файлы php):
LoadModule php5_module modules/libphp5.so
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
AddType text/html .php
AddHandler php5-script .php
Эффект сейчас таков:
Chrome: веб-сайт Wordpress отображается, но похоже, что код PHP не выполняется .. Я вижу только часть HTML.
Firefox: просмотр сайта Wordpress вызывает перенаправление на 127.0.0.1 ...
Safari: это работает! отображается ...
Как ни странно, во всех браузерах, если я просматриваю http://media.example.net/wp-admin и выполнить вход .. Я могу войти в Личный кабинет, и все отображается отлично!
Все изображения есть, код PHP запускается ... но только после входа в Dashboard!
Что мне здесь не хватает?
Я не создавал VirtualHost в Apache, это простой сервер Apache 2.4 с сайтом Wordpress внутри DocumentRoot по умолчанию.
Я не могу перейти на более новую версию nginx, потому что на нем запущен рабочий веб-сайт.
Миграция уже запланирована, когда Plumi официально выпустит 4.5.2 на Debian 8.
Есть ли какая-либо предпочтительная / рабочая конфигурация для правильной передачи всего содержимого Wordpress на мой Apache без перенаправления, например, на 127.0.0.1 и правильного выполнения кода PHP на Apache?
Спасибо !
Вы можете установить (и использовать) дополнительные заголовки для проксирования экземпляра Apache, например:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Большинство бэкэндов (включая Apache и PHP) будут работать с одним или несколькими из них, а также с $Host
(чтобы он знал, какой сайт запрашивается).
это должен затем разрешите PHP Apache распознавать дополнительные данные и по существу сказать: «О, это НЕ исходило из локального хоста, это фактическое происхождение из $remote_addr
". ($remote_addr
- это переменная, указывающая реальный IP-адрес реального источника, а X-Forwarded-For
работает аналогично.)