У меня есть два экземпляра сервера, на которых запущена NGINX.Постоянная ссылка Проблема - запуск Wordpress на NGINX за обратным прокси-сервером, который также является NGINX
- NGINX-A, это обратный прокси-сервер. Он перенаправляет трафик на другой внутренний сервер в зависимости от блока местоположения в его конфигурации.
- NGINX-B - это экземпляр сервера, в котором развернуты все наши веб-приложения PHP.
- Другие экземпляры сервера
Так NGINX-A, получает весь входящий трафик, перенаправляет его на соответствующий сервер. NGINX-B - это традиционный хостинг Wordpress, работающий на NGINX вместо Apache.
Я пытаюсь сделать postname пермалинки работы, но не смог сделать это.
Моя текущая структура каталогов:
/appl/wordpress/myblog == symbolic link ==> /usr/share/nginx/html/subdir/myblog
Вот мой текущий конфиг на сервере NGINX-B, где установлен Wordpress.
location /subdir/myblog/ {
try_files $uri $uri/ /subdir/myblog/index.php?$args;
}
Доступ его помощью http://NGINX_B-ip_address/subdir/myblog работ, как postname Permalinks и простые Permalinks. Мне пришлось обновить wp-config как таковой ниже.
define('WP_HOME', 'NGINX_B-ip_address')
define('WP_SITEURL','NGINX_B-ip_address');
Теперь у меня есть еще один сервер Nginx, который действует в качестве обратного прокси-сервера, Nginx-A.
location /{
proxy_pass http://NGINX_B-internal_ip_address;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
#for wordpress
proxy_set_header X-Forwarded-Proto $scheme;
}
Я также должен был обновить WP-config.php с новым именем хоста
define('WP_HOME', 'http://NGINX-A-hostname/myblog')
define('WP_SITEURL','http://NGINX-A-hostname/myblog');
Он работает с использованием простые пермалинки и я могу получить доступ к WP-администратора без каких-либо проблем. Я также могу изменить стратегию постоянных ссылок.
Если я не использую простых постоянных ссылок, вся вещь ломается и продолжает получать ошибку 404.
- http://NGINX-A-hostname/myblog - работает
- http://NGINX-A-hostname/myblog/wp-admin - полностью работает
- http://NGINX-A-hostname/myblog/postname - терпит неудачу | 404
- http://NGINX-A-hostname/myblog/?p=postname - полностью работает
Это как если бы NGINX обратный прокси-сервер перенаправляет запрос в качестве каталога, а не параметром. Любое предложение? Благодаря!
Могу ли я спросить, почему вы используете отдельный сервер nginx для обслуживания контента в качестве прокси-сервера с другого сервера/экземпляра nginx? Если это только для кеширования, вам лучше просто использовать кеш FastCGI от nginx, чтобы действовать как прокси-сервер с PHP-FPM, например, на том же сервере. Он более прочный и надежный. Если вы делаете это по другой причине, можете ли вы указать, какую стратегию постоянной ссылки вы пытаетесь использовать, которая не работает, и какой из них вы используете прямо сейчас, что работает? – ablopez
Я не понимаю цели 'subdir' в вашем вопросе - или как URI' http: // hostname/myblog' находит свой путь к '/ subdir/myblog /'? –
@ablopez Привет! Я уточнил вопрос, чтобы было ясно. Обычные постоянные ссылки работают как в ip-адресе, так и в настройке имени хоста. Постоянные постоянные ссылки работают только при непосредственном доступе через IP. –