Я создал приложение django и развернул его на сервере. Я запустил приложение через: -
python manage.py runserver 8000 &
и обрабатывать запросы на сервере apache через прокси
ProxyPass "/" "http://www.example.com/"
ProxyPassReverse "/" "http://www.example.com/".
Но есть проблема, с которой я сталкиваюсь при тестировании API через JMeter, когда я запускаю тестовый пример для 10 пользователей, моя служба python на сервере автоматически отключается. Что я делаю неправильно или что мне нужно сделать, чтобы разрешить описанный выше тестовый сценарий, подскажите, пожалуйста?





Вы не можете использовать python manage.py runserver 8000 на сервере, это ТОЛЬКО для разработки.
Документацию можно посмотреть здесь https://docs.djangoproject.com/en/2.1/howto/deployment/wsgi/
Базовая конфигурация для Apache будет:
<VirtualHost *:80>
ServerName yoursite.com
ServerAdmin [email protected]
Alias /media/ /path/to/django-app/media/
<Directory /path/to/django-app/media/>
Require all granted
</Directory>
WSGIScriptAlias / /path/to/django-app/conf/wsgi.py
<Directory /path/to/django-app/conf/>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
Вам нужно адаптировать это для вашего проекта.
Если вам нужно установить mod_wsgi: https://modwsgi.readthedocs.io/en/develop/user-guides/quick-installation-guide.html
Для меня я бы использовал https://docs.djangoproject.com/en/2.1/howto/deployment/wsgi/uwsgi/, так удобнее (pip install uwsgi)
Привет, вы можете найти много руководств в Google, я могу дать вам один с ngix: medium.com/@charlesthk/…
Прежде всего, вам нужно развернуть его на другом сервере, таком как apache. Ниже я рассказываю, как обычно настроить apache2 для развертывания проекта python django.
Установка Апача: Вам нужно установить apache, если он еще не установлен. Здесь я показываю установку apache2 и некоторые другие установки, которые нам нужны.
sudo apt-get update
sudo apt-get install apache2
sudo a2enmod wsgi
sudo apt-get install python3-pip apache2 libapache2-mod-wsgi-py3
конфигурация файла 000-default.conf: Обычно apache2 находится в linux m по пути /etc/apache2/sites-available/000-default.conf. И файл конфигурации может понравиться.
<VirtualHost *:80>
ServerName www.something.com
# this is the document root of your project
DocumentRoot /path/to/my-project
# The directory which you can access with base path EX: www.something.com/static/images/image.png
Alias /static /path/to/my-project/static
<Directory /path/to/my-project/static>
Require all granted
</Directory>
<Directory /path/to/my-project/my-project>
<Files wsgi.py>
Header set Access-Control-Allow-Origin "*"
Require all granted
</Files>
</Directory>
WSGIDaemonProcess my-project python-home=/path/to/my_env python-path=/path/to/my-project
WSGIProcessGroup my-project
WSGIScriptAlias / /path/to/my-project/my-project/wsgi.py
ErrorLog /path/to/my-project/logs/error.log
CustomLog /path/to/my-project/logs/access.log combined3
</VirtualHost>
Джанго-проект wsgi.py: Созданный вами проект django имеет wsgy.py, и этот файл может выглядеть так.
python_home = '/path/to/my_env'
import sys
import site
sys.path.append('/path/to/my-project')
sys.path.append('/path/to/my_env/bin')
sys.path.append('/path/to/my_env/lib/python3.6/site-packages')
# Calculate path to site-packages directory.
python_version = '.'.join(map(str, sys.version_info[:2]))
site_packages = python_home + '/lib/python%s/site-packages' % python_version
# Add the site-packages directory.
site.addsitedir(site_packages)
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my-project.settings")
application = get_wsgi_application()
После этого вы можете запустить сервер apache2 sudo service apache2 start.
Также вам необходимо дать разрешение на каталог вашего проекта sudo chmod -R 777 /path/to/my-project.
Это базовая конфигурация apache2 с проектом python django. Надеюсь, это поможет настроить любой linux machine с вашим python django project.
не могли бы вы предложить мне способ его развертывания на сервере amazon (aws) linux?