Страница 1 из 2
Не тривиальная задача
Добавлено: Вс ноя 03, 2019 5:15 pm
Mikchee
Доброго времени суток
Появилась не тривиальная задача... надеюсь сможете помочь...
Есть внешний IP - xx.xxx.xx.xx
Есть роутер - Mikrotik
Есть два домена
1. cp.xxxxxx.ru (BrainyCP) - 192.168.1.11
2. cloud.xxxxxxx.ru (Nextcloud) - 192.168.1.12
Роутер отправляет все что приходит по портам 80,443 на 10.10.10.1 (BrainyCP).
Вопрос - можно ли с помощью панели, стандартными средствами или путем изменения конфига опубликовать наружу 10.10.10.2 (Nextcloud) работающий исключительно на порту 443?
Ни одну инструкцию по установке reverse proxy на Apach или nginx выполнить не удалось, все найденные инструкции очень сокращенные, а я в этих делах совсем не понимаю.
BrainyCP стоит в этой связке:
yum clean all && yum install -y wget && wget
http://core.brainycp.com/install.sh && bash ./install.sh --package=nginx,php73w,bindserver,memcached,imagemagick,certbot,megacli,logrotate,MariaDB10.3,phpMyAdmin-4.8.0.1,exim,spamassassin,clamav,proftpd,csf
Re: Не тривиальная задача
Добавлено: Вс ноя 03, 2019 6:10 pm
ordex
микротик умеет через web-proxy, но только для 80, с ssl не умеет.
Из того что предлагает brainy: nginx умеет, proxy_pass и вперёд. Только сертификаты для домена нужно будет класть и прописывать на машину с brainy (ту, на который изначальный проброс с микротика). Или Haproxy поставить..
(не понял почему в первой части вы оперируете 192.168.* а далее у вас уже 10.10.* )
Re: Не тривиальная задача
Добавлено: Вс ноя 03, 2019 7:01 pm
Mikchee
Вот как раз с сертификатами и загвоздка, не понимаю как их перемещать
Думал возможно заново получить и не трогать старые.
10.10.10.1 - это из инструкции, уже сам запутался.
Re: Не тривиальная задача
Добавлено: Вс ноя 03, 2019 7:23 pm
ordex
Можете пустить домен с nextcloud через cloudflare, сертификат будет от comodo и на машинах можно будет не настраивать вообще, но тогда возможны проблемы с аплоадом файлов более 100мб (на free аккаунте cloudflare).
А так, сертификаты на машине с brainy живут в /etc/certs/user/ где они у вас на машине с nextcloud я не знаю.
Re: Не тривиальная задача
Добавлено: Вс ноя 03, 2019 7:43 pm
Mikchee
А как-то возможно сделать, чтобы была возможность получить и использовать сертификат через саму панель?
И не трогать сертификат у nextcloud, обновлять только на сервере с BrainyCP.
Re: Не тривиальная задача
Добавлено: Вс ноя 03, 2019 8:03 pm
ordex
А вам его собственно и нужно получать\обновлять на этой машине, а на 192.168.1.21 положите самоподписанный, чтобы тамошний nginx (или что там у вас) не ругался и запускался.
Только что проверил у себя, (тоже микротик и за nat две машины, сервер и мой десктоп, на десктопе запустил python -m SimpleHTTPServer на сервере для тестового субдомена proxy_pass
http://ip-десктопа:8000; и далее открываю по https
всё работает.
Re: Не тривиальная задача
Добавлено: Вс ноя 03, 2019 9:09 pm
Mikchee
Да как так-то... Смотришь задача простая, во всех инструкциях настройка за 3 минуты
Я уже неделю сижу не могу понять...
Сейчас у меня такой конфиг, но он не работает:
Код: Выделить всё
server {
listen 80;
server_name test.domain.ru;
access_log /var/log/nginx/test.domain.ru-access.log;
error_log /var/log/nginx/test.domain.ru-error.log;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl; # managed by Certbot
server_name test.domain.ru;
ssl on;
ssl_certificate /etc/letsencrypt/live/test.domain.ru/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/test.domain.ru/privkey.pem; # managed by Certbot
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
access_log /var/log/nginx/test.domain.ru-access.log;
error_log /var/log/nginx/test.domain.ru-error.log;
location /.well-known/acme-challenge/ {
root /web/sites/test.domain.ru/www/;
}
location / {
proxy_pass http://192.168.1.12/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_connect_timeout 120;
proxy_send_timeout 120;
proxy_read_timeout 180;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Но с сертификатом что-то не то -
https://prnt.sc/przv5x
Сертификат отображается от Let's Encrypt и это с тестовой страничкой, которая не имеет сертификата.
Что делать с теми где есть уже сертификат вообще не понимаю.
Re: Не тривиальная задача
Добавлено: Вс ноя 03, 2019 9:43 pm
ordex
А brainy тут точно имеет место быть? Конфиг не с неё, явно.
А проксирование я так делал.
Код: Выделить всё
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://192.168.1.12;
}
Re: Не тривиальная задача
Добавлено: Вс ноя 03, 2019 10:07 pm
Mikchee
BrainyCP не имеет, я его боюсь трогать
Пока пытаюсь сделать на отдельной виртуальной машине с Ubuntu 18.04
А сертификат через панель при этом получали или скриптом каким-то?
Я правильно понял, что вы зашли в "Управление сервером" и внизу в "Редактировать конфигурацию nginx" добавили приведенный конфиг?
Только из вашего конфига я не понял как вы ссылаетесь на нужный домен.
Или вы создали в панели хост с доменом и где-то изменили конфиг?
Извините за "допрос", но я правда не понимаю как вам это удалось.
Re: Не тривиальная задача
Добавлено: Пн ноя 04, 2019 6:10 am
ordex
Mikchee писал(а): ↑Вс ноя 03, 2019 10:07 pm
А сертификат через панель при этом получали или скриптом каким-то?
Через панель.
Mikchee писал(а): ↑Вс ноя 03, 2019 10:07 pm
Только из вашего конфига я не понял как вы ссылаетесь на нужный домен.
На нужный домен "ссылается" конфиг, в который это нужно прописать.
Mikchee писал(а): ↑Вс ноя 03, 2019 10:07 pm
Или вы создали в панели хост с доменом и где-то изменили конфиг?
я вам написал location который нужно добавить в server нужного домена. Можно это сделать через "Индивидуальная донастройка виртхостов" панели ( location прописывается в нижнее поле). Больше, в общем, вам ничего не нужно, поэтому лезть в шаблон nginx тут
/etc/brainy/conf/vhosts/ и переопределять настройки для домена с помощью {if $domain == "your.domain.com"} {else} {/if} смысла нет.
Если всё ещё не понимаете, то извините, вам нужно найти кого-нибудь, кто всё сделает:)