我正在尝试为tcp服务配置nginx代理,http代理的东西按预期工作。但是,我在stream
上下文中始终收到服务器的此错误。
no handler for server in /etc/nginx/nginx.conf:6
我不明白它与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;
}
}
}
此错误是什么意思,我该如何解决?
问题出在这里:
listen 5601;
deny all;
在listen
不明白,什么将我对这里听呢?立即发现deny all;
。我会拒绝做什么?。因此,您必须告诉listen
它要做什么。例如:
listen 853;
proxy_pass 127.0.0.1:53;
在这里,我命令listen
做点事情。所以它知道它代表什么。它在那里侦听端口853,然后代理到localhost。是的,像这样。不要忘记重启
sudo systemctl restart nginx.services
你说:
我不明白它与http上下文中定义的服务器有何不同。
当然。因为听完之后server
就http
知道该怎么办。:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句