python之Django部署

Django部署:
1. 租云服务器

2. 买服务器


租:公网IP,111.13.101.208
租域名:www.pythonav.com <-> 111.13.101.208

3. 编写代码


4. 拷贝代码到服务器[Python,Django,pymysql,sqllite]


5.
settings.py
ALLOWED_HOSTS = ['服务器',]  # 即网站IP

python manage.py runserver 0.0.0.0:8001

使用:
遵循wsig协议:
wsgiref

6. uwsgi
pip3 intall uwsgi


简单测试:
app.py
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]

uwsgi --http :9001 --wsgi-file app.py

uwsgi --http :9002 --wsgi-file foobar.py --master --processes 4 --threads 2  (foobar为django wsgi.py路径, 后面为4进程 2线程)

Django:

# 不处理静态文件
uwsgi --http :9002 --chdir /data/s4/deploy --wsgi-file deploy/wsgi.py --master --processes 4 --threads 2


首先settings写好静态文件路径
STATICFILES_DIRS = (
os.path.join(BASE_DIR,'static'),
)
STATIC_ROOT = os.path.join(BASE_DIR,'uuuuuu')

python manage.py collectstatic (这个命令将上面所有路径下的静态文件收集到指定文件夹 即uuuuuu)

完事,注释静态配置

# 处理静态文件
uwsgi --http :9003 --chdir /data/s4/deploy --wsgi-file deploy/wsgi.py --static-map /static=/data/s4/deploy/uuuuuu


# 写一个配置文件
wsgi_http.ini
[uwsgi]
http = 0.0.0.0:9004
chdir = /data/s4/deploy
wsgi-file = deploy/wsgi.py
# processes = 4
# threads = 2
static-map = /static=/data/s4/deploy/uuuuuu
uwsgi wsgi_http.ini


7. Nginx

yum install nginx

/etc/init.d/nginx start/stop/restart

/etc/nginx/nginx.conf

其中 server后应写 uwsgi的启动端口,即Nginx将请求转交给uwsgi uwsgi交给Django处理,获取结果再交给Nginx返回给客户。

static 为静态文件路径

此时uwsgi的配置文件应修改为连接方式:

http = 0.0.0.0:9004  改为 socket = 127.0.0.1:8001  其余不变


用户请求通过Nginx默认监听的80端口,Nginx再判断请求信息,如处理动态请求则向uwsgi的8001端口发送,处理完后再返回给Nginx交给用户。

lsof -i:端口 可以查看端口是否被使用

如果出错 应设置selinux  

vim /etc/selinux/config

将SELINUX设置成disabled



























































原文地址:https://www.cnblogs.com/mitsui/p/7764561.html