Не тривиальная задача
Не тривиальная задача
Доброго времени суток
Появилась не тривиальная задача... надеюсь сможете помочь...
Есть внешний 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
Появилась не тривиальная задача... надеюсь сможете помочь...
Есть внешний 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: Не тривиальная задача
микротик умеет через web-proxy, но только для 80, с ssl не умеет.
Из того что предлагает brainy: nginx умеет, proxy_pass и вперёд. Только сертификаты для домена нужно будет класть и прописывать на машину с brainy (ту, на который изначальный проброс с микротика). Или Haproxy поставить..
(не понял почему в первой части вы оперируете 192.168.* а далее у вас уже 10.10.* )
Из того что предлагает brainy: nginx умеет, proxy_pass и вперёд. Только сертификаты для домена нужно будет класть и прописывать на машину с brainy (ту, на который изначальный проброс с микротика). Или Haproxy поставить..
(не понял почему в первой части вы оперируете 192.168.* а далее у вас уже 10.10.* )
Re: Не тривиальная задача
Вот как раз с сертификатами и загвоздка, не понимаю как их перемещать
Думал возможно заново получить и не трогать старые.
10.10.10.1 - это из инструкции, уже сам запутался.
Думал возможно заново получить и не трогать старые.
10.10.10.1 - это из инструкции, уже сам запутался.
Re: Не тривиальная задача
Можете пустить домен с nextcloud через cloudflare, сертификат будет от comodo и на машинах можно будет не настраивать вообще, но тогда возможны проблемы с аплоадом файлов более 100мб (на free аккаунте cloudflare).
А так, сертификаты на машине с brainy живут в /etc/certs/user/ где они у вас на машине с nextcloud я не знаю.
А так, сертификаты на машине с brainy живут в /etc/certs/user/ где они у вас на машине с nextcloud я не знаю.
Re: Не тривиальная задача
А как-то возможно сделать, чтобы была возможность получить и использовать сертификат через саму панель?
И не трогать сертификат у nextcloud, обновлять только на сервере с BrainyCP.
И не трогать сертификат у nextcloud, обновлять только на сервере с BrainyCP.
Re: Не тривиальная задача
А вам его собственно и нужно получать\обновлять на этой машине, а на 192.168.1.21 положите самоподписанный, чтобы тамошний nginx (или что там у вас) не ругался и запускался.
Только что проверил у себя, (тоже микротик и за nat две машины, сервер и мой десктоп, на десктопе запустил python -m SimpleHTTPServer на сервере для тестового субдомена proxy_pass http://ip-десктопа:8000; и далее открываю по https
всё работает.
Только что проверил у себя, (тоже микротик и за nat две машины, сервер и мой десктоп, на десктопе запустил python -m SimpleHTTPServer на сервере для тестового субдомена proxy_pass http://ip-десктопа:8000; и далее открываю по https
всё работает.
Re: Не тривиальная задача
Да как так-то... Смотришь задача простая, во всех инструкциях настройка за 3 минуты
Я уже неделю сижу не могу понять...
Сейчас у меня такой конфиг, но он не работает:
Но с сертификатом что-то не то - https://prnt.sc/przv5x
Сертификат отображается от Let's Encrypt и это с тестовой страничкой, которая не имеет сертификата.
Что делать с теми где есть уже сертификат вообще не понимаю.
Я уже неделю сижу не могу понять...
Сейчас у меня такой конфиг, но он не работает:
Код: Выделить всё
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;
}
}
Сертификат отображается от Let's Encrypt и это с тестовой страничкой, которая не имеет сертификата.
Что делать с теми где есть уже сертификат вообще не понимаю.
Re: Не тривиальная задача
А 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: Не тривиальная задача
BrainyCP не имеет, я его боюсь трогать
Пока пытаюсь сделать на отдельной виртуальной машине с Ubuntu 18.04
А сертификат через панель при этом получали или скриптом каким-то?
Я правильно понял, что вы зашли в "Управление сервером" и внизу в "Редактировать конфигурацию nginx" добавили приведенный конфиг?
Только из вашего конфига я не понял как вы ссылаетесь на нужный домен.
Или вы создали в панели хост с доменом и где-то изменили конфиг?
Извините за "допрос", но я правда не понимаю как вам это удалось.
Пока пытаюсь сделать на отдельной виртуальной машине с Ubuntu 18.04
А сертификат через панель при этом получали или скриптом каким-то?
Я правильно понял, что вы зашли в "Управление сервером" и внизу в "Редактировать конфигурацию nginx" добавили приведенный конфиг?
Только из вашего конфига я не понял как вы ссылаетесь на нужный домен.
Или вы создали в панели хост с доменом и где-то изменили конфиг?
Извините за "допрос", но я правда не понимаю как вам это удалось.
Re: Не тривиальная задача
Через панель.
На нужный домен "ссылается" конфиг, в который это нужно прописать.
я вам написал location который нужно добавить в server нужного домена. Можно это сделать через "Индивидуальная донастройка виртхостов" панели ( location прописывается в нижнее поле). Больше, в общем, вам ничего не нужно, поэтому лезть в шаблон nginx тут /etc/brainy/conf/vhosts/ и переопределять настройки для домена с помощью {if $domain == "your.domain.com"} {else} {/if} смысла нет.
Если всё ещё не понимаете, то извините, вам нужно найти кого-нибудь, кто всё сделает:)