A documentação do TeamCity torna algumas suposições que não espere por você:
TeamCity server is installed at URL: http://teamcity.local:8111/tc
It is visible to the outside world as URL: http://teamcity.public:400/tc
No seu caso, o TeamCity é visível para o mundo exterior como URL: link .
Isso muda sua configuração do NGINX da seguinte forma:
server {
listen 80;
server_name ci.example.net;
error_log /var/log/nginx/error.log;
proxy_intercept_errors on;
error_page 401 403 404 /404.html;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8111;
proxy_read_timeout 90;
proxy_redirect http://127.0.0.1:8111 http://ci.fluxmc.net;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
#Websocket configuration
map $http_upgrade $connection_upgrade {
default upgrade;
'' '';
}
Para mim, isso foi o suficiente para fazer a conexão websocket com o TeamCity funcionar.