我设置了一个 ubuntu VPS,它正在运行一个 django 应用程序。我将其用作waitress
WSGI 服务器并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 就可以访问它,但不在这台机器上的任何人都无法访问它。