Я установил 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?
Из вашей конфигурации похоже, что nginx не слушает порт 5000. Таким образом, вы должны выяснить, что на самом деле прослушивает этот порт, и заблокировать его для внешнего мира - самый простой способ - привязать его только к localhost. Таким образом, он будет доступен для nginx, но не для всех, кто не на этой машине.