【问题标题】:nginx: no handler for servernginx:服务器没有处理程序
【发布时间】:2020-04-16 03:45:39
【问题描述】:

我正在尝试为 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;
        }
    }
}

这个错误是什么意思,我该如何解决?

【问题讨论】:

    标签: nginx nginx-reverse-proxy


    【解决方案1】:

    问题出在这里:

    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 上下文中定义的服务器有何不同。

    当然。因为serverhttp 听完后知道该做什么。 :)

    【讨论】:

      猜你喜欢
      • 2018-01-04
      • 2016-01-28
      • 2023-04-08
      • 2017-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-04
      • 2021-11-24
      相关资源
      最近更新 更多