Приветствую! Есть два сервера приложений дублирующие друг друга. Работают на портах 8080 и 8081. Стали странно зависать - соединение по порту создают, но не отвечают (виснут не одновременно).
Задача настроить nginx upstream что бы переключал запросы от зависшего - рабочему.
upstream up_svet {
server 127.0.0.1:8080 max_fails=1 fail_timeout=5s;
server 127.0.0.1:8081 max_fails=1 fail_timeout=5s backup;
}
server {
listen 80;
server_name svet.ru;
location /platform {
# proxy_pass http://localhost:8080/platform;
proxy_pass http://up_svet;
proxy_redirect default;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
add_header Front-End-Https on;
proxy_buffering off;
proxy_connect_timeout 40;
proxy_send_timeout 40;
proxy_read_timeout 40;
send_timeout 40;
# proxy_next_upstream error timeout;
}
При отключенном 8080 - переключение на 8081 работает идеально.
При зависшем 8080 переключение работает НО! каждый следующий запрос опять идёт в 8080 и ждёт тайм аута 40 сек. Пользоваться сайтом не возможно.
Приложу лог:
40.006, 0.002|24/Jul/2019:09:30:04 +0300|192.168.98.14|192.168.98.88:8080, 127.0.0.1:8081|"GET /platform/javax.faces.resource/theme.css.xhtml?ln=primefaces-platform-P1Platform HTTP/1.1"|304|40.006, 0.002
40.000, 0.002|24/Jul/2019:09:30:04 +0300|192.168.98.14|127.0.0.1:8080, 192.168.98.88:8081|"GET /platform/javax.faces.resource/css/layout.less.xhtml?ln=primefaces-platform-P1Platform HTTP/1.1"|304|40.000, 0.002
0.000, 0.000, 0.002|24/Jul/2019:09:30:04 +0300|192.168.98.14|[::1]:8081, [::1]:8080, 192.168.98.88:8081|"GET /platform/javax.faces.resource/fonts/RubikRegular.ttf.xhtml?ln=primefaces-platform-P1Platform HTTP/1.1"|304|0.000, 0.000, 0.002
0.001|24/Jul/2019:09:30:04 +0300|192.168.98.14|127.0.0.1:8081|"GET /platform/javax.faces.resource/fa/fontawesome-webfont.woff2.xhtml?ln=primefaces&v=6.2?v=4.7.0 HTTP/1.1"|304|0.001
0.039|24/Jul/2019:09:30:05 +0300|192.168.98.14|127.0.0.1:8081|"GET /platform/catalogfile/cons_libraryFiles/PTSansRegular/PT_Sans-Web-Regular.ttf HTTP/1.1"|200|0.039
0.002|24/Jul/2019:09:30:05 +0300|192.168.98.14|192.168.98.88:8081|"GET /platform/javax.faces.resource/images/resize.png.xhtml?ln=primefaces-platform-P1Platform HTTP/1.1"|304|0.002
0.004|24/Jul/2019:09:30:06 +0300|192.168.98.14|127.0.0.1:8081|"GET /platform/catalogfile/cons_libraryFiles/calendarIcon/calendarIcon.png HTTP/1.1"|200|0.004
1.389|24/Jul/2019:09:30:06 +0300|192.168.98.14|192.168.98.88:8081|"GET /platform/dmsfile/3db34fb2-1111-4a93-ba4d-c5497916ef55 HTTP/1.1"|200|1.389
40.004, 40.000, 0.001, 0.104|24/Jul/2019:09:34:45 +0300|192.168.98.254|127.0.0.1:8080, 192.168.98.88:8080, [::1]:8080, 127.0.0.1:8081|"GET /platform/portal/cons_main HTTP/1.1"|200|40.004, 40.000, 0.001, 0.104
0.002|24/Jul/2019:09:34:46 +0300|192.168.98.254|192.168.98.88:8081|"GET /platform/javax.faces.resource/theme.css.xhtml?ln=primefaces-platform-P1Platform HTTP/1.1"|304|0.002
0.000, 0.002|24/Jul/2019:09:34:46 +0300|192.168.98.254|[::1]:8081, 127.0.0.1:8081|"GET /platform/javax.faces.resource/css/add.less.xhtml?ln=primefaces-platform-P1Platform HTTP/1.1"|304|0.000, 0.002
0.001|24/Jul/2019:09:34:46 +0300|192.168.98.254|192.168.98.88:8081|"GET /platform/javax.faces.resource/css/layout.less.xhtml?ln=primefaces-platform-P1Platform HTTP/1.1"|304|0.001
0.001|24/Jul/2019:09:34:46 +0300|192.168.98.254|127.0.0.1:8081|"GET /platform/javax.faces.resource/css/mini-screen.less.xhtml?ln=primefaces-platform-P1Platform HTTP/1.1"|304|0.001
0.001|24/Jul/2019:09:34:46 +0300|192.168.98.254|192.168.98.88:8081|"GET /platform/javax.faces.resource/components.css.xhtml?ln=primefaces&v=6.2 HTTP/1.1"|304|0.001
0.001|24/Jul/2019:09:34:46 +0300|192.168.98.254|192.168.98.88:8081|"GET /platform/javax.faces.resource/screen.css.xhtml?ln=css HTTP/1.1"|304|0.001
0.001|24/Jul/2019:09:34:46 +0300|192.168.98.254|127.0.0.1:8081|"GET /platform/javax.faces.resource/fileupload/fileupload.css.xhtml?ln=primefaces&v=6.2 HTTP/1.1"|304|0.001
Тут видно что он сначала стучится на 8080 - виснет там ожидая тайм аута 40сек и потом переключает. Я могу уменьшить тайм ауты, но это не дело.
Не обходимо как то исключать «зависший» сервер из приоритета.
Буду рад любым подсказкам - спасибо!