1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python代码修改nginx配置_生产环境部署python代码(django+uwsgi+nginx)

python代码修改nginx配置_生产环境部署python代码(django+uwsgi+nginx)

时间:2024-02-21 20:33:29

相关推荐

python代码修改nginx配置_生产环境部署python代码(django+uwsgi+nginx)

基础环境不做介绍,在django开发web项目完成后,一直使用django自带的服务器进行调试:

python manage.py runserver 0.0.0.0:8080

这个服务器在开发时使用,实际生产则不能满足,要使用uwsgi把动态请求转给python执行,使用nginx处理静态请求,部署如下:

在开发环境中,收集python所需的安装包及其具体版本号:

pip freeze > programlist.txt

然后,把programlist.txt文件传递服务器上;

前提:线上服务器已经安装好python环境、django环境、nginx等;

在服务器上安装python项目所需要的程序包:

pip install -r programlist.txt

创建django项目:

django-admin startprojcet test

会在本地创建一个test项目同名的目录,并进入:

cd test

再创建项目下的一个应用:

python manage.py starapp apptest

此时,当前目录会出现apptest目录、manage.py文件和test目录(与项目目录下同名的又一个目录);

还要创建相应的目录:

在项目目录test下创建目录:

test/templates/apptest

test/static/apptest

test/static/media

注意:两级目录均需要创建

修改settings.py文件:

DEBUG=False

#允许指定主机访问服务器

ALLOWED_HOSTS=['*']

#添加应用

INSTALLED_APPS = [

...

'test',

]

#修改模板路径

TEMPLATES = [

{

...

'DIRS': [os.path.join(BASE_DIR,'templates')],

...

},

]

#添加静态文件路径

STATIC_URL = '/static/'

STATICFILES_DIRS=[

os.path.join(BASE_DIR,'static')

]

#nginx配置中的静态文件路径

STATIC_ROOT='/var/www/test/static/'

#配置数据库

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'test3',

'USER': 'root',

'PASSWORD': 'root',

'HOST': 'localhost',

'PORT': '3306',

}

}

修改主urls.py文件:

#配置url路径

from django.conf.urls import url,include

from django.contrib import admin

urlpatterns = [

url(r'^admin/', admin.site.urls),

url('^',include('booktest.urls')),

]

在应用目录下创建一个urls.py文件:

test/urls.py

如:

from django.conf.urls import url

import views

urlpatterns=[

url(r'^$',views.index),

]

在views.py文件里定义各种视图函数;

如:

from django.shortcuts import render

def index(request):

return render(request,'booktest/index.html')

在templates/apptest/创建各html模板文件;

如index.html:

Title

$(function () {

$('img').width(100).height(100);

});

注意:先把a1.jpg和js文件放到test/static/apptest目录下;

此时,先测试一下,把settings中的DEBUG改为=False,如果不改,则会显示不出图片;再启动django开发时的服务器,访问浏览器能看见图片且符合js里面设定的图片大小既可进行下一步配置;

下面配置wsgi:

安装uWSGI:

pip install uwsgi

在项目test目录下创建uwsgi.ini文件,内容如下:

[uwsgi]

#使用nginx连接,使用socket

socket=192.168.1.250:8080

#直接做web服务器,使用http

#http=192.168.1.250:8080

#项目的绝对路径

chdir=/root/projects/test

#相对项目绝对路径的一个路径

wsgi-file=test/wsgi.py

processes=4

therads=2

master=True

pidfile=uwsgi.pid

daemonize=uswgi.log

运行uwsgi:

uwsgi --ini uwsgi.ini

如果uwsgi.ini文件使用的是http,则直接访问服务器的ip地址和端口既可显示页面;

停止uwsgi:

uwsgi --stop uwsgi.pid

如果uwsgi.ini文件使用的是socket,则需要nginx服务的配合使用:

配置nginx.conf:

server {

listen 80 default_server;

listen [::]:80 default_server;

servername;

root /usr/share/nginx/html;

include /etc/nginx/default.d/*.conf;

location / {

include uwsgi_params;

uwsgi_pass 192.168.1.250:8080;

}

location /static {

alias /var/www/test/static/;

}

在静态文件存放目录:

/var/www/test/static/

修改静态文件所在目录static的目录权限:

chmod 777 static

再把静态文件,放到/var/www/test/static/目录下既可,django提供方便的命令,来采集静态文件:

python manage.py collectstaic

输入yes;

执行该命令后,会自动把静态文件都复制到/var/www/test/static/目录下;

最后,直接访问服务器的域名或ip,完成访问页面;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。