现在遇到一个问题自己有两个网站需要发布,但是自己只有一台服务器,想要发布两个网站。自己研究了两种方案。
一个服务器部署多个网站。
方案一:不推荐
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/