Estoy tratando de configurar el proxy nginx para un servicio tcp, las cosas del proxy http funcionan como se esperaba. Sin embargo, sigo recibiendo este error para el servidor dentro del contexto de stream
.
no handler for server in /etc/nginx/nginx.conf:6
No entiendo en qué se diferencia de los servidores definidos en el contexto http
.
events { } stream { server { listen 5601; deny all; } } http { server { listen 80; server_name example.com; location / { proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $http_host; return 301 https://$host$request_uri; } location /.well-known/acme-challenge/ { root /var/www/certbot; } } server { listen 443 ssl; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; location / { proxy_pass http://example.com:5601; } } }
¿Qué significa este error y cómo lo soluciono?
El problema radica aquí:
listen 5601; deny all;
La listen
no entiende, ¿qué voy a hacer para escuchar aquí? Inmediatamente encontró un deny all;
. ¿Qué voy a hacer con negar? . Por lo tanto, debe decirle a la listen
qué representa. Por ejemplo:
listen 853; proxy_pass 127.0.0.1:53;
Aquí, ordené listen
para hacer algo. Entonces sabe qué hacer para representar. Estaba allí para escuchar en el puerto 853 y luego pasar a localhost. Ya, algo así. No olvides reiniciar
sudo systemctl restart nginx.services
Tu dijiste:
No entiendo en qué se diferencia de los servidores definidos en el contexto http.
Por supuesto. Porque el server
en http
sabe qué hacer después de escuchar. :)