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

Nginx + Apache + Wordpress перенаправляет на localhost / 127.0.0.1

Кто-нибудь знает, как исправить проблему с перенаправлением Nginx + Apache + Wordpress на localhost / 127.0.0.1? Я пробовал много разных исправлений, но ни одно из них не помогло.

Я могу пойти в http://domain.com/wp-admin просто отлично и используйте все там нормально. Но если я попытаюсь пойти в http://domain.com он перенаправляет на 127.0.0.1. Все также отлично работает, если я просто запускаю Apache.

Вот соответствующие части моего nginx.conf:

server {                                
    listen 80;           
    server_name domain.com;      
    root /var/www/html/wordpress;       

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

    location ~ \.php$ {
        proxy_pass http://127.0.0.1:8080; 
    }                                                                 
}

Вот соответствующие части моего httpd.conf:

Listen *:8080

ServerName <ip>

<VirtualHost *:8080>
    ServerAdmin test@test
    DocumentRoot /var/www/html/wordpress
    ServerName domain.com
</VirtualHost>

Вот как выглядит мой журнал nginx:

<ip> - - [19/Jun/2012:22:35:35 +0400] "GET / HTTP/1.1" 301 0 "-" "Mozilla/5.0

Вот как выглядит мой журнал httpd:

127.0.0.1 - - [19/Jun/2012:22:24:46 +0400] "GET /index.php HTTP/1.0" 301 - "-"

-

Адрес WordPress (URL) и Адрес сайта (URL) имеют одинаковые http://domain.com

Добавление proxy_set_header Host $ host; приводит к появлению «На этой веб-странице есть цикл переадресации».

Это также работает, если я использую

location / {
  proxy_set_header Host $host;
  proxy_pass http://127.0.0.1:8080;
}

но не с любыми операторами try_files, которые попадают в другие места.

Это старый вопрос, но, как я понял ...

 location ~ \.php$ {

Недостаточно проксировать запросы к WordPress. По сути, вы должны сделать это наоборот:

Явно отправляйте все запросы статических файлов в Nginx:

location ~ \.(css|js|ico|jpg|jpeg|png|gif|svg|pdf)$ {
    try_files $uri $uri/ /index.html;
}

Затем проксируйте остальное в Apache:

location / {
    proxy_set_header Host $host;
    proxy_pass http://127.0.0.1:8080;
}

Пожалуйста, установите proxy_redirect off; в твоем location ~ \.php$ блок. Для получения дополнительной информации ознакомьтесь с официальной документацией. proxy_redirect.

Вероятно, это не проблема сервера

перейти к http://domain.com/wp-admin/options-general.php после входа в панель управления и убедитесь, что адрес сайта (URL) совпадает с адресом WordPress (URL).