Прочее - nginx reverse proxy, 2 сайта, https и http

Ответить
 • Просмотры: 2
Аватара пользователя
YDen

Прочее - nginx reverse proxy, 2 сайта, https и http

Сообщение YDen »

Здравствуйте.

Подскажите пожалуйста по nginx reverse proxy.

Внутри ЛВС находятся 2 веб сервера на апаче: web1 и web2. Web1 работает на https (firma.ru, установлен сертификат letsencrypt), web2 - http. Соответственно перед ними стоит nginx reverse proxy. Для web1 на nginx выпущен и загружен второй сертификат letsencrypt (firma.ru).



конфиг nginx web1:

/etc/nginx/sites-available/firma.ru.conf



Код:

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

server {
        listen      80;
        listen      [::]:80;
        listen      443 ssl http2;
        listen      [::]:443 ssl http2;
        server_name firma.ru;
        ssl_certificate "/etc/letsencrypt/live/firma.ru/fullchain.pem";
        ssl_certificate_key "/etc/letsencrypt/live/firma.ru/privkey.pem";
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        proxy_redirect      off;
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    Host $http_host;
        location / {
                proxy_pass https://firma.ru/;
        }
}

Вопрос:

1. оптимален ли конфиг nginx для web1?

2. какой оптимальный код nginx для сайта web2 (http,
http://10.12.0.245:9090/)?




благодарю
Аватара пользователя
shisik

Re: Прочее - nginx reverse proxy, 2 сайта, https и http

Сообщение shisik »

Цитата YDen:



Внутри ЛВС находятся 2 веб сервера на апаче: web1 и web2. Web1 работает на https (firma.ru, установлен сертификат letsencrypt), web2 - http. Соответственно перед ними стоит nginx reverse proxy. Для web1 на nginx выпущен и загружен второй сертификат letsencrypt (firma.ru).
Прочее - nginx reverse proxy, 2 сайта, https и http




А зачем два раза сертификат? Куда ваш домен привязан? На Apache web1 или на nginx?



Я бы сделал оба Апача на http без всяких сертификатов, домен привязал бы к IP nginx и использовал бы его в качестве load balancer с этими двумя Апачами в качестве бекендов
https://docs.nginx.com/nginx/admin-g...load-balancer/




Или вам не это нужно? Тогда я не понял задачу.
Аватара пользователя
YDen

Re: Прочее - nginx reverse proxy, 2 сайта, https и http

Сообщение YDen »

Цитата shisik:



А зачем два раза сертификат? Куда ваш домен привязан? На Apache web1 или на nginx?
Прочее - nginx reverse proxy, 2 сайта, https и http




Два субдомена (d1.firma.ru - web1 и d2.firma.ru - web2), привязаны к nginx.

Два раза сертификат - изначально работал один сервер, web1, без обратного прокси. Когда появилась необходимость в web2, то не стал ломать "работает-не трожь". Хочу с правильной работой nginx разобраться, а потом уже с web1 убрать https.

web1 и web2 совершенно разные сервера, балансировать нагрузку не зачем.



Цель: за обратным прокси расположить несколько разных серверов. Со схемами https -> https и https -> http.



благодарю
Аватара пользователя
shisik

Re: Прочее - nginx reverse proxy, 2 сайта, https и http

Сообщение shisik »

Ну со вторым всё просто: создаёте виртуальный хост в nginx на d2.firma.ru и указываете его ip в proxy_pass. У меня это обычно вот так:





Код:

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

    location / {
        proxy_pass http://10.12.0.245:9090;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_redirect off;
    }

Потом устанавливаете на него сертификат для d2.firma.ru как обычно. На nginx, само собой. В принципе здесь всё.



Первый я бы настроил точно так. Не знаю, будет ли вообще работать по https между nginx и Apache. Если IP указать, то точно не будет сертификат приниматься. Ну может там другой домен какой - не знаю, тогда может и будет. Но я так никогда не делал.



А куда у вас основной домен смотрит? А то судя по конфигурации из первого собщения он сам на себя замыкается: принимает запросы на firma.ru и отправляет на себя же?
Аватара пользователя
YDen

Re: Прочее - nginx reverse proxy, 2 сайта, https и http

Сообщение YDen »

Цитата shisik:



А куда у вас основной домен смотрит? А то судя по конфигурации из первого собщения он сам на себя замыкается: принимает запросы на firma.ru и отправляет на себя же?
Прочее - nginx reverse proxy, 2 сайта, https и http




Благодарю за информацию.

Основной домен, firma.ru, я не использую пока. В конфиге его указал для простоты.

Сайт web1, тот что d1.firma.ru работает под конфигом nginx, ниже. В web1 в апаче прописано, что он отвечает на
https://d1.firma.ru
- поэтому в proxy_pass указан опять этот адрес.





Код:

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

server {
        listen      80;
        listen      [::]:80;
        listen      443 ssl http2;
        listen      [::]:443 ssl http2;
        server_name d1.firma.ru;
        ssl_certificate "/etc/letsencrypt/live/d1.firma.ru/fullchain.pem";
        ssl_certificate_key "/etc/letsencrypt/live/d1.firma.ru/privkey.pem";
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        proxy_redirect      off;
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    Host $http_host;
        location / {
                proxy_pass https://d1.firma.ru/;
        }
}

Еще раз благодарю.
Аватара пользователя
shisik

Re: Прочее - nginx reverse proxy, 2 сайта, https и http

Сообщение shisik »

Цитата YDen:



Сайт web1, тот что d1.firma.ru работает под конфигом nginx, ниже. В web1 в апаче прописано, что он отвечает на
https://d1.firma.ru
- поэтому в proxy_pass указан опять этот адрес.
Прочее - nginx reverse proxy, 2 сайта, https и http




Что-то я не понял. А на какой IP смотрит d1.firma.ru? На web1 с Апачем, или на сервер с nginx? Как они оба могут на него отзываться?

Может у вас этот сайт потому и работает, что он на Апач настроен, а nginx просто не участвует? И вы видите рабочий сайт, но чисто с Апача.



Можете посмотреть Response Headers в браузере на вкладке Network, там есть поле Server и если ответ от nginx, то там будет nginx и версия. Ну и то жесамое для Апача - будет Apache.
Аватара пользователя
YDen

Re: Прочее - nginx reverse proxy, 2 сайта, https и http

Сообщение YDen »

Цитата shisik:



Что-то я не понял. А на какой IP смотрит d1.firma.ru? На web1 с Апачем, или на сервер с nginx? Как они оба могут на него отзываться?

Может у вас этот сайт потому и работает, что он на Апач настроен, а nginx просто не участвует? И вы видите рабочий сайт, но чисто с Апача.
Прочее - nginx reverse proxy, 2 сайта, https и http




Внешний ip смотрит на nginx. Если быть точнее, то микротик дст натит на nginx. Сегодня с экспериментами сервер с nginx (виртуалка proxmox с ubuntu server) в аут ушел. Сайт d1.firma.ru стал недоступен, ошибка 502, nginx.
Аватара пользователя
shisik

Re: Прочее - nginx reverse proxy, 2 сайта, https и http

Сообщение shisik »

Тогда непонятно как может работать вот это





Код:

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

proxy_pass https://d1.firma.ru/;

Как nginx узнает, что надо на Апач запросы отправлять? d1.firma.ru указывает на него самого. Где вообще указан адрес Апача с web1?
Ответить

Вернуться в «Общий по Linux»