社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

在apache上部署Django rest API

Gaurav • 5 年前 • 1507 次点击  

我已经创建了一个django应用程序并将其部署到服务器上。我已经通过以下方式运行该应用程序:- python manage.py runserver 8000 &

并通过代理服务器处理apache服务器上的请求

ProxyPass "/" "http://www.example.com/" ProxyPassReverse "/" "http://www.example.com/" .

但在通过JMeter测试api时,我面临一个问题,当我为10个用户运行一个测试用例时,服务器上的python服务会自动终止。 我做错了什么,或者我需要做什么来解决上面的测试场景,请建议?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/50027
 
1507 次点击  
文章 [ 2 ]  |  最新文章 5 年前
R.A.Munna
Reply   •   1 楼
R.A.Munna    6 年前

首先,您需要将它部署到其他服务器上,如 apache . 下面我将分享如何像往常一样配置apache2来部署PythonDjango项目。

Apache安装: 如果尚未安装,则需要安装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的path /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>

Django项目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与Pythondjango项目的基本配置。希望这将有助于配置任何 linux machine 和你的 python django project

MaximeK
Reply   •   2 楼
MaximeK    6 年前

你不能使用 python manage.py runserver 8000 在服务器上,它只用于开发。

你可以在这里看到文档 https://docs.djangoproject.com/en/2.1/howto/deployment/wsgi/

Apache的基本配置是:

<VirtualHost *:80>
    ServerName yoursite.com
    ServerAdmin your@site.com

    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 )