Welcome! Log In Create A New Profile

Advanced

Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

December 11, 2013 06:04AM
Подскажите, как можно организовать прокисрование http и https в одном конфигурационном файле, если есть несколько веб-серверов порты у которых отличаются от 80 и 443.
Опишу общий вариант, чтобы было понятнее о чем речь, думаю в организациях, у которых множество сервисов, такое или очень похожее часто встречается.

Для упрощения пусть будут несколько веб-серверов (apache,tomcat,glassfish,jbos ... и т.д.) на одном сервере (в жизни конечно не васе прям так, но доля правды есть, да и заменить один хост на хост в сети не так и сложно).

Пусть будет сервер в лок сети с установленым на нем ПО:
- nginx, порты http=80 https=443, он же проксирует все во нешний мир.
- apache, порты http=8080 https=8083
- glassfish, порты http=8181 https=8183

1. Каким образом нужно написать конфиг для проксирования, чтобы http и https были в одном конфиге?
2. Каким образом нужно написать конфиг для проксирования, чтобы http и https были в одном конфиге, при условии, что приложения на apache/glassfish находятся не в корне веб сервера?
2й вариант наиболее интересен!

Несколько примеров:
---------------------------------------------
Если проксирование идет от корня (вопрос 1), и порты отличны от 80 и 443, есть способ и он работает, но я не уверен что это правильное решение, может нужно по другому прописывать?:
в одном из location указать проксирование на apache
if ( $scheme = "http" ) {
proxy_pass http://localhost:8080;
}
if ( $scheme = "https" ) {
proxy_pass https://localhost:8083;
}
в другом location указать проксирование на glassfish
if ( $scheme = "http" ) {
proxy_pass http://localhost:8181;
}
if ( $scheme = "https" ) {
proxy_pass https://localhost:8183;
}

Но в этом варианте нельзя указать проксирование к контексту (вопрос 2), например http://localhost:8080/app ,т.к. nginx пишет ошибку
nginx: [emerg] "proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except"

По большом счету нужно проксирование с похожими возможностями, но чтобы можно было проксировать не только от корня, а и какое-то отдельной приложение.

---------------------------------------------

Понимаю, что если сделать например так:
- apache повесить на сетевой интерфейс 127.0.1.1, порты http=80 https=443
- glassfish повесить на сетевой интерфейс 127.0.1.2, порты http=80 https=443
то в location можно проксирование прописать следующим образом без использования if
proxy_pass $scheme://127.0.1.1; | proxy_pass $scheme://127.0.1.1/app;
или
proxy_pass $scheme://127.0.1.2; | proxy_pass $scheme://127.0.1.2/app;

Но этот способ не очень применим, т.к. повлечет за собой очень много изменений в сети.

---------------------------------------------

Спасибо.
Subject Author Posted

Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

mnsold December 11, 2013 06:04AM

Re: Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

Maxim Dounin December 11, 2013 09:16AM

Re: Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

mnsold December 11, 2013 10:06AM

Re: Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

mnsold December 11, 2013 10:23AM

Re: Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

Anton Kiryushkin December 11, 2013 10:30AM

Re: Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

mnsold December 11, 2013 10:41AM

Re: Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

Andrey Oktyabrskiy December 11, 2013 11:44AM

Re: Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

mnsold December 11, 2013 12:08PM

Re: Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

Maxim Dounin December 11, 2013 10:36AM

Re: Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

mnsold December 11, 2013 11:58AM

Re: Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

Maxim Dounin December 11, 2013 01:24PM

Re: Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

mnsold December 11, 2013 03:45PM

Re: Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

Maxim Dounin December 11, 2013 07:36PM

Re: Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

Gena Makhomed December 11, 2013 02:44PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 175
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready