在服务器上简单配置flask+uwsgi+nginx(只是可工作~嘿)

来源:互联网 发布:java判断数字奇偶 编辑:程序博客网 时间:2024/06/09 03:56

在服务器上简单的实现了flask+uwsgi+nginx的配置,记录如下

思路:

  • 在服务器上安装LNMP包
  • 安装uwsgi
  • 配置

步骤:

  • 安装LNMP包

这个包包含了nginx/mysql这些,直接安上即可,具体就请移步到官网(http://lnmp.org/install.html),跟着教程做吧….(嘿嘿)….

  • 安装uwsgi

安装也很简单,直接一个命令就解决了~~

pip install uwsgi
  • 配置
    1.uwsgi配置:
    uwsgi_config.ini,我是放在我的网站文件夹中的(/web/uwsgi_config.ini),想着方便管理一点儿
[uwsgi]socket = 127.0.0.1:9090chdir = /home/www/webwsgi-file = View.pycallable = appprocesses = 4threads = 2stats = 127.0.0.1:9191

上面便是我的配置,其中socket是用来uwsgi与nginx之间通信的,所以要记住哟,后边儿要用这个,然后chdir是你的项目的文件夹,wsgi-file便是启动文件哟

2.nginx配置:(nginx.conf)

server{    listen 80;    server_name  www.example.cc;    location /{        include uwsgi_params;        uwsgi_pass  127.0.0.1:9090;        uwsgi_param   UWSGI_PYHOME /home/www/web/venv;        uwsgi_param   UWSGI_CHDIR  /home/www/web;        uwsgi_param   UWSGI_SCRIPT  View:app;    }}

看到这上面这个配置,一下又让我想到了当时自己以为server_name那里自己随便取个就行了….╮(╯▽╰)╭(基础太差…太菜……),在上面这个配置中UWSGI_PYHOME这项如果flask项目没有采用virtualenv貌似就不用写的,自我理解的是这个参数为了让uwsgi在运行flask项目的时候使用虚拟环境中的pyhon来解析~~
nginx.conf这个文件,我也是放在flask项目的根目录,便于管理,因为我配置的这个服务器上已经存在一个项目了,占用着80端口,所以这里又涉及到了nginx多个域名解析的操作,其实很简单,操作如下:

  • 在nginx的conf文件夹中新建一个文件夹vhost
mkdir /usr/local/nginx/conf/vhost
  • 打开nginx.conf文件,然后在http{}的最后添加’include vhost/*.conf’
vim /usr/local/nginx/conf/nginx.conf#添加include vhost/*.conf到http,如下:...http{    ...    include vhost/*.conf;}...
  • 最好执行如下命令即可完成配置:
sudo ln -s /home/www/web/nginx.conf /usr/local/nginx/conf/vhost
  • 以上几个步骤已经能够让服务器跑起来了,只是还需要一个东东才更方便,那便是supervisor,用它来引导uwsgi,它能够让uwsgi随同服务器启动并作为后台服务运行.
安装supervisor
sudo apt-get install supervisor
配置supervisor
[program:manager]command = /home/www/web/venv/bin/uwsgi /home/www/web/uwsgi_config.inidirectory = /home/www/webuser = rootautostart = trueautorestart = truestdout_logfile = /home/www/web/logs/uwsgi_supervisor.log

将上边儿这段代码保存为/home/www/web/supervisor.conf(还是保存在了我的网站根目录,接着执行下面命令,将它链接到/etc/supervisor/conf.d文件夹中

sudo ln -s /home/www/web/supervisor.conf /etc/supervisor/conf.d

最后启动supervisor,以及重启nginx

sudo service supervisor startsudo service nginx restart
0 0