|
Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Прочее - nginx reverse proxy, 2 сайта, https и http |
|
Прочее - nginx reverse proxy, 2 сайта, https и http
|
Сообщения: 591 |
Профиль | Отправить 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 |
Ветеран Сообщения: 3261
|
Профиль | Отправить PM | Цитировать Цитата YDen:
Я бы сделал оба Апача на http без всяких сертификатов, домен привязал бы к IP nginx и использовал бы его в качестве load balancer с этими двумя Апачами в качестве бекендов https://docs.nginx.com/nginx/admin-g...load-balancer/ Или вам не это нужно? Тогда я не понял задачу. |
|
Отправлено: 20:08, 27-11-2023 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Сообщения: 591
|
Профиль | Отправить PM | Цитировать Цитата shisik:
Два раза сертификат - изначально работал один сервер, web1, без обратного прокси. Когда появилась необходимость в web2, то не стал ломать "работает-не трожь". Хочу с правильной работой nginx разобраться, а потом уже с web1 убрать https. web1 и web2 совершенно разные сервера, балансировать нагрузку не зачем. Цель: за обратным прокси расположить несколько разных серверов. Со схемами https -> https и https -> http. благодарю |
|
Отправлено: 20:51, 27-11-2023 | #3 |
Ветеран Сообщения: 3261
|
Профиль | Отправить 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; } Первый я бы настроил точно так. Не знаю, будет ли вообще работать по https между nginx и Apache. Если IP указать, то точно не будет сертификат приниматься. Ну может там другой домен какой - не знаю, тогда может и будет. Но я так никогда не делал. А куда у вас основной домен смотрит? А то судя по конфигурации из первого собщения он сам на себя замыкается: принимает запросы на firma.ru и отправляет на себя же? |
Отправлено: 22:21, 27-11-2023 | #4 |
Сообщения: 591
|
Профиль | Отправить PM | Цитировать Цитата shisik:
Основной домен, 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 |
Ветеран Сообщения: 3261
|
Профиль | Отправить PM | Цитировать Цитата YDen:
Может у вас этот сайт потому и работает, что он на Апач настроен, а nginx просто не участвует? И вы видите рабочий сайт, но чисто с Апача. Можете посмотреть Response Headers в браузере на вкладке Network, там есть поле Server и если ответ от nginx, то там будет nginx и версия. Ну и то жесамое для Апача - будет Apache. |
|
Отправлено: 16:36, 28-11-2023 | #6 |
Сообщения: 591
|
Профиль | Отправить PM | Цитировать Цитата shisik:
|
|
Отправлено: 16:57, 28-11-2023 | #7 |
Ветеран Сообщения: 3261
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:58, 28-11-2023 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|