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

Почему nginx перенаправляет запросы с порта 8080 на порт 80 (apache)

У меня есть настройка блога wordpress на apache2 (порт 80) в Ubuntu 12.04, у меня также есть настройка nginx, прослушивающая порт 8080, обслуживающий тот же блог. Моя проблема в том, что всякий раз, когда я пытаюсь открыть блог на порту 8080, nginx перенаправляет запросы на apache, чего не должно происходить. Я публикую содержимое / etc / nginx / sites-enabled / wordpress

server {
    listen   8080;

    root /var/www;
    index index.php index.html index.htm;

    server_name foobartech.strangled.net:8080;

    location / {
            try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    location /doc/ {
            alias /usr/share/doc/;
            autoindex on;
            allow 127.0.0.1;
            deny all;
    }

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
            root /usr/share/nginx/www;
    }

    location ~ \.php$ {

            try_files $uri =404;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param   SERVER_PORT 8080;
            port_in_redirect off;
    }

Я также установил cgi.fix_pathinfo = 0

в /etc/php5/fpm/php.ini

Это ограничение в WordPress. Он следует URL-адресу, который вы указали в параметрах, так что каждый запрос / ссылка будет перенаправляться на URL-адрес сайта, который по умолчанию использует порт 80.

Видеть http://wordpress.org/support/topic/alternate-port-setup

Я решил !! вот как:

Отредактируйте файл function.php своей текущей темы и добавьте следующую строку после открывающего тега php remove_filter ('template_redirect', 'redirect_canonical'); Сохранить и выйти

Теперь откройте ваш wp-includes / ms-settings.php и найдите следующую строку (номер строки: ~ 23)

if ( !isset( $current_site ) || !isset( $current_blog ) ) {

после этой строки добавьте:

$_SERVER['HTTP_HOST'] = preg_replace( '|:\d+$|', '', $_SERVER['HTTP_HOST'] );

и сохраните и выйдите. Перезапустите apache2 и nginx и проверьте с помощью curl -I IP, что запросы не перенаправляются.