@Seboreia

Как настроить порты upstream серверов в Nginx?

Приветствую!
Имеется связка tomcat+nginx. На томкате установлена opencms и имеется мультисайтовость: т.е. имеется несколько http коннекторов:

и т.д.
Соответственно в Nginx'e имеется проксирование:
server {
listen 80;
server_name www.site1.ru;

gzip off;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain application/xml text/css;

access_log logs/host.www.site1.ru.access.log main buffer=32k;

location /export/ {
proxy_pass 127.0.0.1:8081/export/;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location /resources/ {
proxy_pass 127.0.0.1:8081/resources/;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location /opencms/ {
rewrite ^/opencms/(.*)$ www.site1.ru/$1 permanent;
}
location / {

root html;
index index.html index.htm;
proxy_pass 127.0.0.1:8081/opencms/;

client_max_body_size 200m;
client_body_buffer_size 128k;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}
} и .т.п.
Т.е. на каждый сайт забинден свой порт.
Вопрос возник следующий: как сделать балансировку на кластер томкатов? Допустим, я сделаю так:
upstream appservers {
server tomcat1
server tomcat2
}
server {
location / {
proxy_pass http://appservers;
}
}
Тогда как передать часть uri и порт? Как я понял из доки, написать proxy_pass appservers:8081/export нельзя. Можно ли как-то решить это?

Была идея поставить на каждый томкат в кластере свой nginx и потом каждый из них добавить в группу для балансировки у главного (который и будет смотреть наружу). Идея рабочая, но не рациональная)
  • Вопрос задан
  • 3523 просмотра
Пригласить эксперта
Ответы на вопрос 1
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
Можно делать так:
upstream blahupstr {
server tomcat1:8081;
server tomcat2:8082;
}

server {
...
proxy_pass http://blahupst/export/ ;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы