您的位置:首页 > 运维架构 > Nginx

Flask+uwsgi+Nginx环境搭建

2017-09-27 23:54 471 查看
开源软件准备
需要的软件列表:
setuptools-33.1.1.zip
Python-2.7.13.tgz
pip-9.0.1.tar.gz
nginx-1.10.3.tar.gz
软件统一上传到/usr/local/src/下,python是使用自己编译的。



Python安装
先安装以下的软件(如果有的话,就可以不安装了,例如使用rpm -qa zlib-devel先查看下)
yum install zlib-devel -y
yum install openssl-devel -y

tar -zxvf解压
./configure --prefix=/usr/local/python #安装到/usr/local/python目录下。
make
make install

setuptool和pip安装
unzip解压setuptool
/usr/local/python/bin/python setup.py install

tar -zxvf解压pip
/usr/local/python/bin/python setup.py install

flask和uwsgi安装
使用pip安装flask和uwsgi
/usr/local/python/bin/pip install flask
/usr/local/python/bin/pip install uwsgi

nginx安装
先安装pcre-devel:
yum install pcre-devel -y

./configure --prefix=/usr/local/nginx
make && make install

nginx使用uwsgi配置
cat /usr/local/nginx/conf/nginx.conf

#user  nobody;
worker_processes  1;

events {
worker_connections  1024;
}

http {
include       mime.types;
default_type  application/octet-stream;
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
sendfile        on;
keepalive_timeout  65;
server {
listen       8080;
access_log  /usr/local/nginx/logs/flask_access.log main;
error_log /usr/local/nginx/logs/flask_error.log error;
client_max_body_size 200M;
location / {
include      uwsgi_params;
uwsgi_pass   unix:/dev/shm/uwsgi.sock;
index  index.html index.htm;
}
}

}


启动nginx:
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx

注意:uwsgi_pass unix:/dev/shm/uwsgi.sock;需要和uwsgi的配置相对应!

uwsgi配置
cat /root/uwsgi.ini
[uwsgi]
uid = root
gid = root
socket = /dev/shm/uwsgi.sock
chmod-socket = 666
enable-threads = true
master = true
plugins = /usr/local/python/bin/python
vhost = true
workers = 5
max-requests = 1000
pidfile = /var/run/uwsgi.pid
daemonize = /var/log/uwsgi.log
chdir = /root/ops_dev/
module = ops_dev
callable = app

启动uwsgi,有些报错没什么事:
/usr/local/python/bin/uwsgi /root/uwsgi.ini



编写测试样例进行测试
cat /root/ops_dev/ops_dev.py

# -*- coding: UTF-8 -*-
from flask import Flask
app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def index():
return 'Hello  world,Python ops_dev!'

编写完需要重启uwsgi,开改动代码都需要重启uwsgi,直接使用pkill进行重启即可:
pkill uwsgi

访问http://localhost:8080/进行测试。



访问日志记录(nginx和uwsgi的访问日志,可用来排错。):



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: