Настройка проксирования в nginx с помощью proxy_pass (LoadBalancer) + сертификаты Let'sEncrypt

pligin

Команда форума
Администратор
Установка брандмауэра UFW
Bash:
apt install ufw -y
Добавить в разрешенные SSH и NGINX
Bash:
ufw allow SSH
ufw allow "Nginx Full"
Включить UFW
Bash:
ufw enable
Установить nginx
Bash:
apt install nginx -y
Запустить nginx
Bash:
service nginx start
Добавить в дефолтный конфиг nginx список серверов с проксируемым сайтом.
Окрыть конфиг
Bash:
nano /etc/nginx/sites-available/default
После секции server{...} добавить
NGINX:
upstream node {
        server 111.111.111.111:80;
}
111.111.111.111:80 - это IP и порт сервера, на котором висит сайт
Сохранить конфиг и выйти. Для проверки правильности ввести команду
Bash:
nginx -t
Добавить хост
Bash:
nano /etc/nginx/sites-available/site.domain
в файле указать
NGINX:
server {
        server_name site.domain  www.site.domain;
        return 301 https://site.domain$request_uri;
}
server {
        server_name site.domain www.site.domain;
        listen [::]:443 ssl;
        listen 443 ssl;
        location / {
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-Port 443;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Host $host;
                proxy_pass http://node;
        }
}
site.domain - домен Вашего сайта
Для проверки правильности ввести команду
Bash:
nginx -t
Создать символьную ссылку
Bash:
ln -s /etc/nginx/sites-available/site.domain /etc/nginx/sites-enabled/
Установить Certbot для установки сертификатов Lets'Encrypt
Bash:
apt install python3-certbot-nginx -y
Создать сертификат для домена
Bash:
certbot --nginx -d site.domain -d www.site.domain
На вопрос об автоматическом перенаправлении с http на http ответить отказом, в конфиге это уже указано.
После создания сертификата в конфиге появятся строки
NGINX:
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/site.domain/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/site.domain/privkey.pem; # managed by Certbot
Проверить перевыпуск сертификатов командой
Bash:
certbot renew --dry-run
***На сервере с сайтом должно быть отключено перенаправление с http на https, т.к. все запросы идут на 80-й порт и сайт выдаст бесконечную перезагрузку.
 
Последнее редактирование:
Верх