使用Nginx+Gunicorn部署Flask项目------从一个新的服务器开始

1.给服务器新增80端口的访问权限

 

2.在ubuntu或者xshell(推荐)下连接服务器

  1.  连接服务器  

              ssh [email protected]

    2. 在服务器/root目录下创建一个新目录作为工作环境,便于统一管理 

     3. 更新源: 

                  sudo apt-get update

     4. 更新pip,安装pip3,防止在安装包的时候出错 

               sudo apt-get install python3-pip

               sudo pip3 install --upgrade pip

3.在服务器安装redis: 

1.安装redis

      sudo apt-get install redis-server

2.测试是否安装成功

       redis-cli

4.在服务器上安装/配置Mysql

1.  sudo apt-get install mysql-server

  sudo apt-get install libmysqlclient-dev

会弹出提示,让输入root的密码,根据提示操作即可

2.进入mysql :

          mysql -uroot -p

3.创建项目所需的数据库
           create database NewsInformation_v2 charset utf8;

 5. 在服务器上安装--创建--进入虚拟环境

 1.安装虚拟环境    sudo pip3 install virtualenv 

                              sudo pip3 install virtualenvwrapper

 2.在/root/working/virtual下创建虚拟环境   

                      cd /root/working/virtual

                      virtualenv -p python3 newsinformation_flask

 3.开启虚拟环境

                      source /working/virtual/newsinformation_flask/bin/active

6 .将自己的项目项目克隆到/root/working/server中

1.克隆   git clone https://github.com/ywk94/NewsInformation-V2.git

如果提示没有安装git    安装一下  sudo apt-get install git

 2.进入到项目目录安装项目用到的Python包和库(保证自己当前处于newsinformation_flask的虚拟环境中)

             cd NewsInformation-V2

            pip3 install -r list.txt

7.在/root/working/server/NewsInformation-V2/目录下 进行 数据库 迁移 

    python manage.py db init 
    python manage.py db migrate -m "首次迁移数据库"
    python manage.py db upgrade

8.使用scp命令  将测试数据从   本地Ubuntu的桌面 传到  服务器的/root/working目录下  并导入  数据库  当中

 scp -r ~/Desktop/information_info_category.sql      root@服务器ip:/working

 scp -r  ~/Desktop/information_info_news.sql      root@服务器ip:/working

 进入mysql  导入测试数据

         use NewsInformation_v2

         source /root/working/information_info_category.sql;

         source /root/working/information_info_news.sql;

9.在/working/nginx下安装nginx

1. 进入到:cd /root/working/nginx  将nginx下载/解压 到当前目录

             1.wget http://nginx.org/download/nginx-1.5.9.tar.gz

             2.tar -zxvf nginx-1.5.9.tar.gz 

             3.cd nginx-1.5.9

             4.sudo apt-get install libpcre3 libpcre3-dev    # 新服务器不安装这个会报错:error: the HTTP rewrite module requires the PCRE library.

             5.   ./configure --prefix=/root/working/nginx    # 将nginx安装到 /root/working/nginx下

             6.  make               # make的过程是把各种语言写的源码文件,变成可执行文件和各种库文件

             7. make install          # make install是把这些编译出来的可执行文件和库文件复制到合适的地方

 2. 配置Nginx

            cd /root/working/nginx/conf

            sudo vi nginx.config           

            将第一行的  # 去掉  


   
   
   
   
  1. # 配置单台服务器
  2. server {                    # 接收外部请求的部分
  3.             listen       80;         # 监听外部浏览器访问的端口  重点: 安全组必须允许80端口访问
  4.             server_name  localhost;     # 代表外网访问域名
  5.             location / {                 # 代表过滤器,用于制定不同请求的不同操作
  6.                 proxy_pass http:// 127.0 .0 .1: 5000/;   # 反向代理到http:127.0.0.1:5000/(项目默认跑的ip和port)
  7.             }
  8.         }
  9.         

 

 

 3.重启 Nginx

          cd /root/working/nginx/sbin

          sudo nginx -s reload

nginx补充命令:

           干净卸载nginx

            命令:
                sudo apt-get --purge autoremove nginx
            命令:
                which nginx
            如果没有提示,证明卸载成功

10.安装Gunicorn安装

 pip3 install gunicorn   # 很重要  必须按照到当前虚拟环境,不然那会提示no module name flask等问题

11.以守护进程方式 运行项目

gunicorn -w 4 -b 127.0.0.1:5000 manage:app  -D

到这里就部署成功了

补充命令:gunicorn -w 4 -b 127.0.0.1:5000 manage:app --reload -D        #  重启gunicorn

                service redis-server restart        # 关闭服务器

 

 

你可能感兴趣的:(使用Nginx+Gunicorn部署Flask项目------从一个新的服务器开始)