Я развернул свое веб-приложение Django на цифровой капле океана. Сервер Python работает на порту 8000.
python manage.py runserver 0.0.0.0:8000
Я настроил веб-сервер Apache для обслуживания запросов.
/etc/apache2/сайты-доступны/000-default.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /etc/myproject
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
#Serving static files
Alias /static/ /etc/myproject/static/
<Directory /etc/myproject/static>
Require all granted
</Directory>
<Directory /etc/myproject/myproject>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess myproject python-path=/etc/myproject python-home=/etc/myprojectenv
WSGIProcessGroup myproject
WSGIScriptAlias / /etc/myproject/myproject/wsgi.py
</VirtualHost>
Теперь, когда я получаю доступ к своему веб-приложению, используя IP-адрес X.X.X.X, я могу видеть свое приложение, однако приложение также доступно через порт 8000, X.X.X.X:8000.
Я хочу, чтобы к моему приложению не обращались через любой другой порт, кроме как через IP. Как я могу это сделать?
но если я это сделаю, как мой сервер Python сможет обслуживать запросы?
Вы используете несколько серверов или один сервер?
только это, один сервер
Он будет обслуживаться mod_wsgi в Apache.
Я был сбит с толку, я подумал, что важно также запустить сервер django, чтобы мой веб-сайт был доступен веб-серверу apache. Хотя, когда я закрыл сервер Python, я все еще мог получить доступ к своему веб-приложению, и я подумал, что это должно быть связано с тем, что apache кэширует мою веб-страницу, и я не осознавал, что это mod_wsgi, который работает в фоновом режиме для обслуживания запросов. это было все заблуждение, спасибо, что развеяли мои сомнения
Хорошо, я упустил здесь момент, что мне не нужно запускать сервер Django, когда я настроил веб-сервер Apache для обслуживания моих запросов. Все запросы обслуживаются модулем Apache mod_wsgi. Пакет mod_wsgi предоставляет модуль Apache, который реализует интерфейс, совместимый с WSGI, для размещения веб-приложений на основе Python поверх веб-сервера Apache.
Остановите процесс
runserver
.