部署详细要点

一、软件硬件准备

1.硬件:

①购买任意云服务器:阿里云、华为云、百度云……

②云服务器:

* 注意:安全组开放http的80端口(其他相关端口需要时开启:如使用数据库需要开启3306)

* 修改安全组配置后,重启服务器保障修改成功。

* 软件源更新慢:

——》apt clean

——》apt update

* 切换软件源:

——》vim /etc/apt/sources.list

——》把其它源的地址都一股脑写进去

2.软件:

①XShell

*控制远程Linux主机,SSH工具(https://www.netsarang.com/download/down_form.html?code=622&downloadType=0&licenseType=1)

②Xftp

* 上传代码到远程主机

③Server环境

* Python-Web开发环境

安装pip:
sudo apt install python3-pip 
第三方依赖的移植:
pip3 freeze > requirements.txt
pip3 install -r requirements.txt

* 服务器

Nginx:
静态文件访问+反向代理(跳板机,保证安全)+负载均衡
apt install nginx
uwsgi:
安装:pip install uwsgi
(正向)http业务服务器

* 数据库

MySQL:
apt install mysql-server
apt install mysql-client
apt install libmysqlclient-dev
Redis:
apt install redis-server(server和client都会安装)

二、部署框架图

nginx+uwsgi+mysql+项目:


正向代理:


反向代理:


负载均衡:



三、uwsgi

1.Django配置

vi uwsgi(手动创建在工程下,不能同时启用2个uwsgi)---------------------------------------------
[uwsgi]
# 使用nginx连接时 使用
socket=127.0.0.1:8000
# 直接作为web服务器使用
;http=127.0.0.1:8080
# 配置工程目录
chdir=/root/django/Aixianfeng
# 配置项目的wsgi目录。相对于工程目录
wsgi-file=AixianfengDay01/wsgi.py

;wsgi-file = manage.py
;callable = app
;virtualenv = /apps/venvs/.axfmine

#配置进程,线程信息
processes=1
threads=1

;启用多线程
enable-threads=True
;允许主进程开子进程
master=True

;进程日志
pidfile=uwsgi.pid
;业务日志
daemonize=uwsgi.log
2.Flask配置
[uwsgi]
socket = 127.0.0.1:5000
wsgi-file = manage.py
callable = app

3.运行和停止

运行命令:
uwsgi --ini uwsgi.ini
停止运行:
uwsgi --stop uwsgi.ini(不怎么灵验)
寻找uwsgi主进程pid:
ps -ef | grep uwsgi
杀死uwsgi主进程,有效:
kill -9 XXX  
温馨提示:修改了代码或配置,都要杀死和重启uwsgi服务器

四、Nginx

1.关于

①简介

*Nginx是由伊戈尔.塞索耶夫开发的,于2004年10月4日公开源码,以类BSD许可证形式发布

*Nginx是一款轻量级、高性能的HTTP/反向代理服务器

*也是一个IMAP/POP3/SMTP服务器

*其特点是占用内存少,并发能力强,在同类型的网页服务器中表现优秀

*Nginx因它的稳定性,丰富的功能,示例配置文件和低系统资源的消耗而闻名

*中国大陆使用Nginx的网站:淘宝,京东,腾讯,百度,新浪,网易...

②Why Nginx

*作为We服务器:相比Apache,Nginx使用资源更少,支持更多的并发连接,体现更高的效率,使Nginx倍受欢迎,能够支持高达50000个并发连接数的响应

*作为负载均衡服务器:Nginx既可以在内部直接支持Redis和PHP,也可以支持作为HTTP代理服务器对外进行服务,Nginx使用C编写,不论是系统资源开销还是CPU使用效率都处理的非常优秀

*Nginx安装非常简单,配置文件非常简洁,Bug非常少:Nginx启动非常容易,并且几乎可以做到7 * 24小时不间断运行,即使运行数个月也不需要重新启动

③安装

* 源码编译安装:
./configure
make
make install
* apt安装:
apt install nginx

④参考

* 官网:
http://nginx.org/
* 中文资料:
http://tengine.taobao.org/book/

⑤静态资源服务

*开发者服务器默认集成了静态资源服务

*关闭后静态资源服务失效(只能处理动态代码)

*静态代码交给Nginx实现动静分离

*runserver是开发者服务器,生产环境使用——uwsgi

2.配置

* 寻找配置文件所在的位置:
whereis nginx.conf
find / -name nginx.conf
* 默认使用的配置文件:/etc/nginx/nginx.conf
* 自定义路径无法定位uwsgi_params(如果要给uwsgi做反向代理,就不能使用自定义位置的配置文件)
* 后台启动的相关配置(使用较少):/etc/init/nginx.conf
* 测试配置是否有效: 
nginx -t -c 配置文件的位置
nginx -t

配置样本1:

server {               
# 监听在80端口               
listen 80;                
# 主机地址         
server_name 39.108.89.249;          
# 如果有域名,可以使用域名代替主机地址      
# server_name www.blog.com blog.com;
          
# 接下来的都是路由派发        
# 访问路由就是主机地址时(反向代理)       
location /axf {               
#root /apps/www/MyBlog;               
#index app/templates/main/index.html;                
# 反向代理监听在127.0.0.1:8000位置的uwsgi服务器               
# 前提是uwsgi已经运行并监听在8000端口               
include uwsgi_params;               
uwsgi_pass 127.0.0.1:8000;       
}        
# 访问路由就是主机地址时(反向代理)       
location /blog {               
#root /apps/www/MyBlog;               
#index app/templates/main/index.html;                
# 反向代理监听在127.0.0.1:5001位置的uwsgi服务器               
# 前提是uwsgi已经运行并监听在8000端口               
include uwsgi_params;               
uwsgi_pass 127.0.0.1:5001;       
}        
# 访问静态资源(正向代理)            
location /static {          
#root html/blog;           
# 静态资源目录           
alias /apps/www/Aixianfeng/static;       
} 
# 访问指定文件夹下的任意资源(正向代理) 
location /fresh{    
alias /apps/www/fresh;     
# 默认访问某个页面    
index index.html; 
} 
# 纯前端小游戏(正向代理) 
location /2048{    
alias /apps/www/2048;    
index index.html; 
}    
}

配置样本2:

vi default(cd /etc/nginx/sites-enabled)-------------------------------------
server {
        #listen 80 default_server;
        #listen [::]:80 default_server;
        listen 80;      

       # root /root/django/love/; 
        #index index.html index.htm index.nginx-debian.html;

        #server_name _;
         server_name 47.106.201.6;

        location / {
              # alias /root/django/love/;
              # index index.html;   
              include /etc/nginx/uwsgi_params;
              uwsgi_pass 127.0.0.1:8000;
        }
         location /static {
               alias /root/django/Aixianfeng/static/;
        }
        location /love {        
                alias /root/django/love/;
                index index.html;

        }
}


3.Nginx指令

①启动:(若要成为uwsgi做反向代理,需提前启动uwsgi)
*nginx
②nginx -c 配置文件位置:
*使用指定的配置文件启动
*只有正向代理才能自定义配置文件位置
*如果配置文件不在/etc/nginx/下,就无法定位uwsgi_params
*如果要为uwsgi做反向代理,则配置文件位置最好使用默认位置(/etc/nginx/nginx.conf)
③nginx -t -c 配置文件的位置 :测试配置文件是否有效
④暴力停止:nginx -s stop
⑤正常退出:nginx -s quit
⑥重启(配置文件已经被修改):nginx -s reload

4.使用systemctl去操作Nginx

启动:systemctl start nginx
停止:systemctl stop nginx
重启:systemctl restart nginx
查看状态:systemctl status nginx
五、小结
1.阿里云/腾讯云默认只允许http开发80端口
2.nginx.conf只有在/etc/nginx/下时才能访问uwsgi_params(不一定是100%)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值