Python框架Flask+nginx环境搭建blog系统

1. Virtualenv
使用pip安装virtualenv:

# python2
pip install virtualenv
# python3
pip3 install virtualenv

mkdir ~/python
cd ~/python


创建虚拟环境的目录:

virtualenv venv
venv的目录是用来存放本地python的镜像,以及后面通过pip安装的包将安装到myenv目录里,而不是系统的目录里。
在安装之前,需要先激活刚刚建立的虚拟环境:
source venv/bin/activate

vagrant@vagrant:/htdocs/python$ source venv/bin/activate
(venv) vagrant@vagrant:/htdocs/python$


在虚拟环境中安装flask

(venv) www@ubuntu:~/myflask$ pip install flask

2. 编写Flask的hello.py

from flask import Flask

app = Flask(__name__)


@app.route("/")
def hello():
    return "Hello, World!"

if __name__ == '__main__':
    app.run(
      host='0.0.0.0',
      port= 5000,
      debug=True
    )

保存为:hello.py

3. uwsgi
在虚拟环境中安装uwsgi
注意:这里需要先安装两个依赖,我已经提前装好了,不再重复。安装指令:apt-get install build-essential python-dev
pip install uwsgi
编写uwsgi的配置文件,命名为uwsgi.ini,内容如下:


【注意】:http = :5000只是为了该阶段测试用,后面如果使用到nginx代理,则需要改为socket = 127.0.0.1:5000。
另外callable = app中的app要和flask的demo中的application变量名一致。

测试:应用config.ini启动uwsgi:


4. Nginx

上面已经介绍到使用uwsgi接管flask应用,现在我们需要使用nginx来代理,因此我们需要对uwsgi的配置做一些小修改,
先crtl+C关闭uwsgi服务。

server {
    listen 80;
    server_name lch.python.com;
    root "/htdocs/python/";

    location / {
        try_files $uri @em;
    }

    error_log  /var/log/nginx/lch.python.com-error.log error;

    location @em {
        proxy_connect_timeout 159s;
        proxy_send_timeout   600;
        proxy_read_timeout   600;
        proxy_buffer_size    64k;
        proxy_buffers     16 32k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size 64k;
        proxy_pass_header Set-Cookie;
        proxy_redirect     off;
        proxy_hide_header  Vary;
        proxy_set_header   Accept-Encoding '';
        proxy_ignore_headers Cache-Control Expires;
        proxy_set_header   Referer $http_referer;
        proxy_set_header   Host   $host;
        proxy_set_header   Cookie $http_cookie;
        proxy_set_header   X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        include      uwsgi_params;
        uwsgi_pass   127.0.0.1:5000;                                    # 指向uwsgi 所应用的内部地址,所有请求将转发给uwsgi 处理
        uwsgi_param UWSGI_PYHOME /htdocs/python/venv;   # 指向虚拟环境目录
        uwsgi_param UWSGI_CHDIR  /htdocs/python/;           # 指向网站根目录
        uwsgi_param UWSGI_SCRIPT hello:app;                     # 指定启动程序
    }
}

重启nginx:
sudo service nginx start

在windows的host文件中绑定:
192.168.33.10  lch.python.com

在ubuntu虚拟机中绑定:
127.0.0.1  lch.python.com

浏览器测试 访问:

 

 

 

好了,到此环境我们已经搭建好了,接下来我们要搭建一个web blog系统:

1.下载源码:

目录如下:

接着我们创建一个虚拟环境:

再看目录多了一个 venv目录,其实就是一个可以独立运行的环境而已!

2。安装框架

接下来我们来安装框架依赖的库:

大概有30多个库,一直让它安装完成。

3.设置系统账号

4.数据迁移

 

5.修改nginx配置:

server {
    listen 80;
    server_name lch.python.com;
    root "/htdocs/python/flask_script/";

    location / {
        try_files $uri @em;
    }

    error_log  /var/log/nginx/lch.python.com-error.log error;

    location @em {
        proxy_connect_timeout 159s;
        proxy_send_timeout   600;
        proxy_read_timeout   600;
        proxy_buffer_size    64k;
        proxy_buffers     16 32k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size 64k;
        proxy_pass_header Set-Cookie;
        proxy_redirect     off;
        proxy_hide_header  Vary;
        proxy_set_header   Accept-Encoding '';
        proxy_ignore_headers Cache-Control Expires;
        proxy_set_header   Referer $http_referer;
        proxy_set_header   Host   $host;
        proxy_set_header   Cookie $http_cookie;
        proxy_set_header   X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        include      uwsgi_params;
        uwsgi_pass   127.0.0.1:5000;  # 指向uwsgi 所应用的内部地址,所有请求将转发给uwsgi 处理
        uwsgi_param UWSGI_PYHOME /htdocs/python/flask_script/venv; # 指向虚拟环境目录
        uwsgi_param UWSGI_CHDIR  /htdocs/python/flask_script; # 指向网站根目录
        uwsgi_param UWSGI_SCRIPT manager:app; # 指定启动程序
    }
}


重启nginx.

6.修改

uwsgi.ini的内容如下:

[uwsgi]
master = true
#wsgi-file = /htdocs/python/hello.py
wsgi-file = /htdocs/python/flask_script/manager.py
callable = app
socket=0.0.0.0:5000
processes = 4
threads = 2
buffer-size = 32768
plugins=python
touch-reload=/htdocs/python/app

然后重启uwsgi服务。

最后让我再次打开浏览器,访问:http://lch.python.com/ ,可以看到我们搭建的web blog系统可以正常运行了。

好了,以上 就介绍了flask uwsgi nginx搭建环境和web框架的使用。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值