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