Проблема перенаправления при настройке Wordpress с Nginx через Amazon API Gateway и Network Load Balancer - PullRequest
1 голос
/ 27 февраля 2020

Проблема перенаправления при настройке Wordpress с Nginx через Amazon API Gateway и Network Load Balancer. Описание:- У нас есть основной веб-сайт xyz.com (обслуживаемый Amazon API Gateway и Load Balancer), и мы хотим, чтобы наши блоги присутствовали на xyz.com/blogs. Итак, мы настроили Amazon API Gateway и Load Balancer для перенаправления любого запроса for xyz.com/blogs в EC2, содержащий Wordpress с Nginx. Проблема: - Проблема, с которой мы сталкиваемся, заключается в том, что домашняя страница отображается нормально, но когда мы пытаемся отобразить любую другую страницу, например: - xyz.com / blogs / my-first-post / или xyz .com / blogs / wp-admin тогда это застревает там, и ничего не приходит как ответ. В ходе нашей первоначальной отладки мы обнаружили, что Wordpress перенаправляет на URL-адрес Network Load Balancer (который, по нашему мнению) недоступен, и мы не получаем никакого ответа. Вот как выглядит nginx conf по умолчанию (/etc/nginx/conf.d/xyz_blogs.conf), который мы получили по этой ссылке => Wordpress | Nginx

# Upstream to abstract backend connection(s) for php
upstream php {
        server unix:/tmp/php-cgi.socket;
        server 127.0.0.1:9000;
}

server {
        ## Your website name goes here.
        server_name xyz.com;
        ## Your only path reference.
        root /var/www/html;
        ## This should be in your http block and if it is, it's not needed here.
        index index.php;

        location = /favicon.ico {
                log_not_found off;
                access_log off;
        }

        location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
        }

        location / {
                # This is cool because no php is touched for static content.
                # include the "?$args" part so non-default permalinks doesn't break when using query string
                try_files $uri $uri/ /index.php?$args;
        }

        location ~ \.php$ {
                #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
                include fastcgi.conf;
                fastcgi_intercept_errors on;
                fastcgi_pass php;
        }

        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
                expires max;
                log_not_found off;
        }
}

Как мы решим эту проблему? Предварительное спасибо за любую помощь, оказанную здесь.

1 Ответ

0 голосов
/ 28 февраля 2020

Это:

upstream php-app { # <-- change name of the upstram
        # server unix:/tmp/php-cgi.socket; # <-- Remove this
        # List of [IP:Port] OR list of [sockets] not both mixed

        server 127.0.0.1:9000;
        # server 127.0.0.1:9001; # example
        # server 127.0.0.1:9002; # example
}

server {
        listen 80 default_server;       # <-- Add this line
        listen [::]:80 default_server;  # <-- Add this line

        server_name xyz.com *.xyz.com;

        root /var/www/html;
        # index index.php;    # <-- Will be removed, you app is provided by the socket/port

        location = /favicon.ico {
                log_not_found off;
                access_log off;
        }

        location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
        }

        location ~ \.php$ {
                include fastcgi.conf;
                fastcgi_intercept_errors on;
                fastcgi_pass php;
        }

        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
                expires max;
                log_not_found off;
        }

        location / { # Put this at the end, NGinx apply priority
                proxy_pass http://php-app; # Add this line
        }
}

Обновление 1:

обновление конфигурации

    ...
    server_name xyz.com *.xyz.com *.amazonaws.com;
    ...
...