Не тривиальная задача

Все остальные вопросы
Mikchee
Сообщения: 10
Зарегистрирован: Ср июн 12, 2019 11:48 am

Не тривиальная задача

Сообщение Mikchee » Вс ноя 03, 2019 5:15 pm

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

Есть внешний 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

Аватара пользователя
ordex
Сообщения: 347
Зарегистрирован: Вт ноя 20, 2018 2:47 pm

Re: Не тривиальная задача

Сообщение ordex » Вс ноя 03, 2019 6:10 pm

микротик умеет через web-proxy, но только для 80, с ssl не умеет.
Из того что предлагает brainy: nginx умеет, proxy_pass и вперёд. Только сертификаты для домена нужно будет класть и прописывать на машину с brainy (ту, на который изначальный проброс с микротика). Или Haproxy поставить..
(не понял почему в первой части вы оперируете 192.168.* а далее у вас уже 10.10.* )

Mikchee
Сообщения: 10
Зарегистрирован: Ср июн 12, 2019 11:48 am

Re: Не тривиальная задача

Сообщение Mikchee » Вс ноя 03, 2019 7:01 pm

Вот как раз с сертификатами и загвоздка, не понимаю как их перемещать
Думал возможно заново получить и не трогать старые.

10.10.10.1 - это из инструкции, уже сам запутался.

Аватара пользователя
ordex
Сообщения: 347
Зарегистрирован: Вт ноя 20, 2018 2:47 pm

Re: Не тривиальная задача

Сообщение ordex » Вс ноя 03, 2019 7:23 pm

Можете пустить домен с nextcloud через cloudflare, сертификат будет от comodo и на машинах можно будет не настраивать вообще, но тогда возможны проблемы с аплоадом файлов более 100мб (на free аккаунте cloudflare).
А так, сертификаты на машине с brainy живут в /etc/certs/user/ где они у вас на машине с nextcloud я не знаю.

Mikchee
Сообщения: 10
Зарегистрирован: Ср июн 12, 2019 11:48 am

Re: Не тривиальная задача

Сообщение Mikchee » Вс ноя 03, 2019 7:43 pm

А как-то возможно сделать, чтобы была возможность получить и использовать сертификат через саму панель?
И не трогать сертификат у nextcloud, обновлять только на сервере с BrainyCP.

Аватара пользователя
ordex
Сообщения: 347
Зарегистрирован: Вт ноя 20, 2018 2:47 pm

Re: Не тривиальная задача

Сообщение ordex » Вс ноя 03, 2019 8:03 pm

А вам его собственно и нужно получать\обновлять на этой машине, а на 192.168.1.21 положите самоподписанный, чтобы тамошний nginx (или что там у вас) не ругался и запускался.
Только что проверил у себя, (тоже микротик и за nat две машины, сервер и мой десктоп, на десктопе запустил python -m SimpleHTTPServer на сервере для тестового субдомена proxy_pass http://ip-десктопа:8000; и далее открываю по https
Изображение всё работает.

Mikchee
Сообщения: 10
Зарегистрирован: Ср июн 12, 2019 11:48 am

Re: Не тривиальная задача

Сообщение Mikchee » Вс ноя 03, 2019 9:09 pm

Да как так-то... Смотришь задача простая, во всех инструкциях настройка за 3 минуты :D

Я уже неделю сижу не могу понять... :oops:

Сейчас у меня такой конфиг, но он не работает:

Код: Выделить всё

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 и это с тестовой страничкой, которая не имеет сертификата.
Что делать с теми где есть уже сертификат вообще не понимаю.

Аватара пользователя
ordex
Сообщения: 347
Зарегистрирован: Вт ноя 20, 2018 2:47 pm

Re: Не тривиальная задача

Сообщение ordex » Вс ноя 03, 2019 9:43 pm

А 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;
}

Mikchee
Сообщения: 10
Зарегистрирован: Ср июн 12, 2019 11:48 am

Re: Не тривиальная задача

Сообщение Mikchee » Вс ноя 03, 2019 10:07 pm

BrainyCP не имеет, я его боюсь трогать :roll:
Пока пытаюсь сделать на отдельной виртуальной машине с Ubuntu 18.04

А сертификат через панель при этом получали или скриптом каким-то?

Я правильно понял, что вы зашли в "Управление сервером" и внизу в "Редактировать конфигурацию nginx" добавили приведенный конфиг?
Только из вашего конфига я не понял как вы ссылаетесь на нужный домен.

Или вы создали в панели хост с доменом и где-то изменили конфиг?

Извините за "допрос", но я правда не понимаю как вам это удалось. :P

Аватара пользователя
ordex
Сообщения: 347
Зарегистрирован: Вт ноя 20, 2018 2:47 pm

Re: Не тривиальная задача

Сообщение ordex » Пн ноя 04, 2019 6:10 am

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} смысла нет.
Если всё ещё не понимаете, то извините, вам нужно найти кого-нибудь, кто всё сделает:)

Ответить