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

Nginx как прокси для сервера Apache под управлением WordPress

У меня такая же проблема, как этот вопрос где я использую Nginx в качестве прокси для сервера Apache (Ubuntu) под управлением WordPress. Все внутренние ссылки сайта дают 301 редирект на localhost.

Например, ссылка: wwww.example.com/internal-link перенаправляет на localhost/internal-link что дает ошибку 404.

В Apache конфигурации следующие:

<VirtualHost *:80>
        <Directory /var/www/html>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
                Require all granted
        </Directory>

        ServerAdmin email@email.com
        ServerName example.com
        ServerAlias www.example.com
        ServerAlias *.example.com
        DocumentRoot /var/www/html
 ...

В Nginx файл конфигурации выглядит следующим образом:

server {
       # Where IP is server IP and example is the domain name
       listen       IP:80;
       server_name  static.example.com;

       location / {
           proxy_pass http://localhost:8480;
           proxy_set_header X-Real-IP $remote_addr;
       }

}

server {
       listen       IP:80;
       server_name  example.com;
       rewrite      ^ $scheme://www.example.com$request_uri redirect;
}

server {
        listen       IP:80;            # your server's public IP address
        server_name  www.example.com;   # your domain name

    location / {
        proxy_pass http://localhost:8020;
        proxy_set_header X-Real-IP $remote_addr;
    }
}       

В .htaccess по умолчанию генерируется WordPress:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

вот некоторые записи журнала доступа Apache:

10.0.2.2 - - [15/Jul/2016:07:11:31 -0400] "GET /link/ HTTP/1.0" 301 335 "-" "Mozilla/5.0 (compatible; Cliqzbot/1.0 +http://cliqz.com/company/cliqzbot)"
10.0.2.2 - - [15/Jul/2016:07:08:02 -0400] "GET /link/ HTTP/1.0" 404 5396 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0) 

есть идеи, что вызывает это и как это исправить?

Я использую следующий серверный блок NGINX, чтобы proxy_pass все запросы к локальному HTTP-серверу Apache:

# cat /usr/local/etc/nginx/conf.d/apache24.conf 
server  {
    listen 80;

    location    /   {
        proxy_pass  http://127.0.0.1;
        proxy_set_header    Host    $host;
        proxy_set_header    X-Forwarded-For $remote_addr;
        proxy_set_header    X-Real-IP   $remote_addr;
        proxy_pass_header   server;
    }
}
# 

и HTTP-сервер Apache VirtualHost настроил нормально.