关于博客搭建

2017-03-07 21:39:21 来源: devezhang 3

 

最新:暂时关闭使用手机号注册,目前在注册时只需填写用户名和密码即可,欢迎吐槽或发表您的优秀文章。

1,项目部署

      1、基于ubuntu 16.04系统,使用 Gunicorn + Nginx 进行布署,云服务器为阿里云

      为什么要用nginx:

            实现分流、转发、负载均衡必备神器

      nginx安装命令:

            sudo apt-get install nginx​

      nginx运行及停止命令: 

            /etc/init.d/nginx start #启动
            /etc/init.d/nginx stop #停止

      编辑nginx配置文件: 

            vi /etc/nginx/sites-available/default

            # 如果是多台服务器的话,则在此配置,并修改 location 节点下面的 proxy_pass 
 
            upstream flask {
                    server 127.0.0.1:5000;
                    server 127.0.0.1:5001;
            }
            server {
                    # 监听80端口
                    listen 80 default_server;
                    listen [::]:80 default_server;
                    root /var/www/html;
                    index index.html index.htm index.nginx-debian.html;
                    server_name _;
                    location / {
                            # 请求转发到gunicorn服务器
                            # proxy_pass http://127.0.0.1:5000;
                            # 请求转发到多个gunicorn服务器
                             proxy_pass http://flask;
                            # 设置请求头,并将头信息传递给服务器端
                             proxy_set_header Host $host;
                            # 设置请求头,传递原始请求ip给 gunicorn 服务器
                            proxy_set_header X-Real-IP $remote_addr;
                    }
            }
 

      2、为什么要用Gunicorn:

            Gunicorn(绿色独角兽)是一个Python WSGI的HTTP服务器
            该Gunicorn服务器与各种Web框架兼容,实现更轻量级的资源消耗

      安装命令:

            pip install gunicorn

      运行命令:

            # -w: 表示进程(worker) -b:表示绑定ip地址和端口号(bind)
            gunicorn -w 2 -b 127.0.0.1:5000 运行文件名称:Flask程序实例名​

 

2,服务器实例设置

      1、进入阿里云控制台,查看实例创建情况

      2、给安全组配置规则,添加5000端口,其中两个必填项分别为:

            端口范围:5000/5000,授权对象:0.0.0.0/0(另外一并加上5001端口)

      3、修改密码及远程连接密码,并重启服务器。

3,相关环境

      1、利用命令行进行远程服务器登录:

            ssh 用户名@ip地址

      2、更新 apt 相关源:

            sudo apt-get update

      3、mysql安装:

            apt-get install mysql-server
            apt-get install libmysqlclient-dev

      4、redis安装:

            sudo apt-get install redis-server

      5、安装虚拟环境:

            pip install virtualenv
            pip install virtualenvwrapper

      6、使安装的virtualenvwrapper虚拟命令生效,编辑~/.bashrc文件:

            vi ~/.bashrc​ 

            在末尾添加内容如下:

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
source /usr/local/bin/virtualenvwrapper.sh

      7、执行命令使编辑后的文件生效:

            source ~/.bashrc​

4,本地生成requirements.txt文件

      1、在本地虚拟环境中执行:

            pip freeze > requirements.txt

            目的:可以保存项目所有的依赖包及其精确的版本号,随项目一起上传服务器,以便在新环境中进行部署操作

      2、在服务器虚拟环境中运行以下命令:

            pip install -r requirements.txt​

            目的:可以安装所有项目运行的依赖包

      3、如果安装 Flask-MySQLdb 的时候报错,可能是依赖包没有安装,执行以下命令安装依赖包:

            sudo apt-get build-dep python-mysqldb

5,问题

      1、locale.Error解决命令 :

         export LC_ALL=C

      2、pip can't import main 解决:

         vi /usr/bin/pip​

         进入编辑后修改内容为:

            import re
            import sys
            from pip._internal import main as _main
            if __name__ == '__main__':
                  sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
             sys.exit(_main())​

 

 

已收藏取消收藏 收藏
登录发表你的评论
3条评论
用户图标 devezhang
谢谢支持,同时欢迎发表您的杰作
36kr
不错不错
2018-10-29 17:16:03
回复
用户图标 36kr
不错不错
2018-02-14 20:12:55
1 回复
用户图标 devezhang
第一次编辑文章,界面效果有待提高 ^..^
2017-03-07 23:32:52
1 回复
author_pic devezhang
签名:一名不羁的码农,我的世界不只有 Coding!记录编程、认知、思想!
总篇数20
粉丝3
关注

文章热度排行

用户名
用户名不能为空
密码(不少于6位)
密码不能为空

注 册

用户名
用户名不能为空
图形验证码
图形码不能为空
手机验证码
无须填写,可跳过此步
验证码不能为空
密码(不少于6位)
密码不能为空

同意使用条款,并已阅读"跟帖评论自律管理承诺书"

请勾选