Как исправить конфигурацию по умолчанию в nginx после установки SSL-шифрования на цифровом океане с Ubuntu 18.04? - PullRequest
0 голосов
/ 09 июля 2019

У меня был запущен мой сайт, но SSL работал только без www.После переустановки SSL-сертификата давайте зашифровываем сайт.Я смог сделать фронт, но не API.

Я переместил сайт в новую дроплет и установил Nginx, Pm2 и certbot с python на Ubuntu 18.04 с Nodejs.

Сайт не загружается, и это немного расстраивает.Я думаю, проблема заключалась в том, что certbot переписал файл ngix по умолчанию, и я не уверен, как это исправить.

Это моя конфигурация в / etc / nginx / sites-available / default

upstream my_app {
    server 127.0.0.1:3000;
}
server {
  #listen 80;
  listen   [::]:80;
  #listen 443 ssl;
  #listen [::]:443 ssl;

  if ($host = www.mysite.com) {
      return 301 https://mysitehere$request_uri;
  }

  server_name roomies.es;

  listen 443 ssl;
  ssl on;
  ssl_certificate    /etc/letsencrypt/live/mysite.com/fullchain.pem;
  ssl_certificate_key    /etc/letsencrypt/live/mysite.com/privkey.pem;

    if ($ssl_protocol = "") {
       rewrite ^   https://$server_name$request_uri? permanent;
    }

  location / {

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass         https://mysite_app;
    proxy_redirect off;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }


  location ~ /.well-known {
    allow all;
  }

}
```

I need the front to run on port 3000 and my api on port 4000.

Thanks in advance!

1 Ответ

0 голосов
/ 09 июля 2019

Вот так я должен был настроить свои конфиги NGINX после установки Let's Encrypt:

/ etc / nginx / sites-enabled / default (который должен быть тем же файлом, что и / etc / nginx / sites-available / default ):

# Default server configuration
server {

        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name example.com;

        return 301 https://www.example.com$request_uri;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

Для ясности, возврат 301 должен гарантировать, что весь трафик, не относящийся к www, будет перемещен в версию URL URL-адреса www..

Не забудьте сохранить конфигурацию в блокноте или чем-то еще, чтобы вы могли быстро вернуться к оригиналу, если это не сработает.

...