У меня есть два веб-приложения IIS, которые обслуживают соединения веб-сокетов с сигнализатором.
Они находятся за прокси nginx, работающим на рое docker, настроенном так:
# cat nginx.conf
# auto detects a good number of processes to run
worker_processes auto;
#Provides the configuration file context in which the directives that affect connection processing are specified.
events {
# Sets the maximum number of simultaneous connections that can be opened by a worker process.
worker_connections 8000;
# Tells the worker to accept multiple connections at a time
multi_accept on;
}
http {
# what times to include
include /etc/nginx/mime.types;
# what is the default one
default_type application/octet-stream;
# Sets the path, format, and configuration for a buffered log write
log_format compression ' - [] '
'"" '
'"" ""';
server {
# resolver 127.0.0.11 valid=30s; ## internal docker dns
listen 3011; ## listen for ipv4; this line is default and implied
#listen [::]:3011 default ipv6only=on; ## listen for ipv6
# listen on port 80
listen 80;
# save logs here
access_log /var/log/nginx/access.log compression;
# where the root here
root /var/www/legacy;
# what file to server as index
index index.html index.htm;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to redirecting to index.html
try_files $uri $uri/ /index.html;
}
location ~ ^/admin/(.*)$ {
resolver 127.0.0.11 valid=30s; ## internal docker dns
set $upstream_admin http://nginx-admin;
proxy_pass $upstream_admin/$1;
proxy_http_version 1.1;
}
location ~ ^/admin/ {
resolver 127.0.0.11 valid=30s; ## internal docker dns
set $upstream_admin1 http://nginx-admin;
proxy_pass $upstream_admin1;
proxy_http_version 1.1;
}
location ~ ^/account/(.*)$ {
resolver 127.0.0.11 valid=30s; ## internal docker dns
set $upstream_account http://account:8007;
proxy_pass $upstream_account/$1;
proxy_http_version 1.1;
}
location ~ ^/account/ {
resolver 127.0.0.11 valid=30s; ## internal docker dns
set $upstream_account1 http://account:8007;
proxy_pass $upstream_account1;
proxy_http_version 1.1;
}
location ~ ^/graphql/ {
resolver 127.0.0.11 valid=30s; ## internal docker dns
set $upstream_graphql http://graphql:4000;
proxy_pass $upstream_graphql;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location ~ ^/api/(.*) {
resolver 127.0.0.11 valid=30s; ## internal docker dns.
set $upstream_api http://z4aweb-2.local-domain:81;
proxy_pass $upstream_api/$1$is_args$args;
proxy_http_version 1.1;
}
location ~ ^/hub/(.*) {
resolver 127.0.0.11 valid=30s; ## internal docker dns
set $upstream_hub http://z4aweb-2.local-domain:83;
proxy_pass $upstream_hub/$1$is_args$args;
proxy_http_version 1.1;
}
location ~ ^/signalr-hub/(.*) {
resolver 127.0.0.11 valid=30s; ## internal docker dns
set $upstream_hub1 http://z4aweb-2.local-domain:83;
proxy_pass $upstream_hub1/signalr-hub/$1$is_args$args;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location ~ ^/changes/(.*) {
resolver 127.0.0.11 valid=30s; ## internal docker dns
set $upstream_changes http://z4aweb-2.local-domain:86;
proxy_pass $upstream_changes/$1$is_args$args;
proxy_http_version 1.1;
}
location ~ ^/signalr-changes/(.*) {
resolver 127.0.0.11 valid=30s; ## internal docker dns
set $upstream_changes1 http://z4aweb-2.local-domain:86;
proxy_pass $upstream_changes1/signalr-changes/$1$is_args$args;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
# Media: images, icons, video, audio, HTC
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
try_files $uri =404;
expires 1M;
access_log on;
add_header Cache-Control "public";
}
# Javascript and CSS files
location ~* \.(?:css|js)$ {
try_files $uri =404;
expires 1y;
access_log off;
add_header Cache-Control "public";
}
# Any route containing a file extension (e.g. /devicesfile.js)
location ~ ^.+\..+$ {
try_files $uri =404;
}
}
}#
( сигнальные изменения и сигнальный концентратор) являются соответствующими конечными точками.
Досадно, что он продолжает отключаться. Ничего не регистрируется ни nginx, ни самими веб-приложениями.
Я отследил, что его вызывает - это сервер linux, на котором запущен рой, продлевающий аренду. h2-2.local-domain - это сервер, и это логи с dhcp-сервера:
Apr 17 21:25:28 gitea dhcpd[15781]: DHCPREQUEST for 192.168.2.33 from 00:1e:06:45:2a:74 (h2-2) via enp2s0
Apr 17 21:25:28 gitea dhcpd[15781]: DHCPACK on 192.168.2.33 to 00:1e:06:45:2a:74 (h2-2) via enp2s0
Теперь я обнаружил, что это не так меня беспокоит, потому что я могу продлить срок аренды и целевая система будет иметь статический c IP в любом случае. Так что я действительно публикую это, чтобы увидеть, видел ли кто-нибудь это и знает ли это правильное решение, а также в случае, если у других есть такая же проблема. .