NGINX:阻止用户在端口上查看网站(example.com:5000)

NGINX:阻止用户在端口上查看网站(example.com:5000)

我设置了一个 ubuntu VPS,它正在运行一个 django 应用程序。我将其用作waitressWSGI 服务器并whitenoise提供静态文件。还nginx为媒体文件夹提供服务。当前设置在 运行良好,example.com但我想阻止网站显示,example.com:5000因为媒体文件在此端口提供服务。

我用来运行服务器的命令是:

web: PYTHONUNBUFFERED=true env/bin/waitress-serve --port=$PORT project.wsgi:application

以及 nginx 配置:

upstream app_server {
    server 127.0.0.1:5000 fail_timeout=0;
}

server {
    listen 80 default_server;
    server_name _;

    client_max_body_size 4G;
    keepalive_timeout 10;

    location /uploads/ {
        alias /opt/media/;
    }

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://app_server;
    }
}

可以隐藏该网站吗example.com:5000

附言:最坏的情况是 - 我还可以在端口 5000 上提供媒体服务吗?

答案1

从您的配置来看,nginx 似乎没有监听端口 5000。因此,您应该调查实际监听此端口的程序,并将其阻止到外部世界 - 最简单的方法是将其仅绑定到本地主机。这样,nginx 就可以访问它,但不在这台机器上的任何人都无法访问它。

相关内容