Nginx proxy manager

— Этот проект поставляется в виде предварительно созданного образа docker, который позволяет вам легко перенаправлять на ваши веб-сайты, работающие дома или иным образом, включая бесплатный SSL, без необходимости слишком много знать о Nginx или Letsencrypt.

Основное:

Официальный сайт — https://nginxproxymanager.com/

Docker — https://hub.docker.com/r/jc21/nginx-proxy-manager

Исходный код — https://github.com/jc21/nginx-proxy-manager

Минимальные системные требование:

Ядер
Оперативной памяти — ГБ

Использование:

Стандартный логин [email protected]
Стандартный пароль changeme
Стандартный порт https://<ip>:81 (80,443)
Конфигурация /app/config/
Конфигурация Docker /Docker/Proxy-Manager/Config/

Установка Docker

Ubuntu

1)
`#Install docker`       sudo apt install docker.io -y                                                                               
`#Start docker`         sudo systemctl start docker                                                                                 
`#Autostart docker`     sudo systemctl enable docker                                                                                
`#Freeing port 53`      sudo systemctl stop systemd-resolved && sudo systemctl disable systemd-resolved && sudo rm /etc/resolv.conf && sudo echo -e "nameserver 8.8.8.8\nnameserver 8.8.4.4" >> /etc/resolv.conf && sudo sed -i 's/main]/main] \ndns=default/' /etc/NetworkManager/NetworkManager.conf && sudo service network-manager restart

CentOS

1)
`#Install docker`       yum install docker -y                                                                                       
`#Start docker`         systemctl start docker                                                                                      
`#Autostart docker`     systemctl enable docker                                                                                     
`#Freeing port 25`      systemctl stop postfix && systemctl disable postfix                                                         

Fedora

1)
`#Install docker`       sudo dnf install docker -y                                                                                  
`#Start docker`         sudo systemctl start docker                                                                                 
`#Autostart docker`     sudo systemctl enable docker                                                                                
`#Switch to cgroup v1`  sudo dnf install grubby -y && sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"   
`#Reboot system`        reboot

Windows

1)
`#Install docker`       https://docs.docker.com/docker-for-windows/install/

Скачать Nginx proxy manager

2) sudo docker pull jc21/nginx-proxy-manager:github-real_ip `#Download/update image`

Установка Nginx proxy manager на Ubuntu/CentOS/Fedora/Windows

Используя версию latest (вы не увидите реальный ip пользователей, но у вас будет актуальная версия)

3.1) docker run -d \
--name=Proxy-Manager \
--network host -e TZ=Europe/Moscow --restart=always \
-e DB_MYSQL_HOST=IP -e DB_MYSQL_NAME=Proxy-Manager -e DB_MYSQL_USER=DataBaseUser -e DB_MYSQL_PASSWORD=Password -e DB_MYSQL_PORT=3307 \
--volume /Docker/Proxy-Manager/data:/data --volume /Docker/Proxy-Manager/letsencrypt:/etc/letsencrypt \
jc21/nginx-proxy-manager:latest

или в одной строке

docker run -d --name=Proxy-Manager --network host -e TZ=Europe/Moscow --restart=always -e DB_MYSQL_HOST=IP -e DB_MYSQL_NAME=Proxy-Manager -e DB_MYSQL_USER=DataBaseUser -e DB_MYSQL_PASSWORD=Password -e DB_MYSQL_PORT=3307 --volume /Docker/Proxy-Manager/data:/data --volume /Docker/Proxy-Manager/letsencrypt:/etc/letsencrypt jc21/nginx-proxy-manager:latest 

Используя версию github-real_ip (вы увидите реальный IP-адрес пользователей, но она устаревшая)

3.1) docker run -d \
--name=Proxy-Manager \
--network host -e TZ=Europe/Moscow --restart=always \
-e DB_MYSQL_HOST=IP -e DB_MYSQL_NAME=Proxy-Manager -e DB_MYSQL_USER=DataBaseUser -e DB_MYSQL_PASSWORD=Password -e DB_MYSQL_PORT=3307 \
--volume /Docker/Proxy-Manager/data:/data --volume /Docker/Proxy-Manager/letsencrypt:/etc/letsencrypt \
jc21/nginx-proxy-manager:github-real_ip

или в одной строке

docker run -d --name=Proxy-Manager --network host -e TZ=Europe/Moscow --restart=always -e DB_MYSQL_HOST=IP -e DB_MYSQL_NAME=Proxy-Manager -e DB_MYSQL_USER=DataBaseUser -e DB_MYSQL_PASSWORD=Password -e DB_MYSQL_PORT=3307 --volume /Docker/Proxy-Manager/data:/data --volume /Docker/Proxy-Manager/letsencrypt:/etc/letsencrypt jc21/nginx-proxy-manager:github-real_ip 

Настройка

Подключение к базе данных

Смотрите дополнительную иструкцию Установка базы данных

«`
docker cp Proxy-Manager:/app/config/default.json /root/default.json
cp default.json production.json
rm default.json
Change base in production.json
docker cp production.json Proxy-Manager:/app/config/production.json
«`

Разное

 

# Enable SSL fix for Nginx proxy manager
include conf.d/include/force-ssl.conf;

# See real ip
proxy_set_header Accept-Encoding «»; # no compression allowed
sub_filter_once off;
proxy_set_header X-Real-IP $remote_addr;

# Mixed content fix
sub_filter «https:» «https:»;

# Real ip for CloudFlare
# https://support.cloudflare.com/hc/en-us/articles/200170786-Restoring-original-visitor-IPs
# That list of prefixes needs to be updated regularly, and we publish the full list in Cloudflare IP addresses.
# https://www.cloudflare.com/ips/
#
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 104.16.0.0/13;
set_real_ip_from 104.24.0.0/14;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2c0f:f248::/32;
set_real_ip_from 2a06:98c0::/29;
#use any of the following two
real_ip_header CF-Connecting-IP;
#real_ip_header X-Forwarded-For;

#Home Assistant fix
proxy_set_header Accept-Encoding «»; # no compression allowed
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

Nginx proxy manager + Hestia-CP

Docker Compose
«`
nano docker-compose.yml
«`
«`
version: ‘3’

 

services:
nginxproxy:
container_name: Proxy-Manager
image: jc21/nginx-proxy-manager:github-real_ip
volumes:
— /Docker/Proxy-Manager/data:/data
— /Docker/Proxy-Manager/letsencrypt:/etc/letsencrypt \
restart: always
network_mode: host
environment:
TZ: Europe/Moscow
DB_MYSQL_HOST: IP
DB_MYSQL_NAME: Proxy-Manager
DB_MYSQL_USER: DataBaseUser
DB_MYSQL_PASSWORD: Password
DB_MYSQL_PORT: 3307

 

hestiacp:
privileged: true
container_name: Hestia-CP
hostname: ‘cp.yourdomain.com’
image: smied/hestia-cp:latest
volumes:
— Hestia-home:/home
— Hestia-usr:/usr
— Hestia-backup:/backup
— Hestia-etc:/etc
— Hestia-var:/var
— /sys/fs/cgroup:/sys/fs/cgroup:ro
restart: always
network_mode: host
environment:
TZ: Europe/Moscow
tmpfs:
— /tmp
— /run
— /run/lock

 

volumes:
Hestia-home:
Hestia-usr:
Hestia-backup:
Hestia-etc:
Hestia-var:
«`

 

«`
docker-compose -f docker-compose.yml —project-name WEB-Server up -d
«`
80 -> 85
443 -> 445
«`
docker exec -ti Hestia-CP bash
nano /usr/local/hestia/conf/hestia.conf
«`
«`
docker restart Hestia-CP && docker restart Proxy-Manager
«`

Чистка

Логи

Cron

0 * * * * rm -rf /Docker/Proxy-Manager/data/logs/* 
Добавить Cron командой
(crontab -l 2>/dev/null; echo '0 * * * * rm -rf /docker/Proxy-Manager/data/logs/*') | crontab - 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: