nginx+uwsgi或nginx+python中manage部署多个网站
nginx+uwsgi或nginx+python中manage部署多个网站
原创Li-boss 最后发布于2019-01-11 17:06:42 阅读数 287 收藏
展开
现在遇到一个问题自己有两个网站需要发布,但是自己只有一台服务器,想要发布两个网站。自己研究了两种方案。
一个服务器部署多个网站。
方案一:不推荐
1、blog 网站
1
2
使用python虚拟环境进入/home/code/blog_web目录
使用python manage.py 启动项目
2、学习 网站
1
2
使用python虚拟环境进入/home/code/study_web目录
使用python manage.py 启动项目
3、启动nginx
注:
Debian系统需要编译安装nginx
下面的命令是Debian系统的启动命令
1
2
启动 nginx
关闭 nginx -s stop
centos的启动命令是
1
2
3
4
systemctl start nginx 启动
systemctl stop nginx 停止
systemctl restart nginx 重启
systemctl status nginx 查看nginx状态
4、nginx配置
单独启动两个网站使用 python manage.py文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#网站1端口转发
server {
listen 80;
server_name www.blog.com;
access_log /home/code/blog_web/logs/blog_web.log;
error_log /home/code/blog_web/logs/blog_web.error;
#将所有请求转发给demo_pool池的应用处理
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8000;
}
}
#网站2端口转发
server {
listen 80;
server_name www.study.com;
access_log /home/code/study_web/logs/study_web.log;
error_log /home/code/study_web/logs/study_web.error;
#将所有请求转发给demo_pool池的应用处理
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8001;
}
}
这个需要在后台一直运行的话可以使用linux自带的nohup命令 到有manage.py文件夹下面运行:
1
nohup python manage.py &
不推荐这种方案。
方案二:推荐
1、nginx配合uwsgi的配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#网站一端口转发
server {
listen 80;
server_name www.blog.com;
access_log /home/code/blog_web/logs/blog_web.log;
error_log /home/code/blog_web/logs/blog_web.error;
#将所有请求转发给demo_pool池的应用处理
location / {
include uwsgi_params;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
uwsgi_pass 127.0.0.1:8000;
}
}
#网站二端口转发
server {
listen 80;
server_name www.study.com;
access_log /home/code/study_web/logs/study_web.log;
error_log /home/code/study_web/logs/study_web.error;
#将所有请求转发给demo_pool池的应用处理
location / {
include uwsgi_params;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
uwsgi_pass 127.0.0.1:8001;
}
}
2、blog网站uwsgi配置
blog的uwsgi配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[uwsgi]
# chdir — 项目所在的目录
chdir=/home/code/blog_web
# virtualenv — 项目虚拟环境的目录
virtualenv = /home/blogenv
# 启动的model
module = manage:app
# 启动文件
wsgi-file=manage.py
callable=app
#启动一个master进程来管理其他进程,以上述配置为例,其中的4个uwsgi进程都是这个master进程的子进程,如果kill这个master进程,相当于重启所有的uwsgi进程
master=true
#进程数量
processes = 4
#线程数量
threads=2
###使进程在后台运行,并将日志打到指定的日志文件或者udp服务器,日志文件会自动创建
daemonize=/var/log/uwsgi/blog_web.log
#其中socket是用来uwsgi与nginx之间通信的
socket = 127.0.0.1:8000
3、学习 网站uwsgi配置
学习网站uwsgi配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[uwsgi]
# chdir — 项目所在的目录
chdir=/home/code/study_web
# virtualenv — 项目虚拟环境的目录
virtualenv = /home/studyenv
# 启动的model
module = manage:app
# 启动文件
wsgi-file=manage.py
callable=app
#启动一个master进程来管理其他进程,以上述配置为例,其中的4个uwsgi进程都是这个master进程的子进程,如果kill这个master进程,相当于重启所有的uwsgi进程
master=true
#进程数量
processes = 4
#线程数量
threads=2
###使进程在后台运行,并将日志打到指定的日志文件或者udp服务器,日志文件会自动创建
daemonize=/var/log/uwsgi/study_web.log
#其中socket是用来uwsgi与nginx之间通信的
socket = 127.0.0.1:8001
推荐方案:也是我现在用的方案。
部署一个网站可以参考文章《Flask项目部署》
原创出品,喜欢可以收藏转载哦!!!
作者:lizhonglin
github: https://github.com/Leezhonglin/
blog: https://leezhonglin.github.io/
————————————————
版权声明:本文为CSDN博主「Li-boss」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33196814/article/details/86307939
浙公网安备 33010602011771号