nginx + cloudflare + digitalocean = 521 - PullRequest
       56

nginx + cloudflare + digitalocean = 521

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

Я пытаюсь разместить веб-сайт с несколькими поддоменами (созданный с помощью Cloudflare, который также предоставляет SSL), размещенный на DigitalOcean, а Nginx выступает в качестве обратного прокси.

Мои конфиги Cloudflare

Настройка DNS:

Type ~ Name ~ Value
A ~ api ~ MyDigitalOceanIPv4
A ~ example.com ~ MyDigitalOceanIPv4
A ~ www ~ MyDigitalOceanIPv4

Настройка шифрования:

SSL: Full (strict)
Always use HTTPS: On 
Automatic HTTPS Rewrites: On 

Я также использовал Cloudflare для создания сертификата (и следовал их инструкциям, чтобы настроить его с помощью Nginx)

Моя конфигурация Nginx:

server {
    listen 443;
    server_name example.com www.example.com;

    ssl on;
    ssl_certificate /srv/example.com/cloudflare.pem;
    ssl_certificate_key /srv/example.com/cloudflare.key;

    location / {
        proxy_pass http://localhost:8000;
    }
}

server {
    listen 443;
    server_name api.example.com;

    ssl on;
    ssl_certificate /srv/example.com/cloudflare.pem;
    ssl_certificate_key /srv/example.com/cloudflare.key;

    location / {
        proxy_pass http://localhost:8080;
    }
}

Я открыл для всех портов TCP в DigitalOcean, и если я пытаюсь открыть MyDigitalOceanIPv4: 8000 в моем браузере, то мой сайт (размещенный в контейнере Docker) успешно загружается. Однако, если я пытаюсь открыть свой веб-сайт "example.com", я получаю сообщение о том, что веб-сервер Cloudflare 521 не работает.

Я также проверил, что пути и содержимое ключа Cloudflare SSL верны, nginx -t не показывает ошибок, и я удостоверился, что перезапустил nginx после внесения изменений.

Я также пытался внести в белый список IP-адреса Cloudflare, используя мой конфигурационный файл Nginx, но он не работал.

Если я попытаюсь telnet MyDigitalOceanIPv4 443 или 80, тогда я получу telnet: Unable to connect to remote host: Connection refused.

Внутри моего экземпляра DigitalOcean я попытался свернуть http://localhost:8000, что успешно печатает содержимое моего сайта.

Я подозреваю, что есть какой-то параметр DigitalOcean, который мне нужно настроить, или что-то не так с моим файлом Nginx (хотя я успешно использовал ту же конфигурацию Nginx на другом облачном провайдере), но чувствую, что перепробовал все ..

...