Проблема с перенаправлением на двух сайтах под управлением Node.js на Nginx и CloudFlare - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть два файла в sites-available, по одному для каждого сайта, работающего на машине.Оба имеют идентичный код с заменой только имени домена и порта для сайта.Оба сайта также имеют символическую ссылку на sites-enabled.

reesmorris.co.uk (которая отлично работает):

# Remove WWW from HTTP
server {
    listen 80;
    server_name www.reesmorris.co.uk reesmorris.co.uk;
    return 301 https://reesmorris.co.uk$request_uri;
}

# Remove WWW from HTTPS
server {
    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/reesmorris.co.uk/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/reesmorris.co.uk/privkey.pem;
    server_name www.reesmorris.co.uk;
    return 301 https://reesmorris.co.uk$request_uri;
}

# HTTPS request
server {
    # Enable HTTP/2
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name reesmorris.co.uk;

    ssl_certificate /etc/letsencrypt/live/reesmorris.co.uk/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/reesmorris.co.uk/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:3000;
        include /etc/nginx/proxy_params;
    }
}

francescoiacono.co.uk (имеет петлю перенаправления):

# Remove WWW from HTTP
server {
    listen 80;
    server_name www.francescoiacono.co.uk francescoiacono.co.uk;
    return 301 https://francescoiacono.co.uk$request_uri;
}

# Remove WWW from HTTPS
server {
    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/francescoiacono.co.uk/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/francescoiacono.co.uk/privkey.pem;
    server_name www.francescoiacono.co.uk;
    return 301 https://francescoiacono.co.uk$request_uri;
}

# HTTPS request
server {
    # Enable HTTP/2
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name francescoiacono.co.uk;

    ssl_certificate /etc/letsencrypt/live/francescoiacono.co.uk/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/francescoiacono.co.uk/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:4000;
        include /etc/nginx/proxy_params;
    }
}

Чтобы экспериментировать, я заменил значение return в первом блоке сервера сломанного веб-сайта на 403, которое, кажется, отображается, даже если сайт использует HTTPS.Кроме того, полное удаление первого блока сервера на сломанном веб-сайте приведет к тому, что веб-сайт будет полностью перенаправлен на уже работающий веб-сайт.

Оба веб-сайта используют CloudFlare для маршрутизации DNS.CloudFlare «приостановлен» на обоих веб-сайтах, что означает, что он обрабатывает только маршрутизацию, при которой оба веб-сайта имеют одинаковую маршрутизацию к серверу с одинаковыми записями AAAA и A.

Я не слишком знаком с серверомблоки, так что если у кого-то есть какие-либо идеи относительно того, что происходит, то это будет с благодарностью.

1 Ответ

0 голосов
/ 28 сентября 2018

Похоже, что эта проблема была решена путем приостановки обоих веб-сайтов в CloudFlare DNS.Первоначально это было сделано, хотя, возможно, у него не было достаточно времени для распространения.

Я не изменял код с момента создания этого поста, хотя я гарантировал, что оба сайта были приостановлены на CloudFlare (reesmorris.co.ukбыл, однако francescoiacono.co.uk не был) - и поэтому, похоже, проблема с неправильной настройкой CloudFlare.

...