Nginx прокси сервер: различия между версиями

Материал из wolfram
Перейти к навигации Перейти к поиску
мНет описания правки
 
(не показано 9 промежуточных версий этого же участника)
Строка 1: Строка 1:
===Установка nginx===
==Настройка Proxmox для Nginx==
Устанавливаем пакет nginx незамысловатой командой:
<br />
apt install nginx -y
Для генерации сертификатов используем утилиту certbot:
apt install certbot python3-certbot-nginx
Готово! Да это все. Остальное это создание конфигов для наших сервисов на которые нужно перенаправлять запросы, и получение сертификатов. Делается это одной командой.
certbot --nginx -d наш_домен


===Конфигурация Nginx===
===Загрузка образа Ubuntu===
Получается мы устанавливаем '''ubuntu server''' как виртуальную в среде '''Proxmox'''.


====nc.mywolfram.ru====
На данный момент это версия '''18.04.4 LTS'''.
Чтобы настроить Nginx и прокси для [[Облачный сервер Nextcloud|Облачного сервера Nextcloud]], нужен сам сервер. Так что сначала его.
 
На этот раз ни на какие накопители ничего записывать не нужно.
 
Требуется загрузить образ в пространство Proxmox, в хранилище. В нашем случае подойдет local.
 
Выбираем '''local в узле pve''', переходим в “'''Содержимое'''”.
 
Нажимаем “'''Загрузить'''” и выбираем '''наш образ'''.
 
Загружаем, ожидаем.
<br />
 
===Создание VM===
Нажимаем: '''создать VM:'''
 
В разделе '''Общее:'''
 
Узел: '''pve'''
 
VM ID: '''103'''
 
Имя: '''nginx'''
 
В разделе '''ОС:'''
 
Хранилище: '''local'''
 
'''ISO образ:''' ''То, что загрузили с официального сайта Ubuntu.''
 
В разделе '''Жесткий диск:'''
 
Шина: '''VirtIO Block'''
 
Хранилище: '''local-lvm'''
 
Размер: '''10'''
 
Кэш: '''Write through'''
 
В разделе '''Процессор:'''
 
Ядра: '''2'''
 
В разделе '''Память:'''
 
Память: '''512'''
 
'''Готово.'''
<br />
 
==Установка OS==
Описываю только то, на что стоит обратить внимания, так как установить ос для Nginx можно просто по умолчанию.
 
Тут все также, как и в nexcloud.
 
Но при вопросе в разделе '''Filesystem setup''' выбираем автоматическую, и наш единственный раздел. Для того чтобы, установщик на своё усмотрение разбил диск.  
 
Тут очень мало важны размеры виртуальной оперативной памяти, так как машина выполняет очень узкую задачу.
 
 
 
Начинается установка. При этом она идет в фоне.
 
В это время заполняем данные пользователя и машины.
 
 
Your name: '''vova'''
 
your server’s name: '''nginx'''
 
Pick a username: '''vova'''
 
Choose password: пароль_пользователя
 
Confirm your password: пароль_пользователя
 
'''Готово'''
 
На вопрос установить ли '''ssh соглашаемся''', поставив крестик пробелом.
 
'''Готово'''
 
Ничего не выбираем и говорим Готово. Ждем окончания установки.  
 
По окончании '''Reboot'''
 
'''enter'''
 
ОС перезагрузиться, но уже в установленном виде. С ней бы выполнить стандартный набор операций.  
 
 
Обновляем репозитории:
 
'''apt-get update'''
 
Выполняем обновление пакетов из репозиториев
 
'''apt-get upgrade –y'''
 
Устанавливаем файловый менеджер mc
 
 
ОС готова переходим к установке Nginx.
 
==Установка nginx==
Устанавливаем пакет nginx незамысловатой командой:<syntaxhighlight lang="bash">
apt install nginx -y
</syntaxhighlight>Для генерации сертификатов используем утилиту certbot:<syntaxhighlight lang="bash">
apt install certbot python3-certbot-nginx
</syntaxhighlight>Готово! Да это все. Остальное это создание конфигов для наших сервисов на которые нужно перенаправлять запросы, и получение сертификатов. Делается это одной командой.<syntaxhighlight lang="bash">
certbot --nginx -d наш_домен
</syntaxhighlight>
 
==Конфигурация Nginx==
 
===nc.mywolfram.ru===
Чтобы настроить Nginx и прокси для [[Облачный сервер Nextcloud|Облачного сервера Nextcloud]], нужен сам сеpaрвер. Так что сначала его.


После этого уже настраиваем первичный конфиг, для того чтобы получить сертификат.
После этого уже настраиваем первичный конфиг, для того чтобы получить сертификат.
Строка 18: Строка 130:
Название файла конфигурации для удобства совпадает с доменом, так как их будет несколько.  
Название файла конфигурации для удобства совпадает с доменом, так как их будет несколько.  


Вносим данные в конфиг.
Вносим данные в конфиг.<syntaxhighlight lang="nginx">
server {
server {
  listen 80;
    listen 80;
  server_name nc.mywolfram.ru;
    server_name nc.mywolfram.ru;
  return 301 <nowiki>https://$server_name$request_uri</nowiki>;
    return 301 https://$server_name$request_uri;
}
}
server {
    server {
  listen 443 ssl;
    listen 443 ssl;
  server_name nc.mywolfram.ru;
    server_name nc.mywolfram.ru;
}
}
Сохраняем. Проверяем все ли хорошо с нашим конфигом, и принимается ли он nginx.
</syntaxhighlight>Сохраняем. Проверяем все ли хорошо с нашим конфигом, и принимается ли он nginx.
  nginx -t
  nginx -t
Ответ должен быть таков:
Ответ должен быть таков:
Строка 45: Строка 157:
По окончании одной из строк результатов должен появится следующий текст:
По окончании одной из строк результатов должен появится следующий текст:
  Congratulations! You have successfully enabled <nowiki>https://nc.mywolfram.ru</nowiki>
  Congratulations! You have successfully enabled <nowiki>https://nc.mywolfram.ru</nowiki>
Теперь идем редактировать конфиг. В него уже внёс немало информации certbot. Можно её всю удалить, и вставить из цитаты.
Теперь идем редактировать конфиг. В него уже внёс немало информации certbot. Можно её всю удалить, и вставить из цитаты.<syntaxhighlight lang="nginx">
''#Блок сообщает о том, что это за сервер. С каким доменным именем он работает, при обращении с http.''
server {
server {
    listen 80;
  listen 80;
    server_name nc.mywolfram.ru;
  server_name nc.mywolfram.ru;
    return 301 https://$server_name$request_uri;
  return 301 ''<nowiki>https://$server_name$request_uri</nowiki>;''
}
}
 
#но так как мы за безопасность, любые обращения по http мы перенаправляем в следующий блок. Который описывает свойства https. И перенаправляет уже на нужный нам веб сервер, в данном случае nextcloud.
server {
server {
    listen 443 ssl;
  listen 443 ssl;
    server_name nc.mywolfram.ru;
  server_name nc.mywolfram.ru;
 
#Указываем размер максимально возможного для загрузки файла через веб
    ssl_certificate /etc/letsencrypt/live/nc.mywolfram.ru/fullchain.pem; # managed by Certbot
  client_max_body_size 10G;
    ssl_certificate_key /etc/letsencrypt/live/nc.mywolfram.ru/privkey.pem; # managed by Certbot
#Сертификат
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
  ssl_certificate /etc/letsencrypt/live/nc.mywolfram.ru/fullchain.pem; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
  ssl_certificate_key /etc/letsencrypt/live/nc.mywolfram.ru/privkey.pem; # managed by Certbot
    client_max_body_size 10G;
# Это и есть перенаправление на наше 130 локальный адрес.
    location / {
  location / {
        proxy_set_header Host $host;
  proxy_headers_hash_max_size 512;
        proxy_set_header X-Forwarded-Proto $scheme;
  proxy_headers_hash_bucket_size 64;
        proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://192.168.1.145;
  proxy_set_header X-Real-IP $remote_addr;
        proxy_read_timeout 900s;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_connect_timeout 900s;
  add_header Front-End-Https on;
        proxy_send_timeout 900s;
  proxy_pass ''<nowiki>http://192.168.1.130</nowiki>;''
    }
  ''}''
# Для корректной работы .well-known (например, проверки Let's Encrypt)
''}''
    location ~ ^/.well-known {
Сохраняем. Данные для конфига подобраны опытным путем, потом и кровью. В основном на сайтах инструкциях в них всунута уйма информации. Тут же есть именно то, что позволит попасть с сертификатом на веб сервер nextcloud. Возможно, в дальнейшем будет дополняться.  
        proxy_pass http://192.168.1.145;
        proxy_set_header Host $host;
    }
    add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
}
</syntaxhighlight>Сохраняем. Данные для конфига подобраны опытным путем, потом и кровью. В основном на сайтах инструкциях в них всунута уйма информации. Тут же есть именно то, что позволит попасть с сертификатом на веб сервер nextcloud. Возможно, в дальнейшем будет дополняться.  


После изменения сохраняем конфиг.
После изменения сохраняем конфиг.
Строка 83: Строка 200:
  service nginx reload
  service nginx reload


====pm.mywolfram.ru====
===pm.mywolfram.ru===
Доступ к веб интерфейсу гипервизора proxmox. Внутри сети как обычно все работает. Но как попасть снаружи? Снова прокси. Снова домен. Пользуемся в полной мере.  
Доступ к веб интерфейсу гипервизора proxmox. Внутри сети как обычно все работает. Но как попасть снаружи? Снова прокси. Снова домен. Пользуемся в полной мере.  


Строка 90: Строка 207:
Создаем конфиг.
Создаем конфиг.
  nano /etc/nginx/sites-enabled/pm.mywolfram.ru
  nano /etc/nginx/sites-enabled/pm.mywolfram.ru
Вставляем:
Вставляем:<syntaxhighlight lang="nginx">
server {
server {
  listen 443 ssl;
    listen 443 ssl;
  server_name pm.mywolfram.ru;
    erver_name pm.mywolfram.ru;
}
}
Все как в прошлый раз:
</syntaxhighlight>Все как в прошлый раз:
  nginx -t
  nginx -t


Строка 103: Строка 220:
Редактируем конфиг.
Редактируем конфиг.
  nano /etc/nginx/sites-enabled/pm.mywolfram.ru
  nano /etc/nginx/sites-enabled/pm.mywolfram.ru
 
<syntaxhighlight lang="nginx">
server {
server {
  listen 80;
    listen 80;
  server_name pm.mywolfram.ru;
    server_name pm.mywolfram.ru;
  return 301 <nowiki>https://$server_name$request_uri</nowiki>;
    return 301 https://$server_name$request_uri;
}
}
server {
server {
  listen 443 ssl;
    listen 443 ssl;
  server_name pm.mywolfram.ru;
    server_name pm.mywolfram.ru;
  ssl on;ssl_certificate /etc/letsencrypt/live/pm.mywolfram.ru/fullchain.pem; # managed by Certbot
    ssl on;ssl_certificate /etc/letsencrypt/live/pm.mywolfram.ru/fullchain.pem; # managed by Certbot
  ssl_certificate_key /etc/letsencrypt/live/pm.mywolfram.ru/privkey.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/pm.mywolfram.ru/privkey.pem; # managed by Certbot
  location / {
    location / {
  proxy_http_version 1.1;
        proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
        proxy_set_header Connection "upgrade";
  proxy_pass <nowiki>https://192.168.1.164:8006</nowiki>;
        proxy_pass https://192.168.1.164:8006;
  proxy_buffering off;
        proxy_buffering off;
  client_max_body_size 0;
        client_max_body_size 0;
  proxy_connect_timeout  3600s;
        proxy_connect_timeout 3600s;
  proxy_read_timeout  3600s;
        proxy_read_timeout 3600s;
  proxy_send_timeout  3600s;
        proxy_send_timeout 3600s;
  send_timeout  3600s;
        send_timeout 3600s;
  }
    }
}
}
Проверяем что все в порядке
</syntaxhighlight>Проверяем что все в порядке
  nginx -t
  nginx -t
Перезагружаем nginx
Перезагружаем nginx
Строка 133: Строка 250:
Теперь мы можем получить доступ к веб интерфейсу proxmox, отовсюду и безопасно.
Теперь мы можем получить доступ к веб интерфейсу proxmox, отовсюду и безопасно.


====de.mywolfram.ru====
===de.mywolfram.ru===
Подключаться к качалке из вне тоже лишним не будет.  
Подключаться к качалке из вне тоже лишним не будет.  


Создаем [[Сеть#.D0.94.D0.BE.D0.B1.D0.B0.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5 CNAME .D0.B7.D0.B0.D0.BF.D0.B8.D1.81.D0.B5.D0.B9.|домен третьего уровня]] для deluge, это я про de.mywolfram.ru на сайте dns.hi.net.
Создаем [[Сеть#.D0.94.D0.BE.D0.B1.D0.B0.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5 CNAME .D0.B7.D0.B0.D0.BF.D0.B8.D1.81.D0.B5.D0.B9.|домен третьего уровня]] для deluge, это я про de.mywolfram.ru на сайте dns.hi.net.
  nano /etc/nginx/sites-enabled/de.mywolfram.ru
  nano /etc/nginx/sites-enabled/de.mywolfram.ru
 
<syntaxhighlight lang="nginx">
server {
server {
listen 80;
    listen 80;
  server_name de.mywolfram.ru;
    server_name de.mywolfram.ru;
  return 301 ''<nowiki>https://$server_name$request_uri</nowiki>;''
    return 301 https://$server_name$request_uri;
''}''
}
  ''server {''
server {
  ''listen 443 ssl;''
    listen 443 ssl;
  ''server_name de.mywolfram.ru;''
    server_name de.mywolfram.ru;
  ''ssl_certificate_key''
    ssl_certificate_key
''}''
}
 
</syntaxhighlight>
  nginx -t
  nginx -t


Строка 157: Строка 274:
Редактируем полученный конфиг.
Редактируем полученный конфиг.
  nano /etc/nginx/sites-enabled/de.mywolfram.ru
  nano /etc/nginx/sites-enabled/de.mywolfram.ru
 
<syntaxhighlight lang="nginx">
server {
server {
  listen 80;
    listen 80;
  server_name de.mywolfram.ru;
    server_name de.mywolfram.ru;
  return 301 <nowiki>https://$server_name$request_uri</nowiki>;
    return 301 https://$server_name$request_uri;
}
}
server {
server {
  listen 443 ssl; # managed by Certbot
    listen 443 ssl; # managed by Certbot
  server_name de.mywolfram.ru;
    server_name de.mywolfram.ru;
  access_log /var/log/nginx/de.mywolfram.ru.access;
    access_log /var/log/nginx/de.mywolfram.ru.access;
  error_log /var/log/nginx/de.mywolfram.ru.error;
    error_log /var/log/nginx/de.mywolfram.ru.error;
  ssl_certificate /etc/letsencrypt/live/de.mywolfram.ru/fullchain.pem; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/de.mywolfram.ru/fullchain.pem; # managed by Certbot
  ssl_certificate_key /etc/letsencrypt/live/de.mywolfram.ru/privkey.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/de.mywolfram.ru/privkey.pem; # managed by Certbot
  include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
  add_header Strict-Transport-Security "max-age=31536000" always; # managed by Certbot
    add_header Strict-Transport-Security "max-age=31536000" always; # managed by Certbot
  ssl_trusted_certificate /etc/letsencrypt/live/de.mywolfram.ru/chain.pem; # managed by Certbot
    ssl_trusted_certificate /etc/letsencrypt/live/de.mywolfram.ru/chain.pem; # managed by Certbot
  ssl_stapling on; # managed by Certbot
    ssl_stapling on; # managed by Certbot ssl_stapling_verify on; # managed by Certbot
  ssl_stapling_verify on; # managed by Certbot
    location / {
  location / {
        proxy_pass http://192.168.1.92:8112;
  proxy_pass <nowiki>http://192.168.1.92:8112</nowiki>;
        proxy_set_header Host $host;
  proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }
}
}
</syntaxhighlight>
 
  nginx -t
  nginx -t


Строка 190: Строка 306:
Радуемся!
Радуемся!


==== Zabbix сервер. ====
===Zabbix сервер.===
И к Zabbix серверу мы так же хотим качественно попадать, по высококачественному домену третьего уровня.
И к Zabbix серверу мы так же хотим качественно попадать, по высококачественному домену третьего уровня.
  nano /etc/nginx/sites-enabled/zb.mywolfram.ru
  nano /etc/nginx/sites-enabled/zb.mywolfram.ru
 
<syntaxhighlight lang="nginx">
server {
server {  
  listen 80;
    listen 80;  
  server_name zb.mywolfram.ru;
    server_name zb.mywolfram.ru;  
  return 301 ''<nowiki>https://$server_name$request_uri</nowiki>;''
    return 301 https://$server_name$request_uri;
''}''
}
''server {''
server {
  ''listen 443 ssl;''
    listen 443 ssl;
  ''server_name zb.mywolfram.ru;''
    server_name zb.mywolfram.ru;
  ''ssl_certificate_key''
    ssl_certificate_key 
''}''
}
<kbd><syntax 2123ssss <source</kbd>
</syntaxhighlight>Смотрим статус<syntaxhighlight lang="bash">
nginx -t
</syntaxhighlight>Перезапускам Ngings<syntaxhighlight lang="bash">
service nginx reload
</syntaxhighlight>Получаем сертификат<syntaxhighlight lang="bash">
certbot --nginx -d zb.mywolfram.ru
</syntaxhighlight>Правим конфиг<syntaxhighlight lang="nginx">
server {
    listen 80;
    server_name zb.mywolfram.ru;
    return 301 https://$server_name$request_uri;
}
server {
    listen 443 ssl;
    server_name zb.mywolfram.ru;
    ssl_certificate /etc/letsencrypt/live/zb.mywolfram.ru/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/zb.mywolfram.ru/privkey.pem; # managed by Certbot
    location / {
        proxy_pass http://192.168.1.226;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
</syntaxhighlight>Всё готово, незабываем проверить статус и перезагрузиться.<syntaxhighlight lang="bash">
nginx -t
service nginx reload
</syntaxhighlight>Готово!

Текущая версия от 15:39, 11 марта 2025

Настройка Proxmox для Nginx


Загрузка образа Ubuntu

Получается мы устанавливаем ubuntu server как виртуальную в среде Proxmox.

На данный момент это версия 18.04.4 LTS.

На этот раз ни на какие накопители ничего записывать не нужно.

Требуется загрузить образ в пространство Proxmox, в хранилище. В нашем случае подойдет local.

Выбираем local в узле pve, переходим в “Содержимое”.

Нажимаем “Загрузить” и выбираем наш образ.

Загружаем, ожидаем.

Создание VM

Нажимаем: создать VM:

В разделе Общее:

Узел: pve

VM ID: 103

Имя: nginx

В разделе ОС:

Хранилище: local

ISO образ: То, что загрузили с официального сайта Ubuntu.

В разделе Жесткий диск:

Шина: VirtIO Block

Хранилище: local-lvm

Размер: 10

Кэш: Write through

В разделе Процессор:

Ядра: 2

В разделе Память:

Память: 512

Готово.

Установка OS

Описываю только то, на что стоит обратить внимания, так как установить ос для Nginx можно просто по умолчанию.

Тут все также, как и в nexcloud.

Но при вопросе в разделе Filesystem setup выбираем автоматическую, и наш единственный раздел. Для того чтобы, установщик на своё усмотрение разбил диск.  

Тут очень мало важны размеры виртуальной оперативной памяти, так как машина выполняет очень узкую задачу.

 

Начинается установка. При этом она идет в фоне.

В это время заполняем данные пользователя и машины.


Your name: vova

your server’s name: nginx

Pick a username: vova

Choose password: пароль_пользователя

Confirm your password: пароль_пользователя

Готово

На вопрос установить ли ssh соглашаемся, поставив крестик пробелом.

Готово

Ничего не выбираем и говорим Готово. Ждем окончания установки.  

По окончании Reboot

enter

ОС перезагрузиться, но уже в установленном виде. С ней бы выполнить стандартный набор операций.  


Обновляем репозитории:

apt-get update

Выполняем обновление пакетов из репозиториев

apt-get upgrade –y

Устанавливаем файловый менеджер mc


ОС готова переходим к установке Nginx.

Установка nginx

Устанавливаем пакет nginx незамысловатой командой:

apt install nginx -y

Для генерации сертификатов используем утилиту certbot:

apt install certbot python3-certbot-nginx

Готово! Да это все. Остальное это создание конфигов для наших сервисов на которые нужно перенаправлять запросы, и получение сертификатов. Делается это одной командой.

certbot --nginx -d наш_домен

Конфигурация Nginx

nc.mywolfram.ru

Чтобы настроить Nginx и прокси для Облачного сервера Nextcloud, нужен сам сеpaрвер. Так что сначала его.

После этого уже настраиваем первичный конфиг, для того чтобы получить сертификат.

Создаем сам конфиг, название nc.mywolfram.ru есть то что было создано на сайте hi.net, описывается в разделе Сеть, добавление CNAME записей.

nano /etc/nginx/sites-enabled/nc.mywolfram.ru

Название файла конфигурации для удобства совпадает с доменом, так как их будет несколько.

Вносим данные в конфиг.

server {
    listen 80;
    server_name nc.mywolfram.ru;
    return 301 https://$server_name$request_uri;
}
    server {
    listen 443 ssl;
    server_name nc.mywolfram.ru;
}

Сохраняем. Проверяем все ли хорошо с нашим конфигом, и принимается ли он nginx.

nginx -t

Ответ должен быть таков:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Перезагружаем nginx:

service nginx reload

И идем получать сертификаты. Выполняем генерацию для нашего домена.

certbot --nginx -d nc.mywolfram.ru

При выполнении будет задан вопрос о вводим email адреса

Вводим: адрес_электронной_почты

На вопрос о редиректе нужно согласиться. На данный момент это ответ 2.

По окончании одной из строк результатов должен появится следующий текст:

Congratulations! You have successfully enabled https://nc.mywolfram.ru

Теперь идем редактировать конфиг. В него уже внёс немало информации certbot. Можно её всю удалить, и вставить из цитаты.

server {
    listen 80;
    server_name nc.mywolfram.ru;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name nc.mywolfram.ru;

    ssl_certificate /etc/letsencrypt/live/nc.mywolfram.ru/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/nc.mywolfram.ru/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
    client_max_body_size 10G;
    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://192.168.1.145;
        proxy_read_timeout 900s;
        proxy_connect_timeout 900s;
        proxy_send_timeout 900s;
    }
# Для корректной работы .well-known (например, проверки Let's Encrypt)
    location ~ ^/.well-known {
        proxy_pass http://192.168.1.145;
        proxy_set_header Host $host;
    }
    add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
}

Сохраняем. Данные для конфига подобраны опытным путем, потом и кровью. В основном на сайтах инструкциях в них всунута уйма информации. Тут же есть именно то, что позволит попасть с сертификатом на веб сервер nextcloud. Возможно, в дальнейшем будет дополняться.

После изменения сохраняем конфиг.

nginx -t

Ответ должен быть таков:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Перезагружаем nginx:

service nginx reload

pm.mywolfram.ru

Доступ к веб интерфейсу гипервизора proxmox. Внутри сети как обычно все работает. Но как попасть снаружи? Снова прокси. Снова домен. Пользуемся в полной мере.

Придумываем домен третьего уровня: pm.mywolfram.ru.

Создаем конфиг.

nano /etc/nginx/sites-enabled/pm.mywolfram.ru

Вставляем:

server {
    listen 443 ssl;
    erver_name pm.mywolfram.ru;
}

Все как в прошлый раз:

nginx -t
service nginx reload
certbot --nginx -d pm.mywolfram.ru

Редактируем конфиг.

nano /etc/nginx/sites-enabled/pm.mywolfram.ru
server {
    listen 80;
    server_name pm.mywolfram.ru;
    return 301 https://$server_name$request_uri;
}
server {
    listen 443 ssl;
    server_name pm.mywolfram.ru;
    ssl on;ssl_certificate /etc/letsencrypt/live/pm.mywolfram.ru/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/pm.mywolfram.ru/privkey.pem; # managed by Certbot
    location / {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_pass https://192.168.1.164:8006;
        proxy_buffering off;
        client_max_body_size 0;
        proxy_connect_timeout 3600s;
        proxy_read_timeout 3600s;
        proxy_send_timeout 3600s;
        send_timeout 3600s;
    }
}

Проверяем что все в порядке

nginx -t

Перезагружаем nginx

service nginx reload

Теперь мы можем получить доступ к веб интерфейсу proxmox, отовсюду и безопасно.

de.mywolfram.ru

Подключаться к качалке из вне тоже лишним не будет.

Создаем домен третьего уровня для deluge, это я про de.mywolfram.ru на сайте dns.hi.net.

nano /etc/nginx/sites-enabled/de.mywolfram.ru
server {
    listen 80;
    server_name de.mywolfram.ru;
    return 301 https://$server_name$request_uri;
}
server {
    listen 443 ssl;
    server_name de.mywolfram.ru;
    ssl_certificate_key
}
nginx -t
service nginx reload
certbot --nginx -d de.mywolfram.ru

Редактируем полученный конфиг.

nano /etc/nginx/sites-enabled/de.mywolfram.ru
server {
    listen 80;
    server_name de.mywolfram.ru;
    return 301 https://$server_name$request_uri;
}
server {
    listen 443 ssl; # managed by Certbot
    server_name de.mywolfram.ru;
    access_log /var/log/nginx/de.mywolfram.ru.access;
    error_log /var/log/nginx/de.mywolfram.ru.error;
    ssl_certificate /etc/letsencrypt/live/de.mywolfram.ru/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/de.mywolfram.ru/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
    add_header Strict-Transport-Security "max-age=31536000" always; # managed by Certbot
    ssl_trusted_certificate /etc/letsencrypt/live/de.mywolfram.ru/chain.pem; # managed by Certbot
    ssl_stapling on; # managed by Certbot ssl_stapling_verify on; # managed by Certbot
    location / {
        proxy_pass http://192.168.1.92:8112;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
nginx -t
service nginx reload

Радуемся!

Zabbix сервер.

И к Zabbix серверу мы так же хотим качественно попадать, по высококачественному домену третьего уровня.

nano /etc/nginx/sites-enabled/zb.mywolfram.ru
server { 
    listen 80; 
    server_name zb.mywolfram.ru; 
    return 301 https://$server_name$request_uri; 
} 
server { 
    listen 443 ssl; 
    server_name zb.mywolfram.ru; 
    ssl_certificate_key  
}

Смотрим статус

nginx -t

Перезапускам Ngings

service nginx reload

Получаем сертификат

certbot --nginx -d zb.mywolfram.ru

Правим конфиг

server {
    listen 80;
    server_name zb.mywolfram.ru;
    return 301 https://$server_name$request_uri;
}
server {
    listen 443 ssl;
    server_name zb.mywolfram.ru;
    ssl_certificate /etc/letsencrypt/live/zb.mywolfram.ru/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/zb.mywolfram.ru/privkey.pem; # managed by Certbot
    location / {
        proxy_pass http://192.168.1.226;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Всё готово, незабываем проверить статус и перезагрузиться.

nginx -t
service nginx reload

Готово!