Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Прочее - nginx reverse proxy, 2 сайта, https и http

Ответить
Настройки темы
Прочее - nginx reverse proxy, 2 сайта, https и http


Сообщения: 591
Благодарности: 5

Профиль | Отправить PM | Цитировать


Здравствуйте.
Подскажите пожалуйста по 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/)?

благодарю

Отправлено: 19:05, 27-11-2023

 

Аватара для shisik

Ветеран


Сообщения: 3247
Благодарности: 596

Профиль | Отправить PM | Цитировать


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

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

Или вам не это нужно? Тогда я не понял задачу.
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:08, 27-11-2023 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Сообщения: 591
Благодарности: 5

Профиль | Отправить PM | Цитировать


Цитата shisik:
А зачем два раза сертификат? Куда ваш домен привязан? На Apache web1 или на nginx? »
Два субдомена (d1.firma.ru - web1 и d2.firma.ru - web2), привязаны к nginx.
Два раза сертификат - изначально работал один сервер, web1, без обратного прокси. Когда появилась необходимость в web2, то не стал ломать "работает-не трожь". Хочу с правильной работой nginx разобраться, а потом уже с web1 убрать https.
web1 и web2 совершенно разные сервера, балансировать нагрузку не зачем.

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

благодарю

Отправлено: 20:51, 27-11-2023 | #3


Аватара для shisik

Ветеран


Сообщения: 3247
Благодарности: 596

Профиль | Отправить PM | Цитировать


Ну со вторым всё просто: создаёте виртуальный хост в 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 и отправляет на себя же?

Отправлено: 22:21, 27-11-2023 | #4



Сообщения: 591
Благодарности: 5

Профиль | Отправить PM | Цитировать


Цитата shisik:
А куда у вас основной домен смотрит? А то судя по конфигурации из первого собщения он сам на себя замыкается: принимает запросы на firma.ru и отправляет на себя же? »
Благодарю за информацию.
Основной домен, 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/;
        }
}
Еще раз благодарю.

Отправлено: 06:24, 28-11-2023 | #5


Аватара для shisik

Ветеран


Сообщения: 3247
Благодарности: 596

Профиль | Отправить PM | Цитировать


Цитата YDen:
Сайт web1, тот что d1.firma.ru работает под конфигом nginx, ниже. В web1 в апаче прописано, что он отвечает на https://d1.firma.ru - поэтому в proxy_pass указан опять этот адрес. »
Что-то я не понял. А на какой IP смотрит d1.firma.ru? На web1 с Апачем, или на сервер с nginx? Как они оба могут на него отзываться?
Может у вас этот сайт потому и работает, что он на Апач настроен, а nginx просто не участвует? И вы видите рабочий сайт, но чисто с Апача.

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

Отправлено: 16:36, 28-11-2023 | #6



Сообщения: 591
Благодарности: 5

Профиль | Отправить PM | Цитировать


Цитата shisik:
Что-то я не понял. А на какой IP смотрит d1.firma.ru? На web1 с Апачем, или на сервер с nginx? Как они оба могут на него отзываться?
Может у вас этот сайт потому и работает, что он на Апач настроен, а nginx просто не участвует? И вы видите рабочий сайт, но чисто с Апача. »
Внешний ip смотрит на nginx. Если быть точнее, то микротик дст натит на nginx. Сегодня с экспериментами сервер с nginx (виртуалка proxmox с ubuntu server) в аут ушел. Сайт d1.firma.ru стал недоступен, ошибка 502, nginx.

Отправлено: 16:57, 28-11-2023 | #7


Аватара для shisik

Ветеран


Сообщения: 3247
Благодарности: 596

Профиль | Отправить PM | Цитировать


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

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

Отправлено: 17:58, 28-11-2023 | #8



Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Прочее - nginx reverse proxy, 2 сайта, https и http

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Nginx proxy acl God-of-Chaos Вебмастеру 1 01-08-2022 15:18
Разный редирект http и https kot488 Вебмастеру 2 05-12-2017 13:19
[решено] проксирование https с nginx на apache za1 Вебмастеру 2 22-11-2017 11:09
CMD/BAT - [решено] cURL Proxy https shmel_sv@vk Скриптовые языки администрирования Windows 1 30-07-2015 09:43
[htaccess] redirect https to http strejiok Вебмастеру 9 25-11-2006 13:50




 
Переход