centos7搭建nginx+uwsgi运行django环境

环境:

CentOS 7

nginx/1.9.12

Python 2.7.5

一:安装依赖包5

yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel 
sqlite-devel readline-devel tk-devel python-pip  -y

二:安装uwsgi

uwsgi:https://pypi.python.org/pypi/uWSGI

uwsgi参数详解:http://uwsgi-docs.readthedocs.org/en/latest/Options.html pip install uwsgi uwsgi --version

三:测试uwsgi是否正常:

新建test.py文件,内容如下:

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')]) return "liuyao" 然后在终端运行: uwsgi --http :8080 --wsgi-file test.py 在浏览器内输入:http://127.0.0.1:8080, 看是否有“liuyao”输出,若没有输出,请检查你的安装过程。

四:安装django

pip install django

测试django是否正常,运行:

django-admin.py startproject newsite
cd newsite
python manage.py runserver 0.0.0.0:8000 在浏览器内输入:http://127.0.0.1:8000,检查django是否运行正常。

五:安装nginx

1.下载
wget http://nginx.org/download/nginx-1.9.12.tar.gz
2.解压
tar xf nginx-1.9.12.tar.gz cd nginx-1.9.12.tar.gz 3.编译 ./configure --prefix=/usr/local/nginx-1.9.12 \ --with-http_stub_status_module \ --with-http_gzip_static_module 4.安装 make && make install 注:您可自行改变参数设置,具体请上官网学习,如果已经存在nginx服务,那么此步可省略

六:配置uwsgi

uwsgi支持ini、xml等多种配置方式,但个人感觉ini更方便:

/ect/目录下新建uwsgi.ini,添加如下配置:
[uwsgi]
socket = 127.0.0.1:9090 //运行端口号 master = true //主进程 vhost = true //多站模式 no-stie = true //多站模式时不设置入口模块和文件 workers = 2 //子进程数 reload-mercy = 10 vacuum = true //退出、重启时清理文件 max-requests = 1000 limit-as = 512 buffer-sizi = 30000 pidfile = /var/run/uwsgi.pid //pid文件,用于下面的脚本启动、停止该进程 daemonize = /日志目录/uwsgi.log 启动方式: uwsgi /etc/uwsgi.ini

七:设置nginx

找到nginx的安装目录,打开conf/nginx.conf文件,修改server配置

server {
        listen       80;      //设置网站运行端口
        server_name  localhost;  
        
        location / {            
            include  uwsgi_params;
            uwsgi_pass  127.0.0.1:9090; //必须和uwsgi中的设置一致 uwsgi_param UWSGI_SCRIPT newsite.wsgi; //入口文件,即wsgi.py相对于项目根目录的位置,“.”相当于一层目录 uwsgi_param UWSGI_CHDIR /newsite; //项目根目录, index index.html index.htm; client_max_body_size 35m; } }

注:
1.uwsgi脚本

请放在/etc/init.d/uwsgi 设置可执行

DESC="uwsgi daemon"
NAME=uwsgi
DAEMON=/usr/bin/uwsgi
CONFIGFILE=/etc/$NAME.ini
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
set -e [ -x "$DAEMON" ] || exit 0 do_start() { $DAEMON $CONFIGFILE || echo -n "uwsgi running" } do_stop() { $DAEMON --stop $PIDFILE || echo -n "uwsgi not running" rm -f $PIDFILE echo "$DAEMON STOPED." } do_reload() { $DAEMON --reload $PIDFILE || echo -n "uwsgi can't reload" } do_status() { ps aux|grep $DAEMON } case "$1" in status) echo -en "Status $NAME: \n" do_status ;; start) echo -en "Starting $NAME: \n" do_start ;; stop) echo -en "Stopping $NAME: \n" do_stop ;; reload|graceful) echo -en "Reloading $NAME: \n" do_reload ;; *) echo "Usage: $SCRIPTNAME {start|stop|reload}" >&2 exit 3 ;; esac exit 0

八:测试

OK,一切配置完毕,在终端运行

/etc/init.d/uwsgi start
/usr/local/nginx/sbin/nginx -s reload 或者直接启动

在浏览器输入:http://127.0.0.1,恭喜你可以看到django的“It work”了~

九:多站配置

使用多个uwsgi服务的方法来实现多个站点。

重复第六步,创建uwsgi9091.ini,并相应修改文件中的

socket = 127.0.0.1:9091
pidfile = /var/run/uwsgi9091.pid daemonize = /日志目录/uwsgi9091.log

并且设置脚本 启动服务

然后新建nginx的配置文件为:

server {
    listen  8000;
    server_name 127.0.0.1;
    location / {            
        include  uwsgi_params;
        uwsgi_pass  127.0.0.1:9091; uwsgi_param UWSGI_SCRIPT oldsite.wsgi; uwsgi_param UWSGI_CHDIR /web/oldsite; index index.html index.htm; } } 然后我们就可以通过http://127.0.0.1:8000来访问新的网站了。

完毕!

环境:

CentOS 7

nginx/1.9.12

Python 2.7.5

一:安装依赖包5

yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel 
sqlite-devel readline-devel tk-devel python-pip  -y

二:安装uwsgi

uwsgi:https://pypi.python.org/pypi/uWSGI

uwsgi参数详解:http://uwsgi-docs.readthedocs.org/en/latest/Options.html pip install uwsgi uwsgi --version

三:测试uwsgi是否正常:

新建test.py文件,内容如下:

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')]) return "liuyao" 然后在终端运行: uwsgi --http :8080 --wsgi-file test.py 在浏览器内输入:http://127.0.0.1:8080, 看是否有“liuyao”输出,若没有输出,请检查你的安装过程。

四:安装django

pip install django

测试django是否正常,运行:

django-admin.py startproject newsite
cd newsite
python manage.py runserver 0.0.0.0:8000 在浏览器内输入:http://127.0.0.1:8000,检查django是否运行正常。

五:安装nginx

1.下载
wget http://nginx.org/download/nginx-1.9.12.tar.gz
2.解压
tar xf nginx-1.9.12.tar.gz cd nginx-1.9.12.tar.gz 3.编译 ./configure --prefix=/usr/local/nginx-1.9.12 \ --with-http_stub_status_module \ --with-http_gzip_static_module 4.安装 make && make install 注:您可自行改变参数设置,具体请上官网学习,如果已经存在nginx服务,那么此步可省略

六:配置uwsgi

uwsgi支持ini、xml等多种配置方式,但个人感觉ini更方便:

/ect/目录下新建uwsgi.ini,添加如下配置:
[uwsgi]
socket = 127.0.0.1:9090 //运行端口号 master = true //主进程 vhost = true //多站模式 no-stie = true //多站模式时不设置入口模块和文件 workers = 2 //子进程数 reload-mercy = 10 vacuum = true //退出、重启时清理文件 max-requests = 1000 limit-as = 512 buffer-sizi = 30000 pidfile = /var/run/uwsgi.pid //pid文件,用于下面的脚本启动、停止该进程 daemonize = /日志目录/uwsgi.log 启动方式: uwsgi /etc/uwsgi.ini

七:设置nginx

找到nginx的安装目录,打开conf/nginx.conf文件,修改server配置

server {
        listen       80;      //设置网站运行端口
        server_name  localhost;  
        
        location / {            
            include  uwsgi_params;
            uwsgi_pass  127.0.0.1:9090; //必须和uwsgi中的设置一致 uwsgi_param UWSGI_SCRIPT newsite.wsgi; //入口文件,即wsgi.py相对于项目根目录的位置,“.”相当于一层目录 uwsgi_param UWSGI_CHDIR /newsite; //项目根目录, index index.html index.htm; client_max_body_size 35m; } }

注:
1.uwsgi脚本

请放在/etc/init.d/uwsgi 设置可执行

DESC="uwsgi daemon"
NAME=uwsgi
DAEMON=/usr/bin/uwsgi
CONFIGFILE=/etc/$NAME.ini
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
set -e [ -x "$DAEMON" ] || exit 0 do_start() { $DAEMON $CONFIGFILE || echo -n "uwsgi running" } do_stop() { $DAEMON --stop $PIDFILE || echo -n "uwsgi not running" rm -f $PIDFILE echo "$DAEMON STOPED." } do_reload() { $DAEMON --reload $PIDFILE || echo -n "uwsgi can't reload" } do_status() { ps aux|grep $DAEMON } case "$1" in status) echo -en "Status $NAME: \n" do_status ;; start) echo -en "Starting $NAME: \n" do_start ;; stop) echo -en "Stopping $NAME: \n" do_stop ;; reload|graceful) echo -en "Reloading $NAME: \n" do_reload ;; *) echo "Usage: $SCRIPTNAME {start|stop|reload}" >&2 exit 3 ;; esac exit 0

八:测试

OK,一切配置完毕,在终端运行

/etc/init.d/uwsgi start
/usr/local/nginx/sbin/nginx -s reload 或者直接启动

在浏览器输入:http://127.0.0.1,恭喜你可以看到django的“It work”了~

九:多站配置

使用多个uwsgi服务的方法来实现多个站点。

重复第六步,创建uwsgi9091.ini,并相应修改文件中的

socket = 127.0.0.1:9091
pidfile = /var/run/uwsgi9091.pid daemonize = /日志目录/uwsgi9091.log

并且设置脚本 启动服务

然后新建nginx的配置文件为:

server {
    listen  8000;
    server_name 127.0.0.1;
    location / {            
        include  uwsgi_params;
        uwsgi_pass  127.0.0.1:9091; uwsgi_param UWSGI_SCRIPT oldsite.wsgi; uwsgi_param UWSGI_CHDIR /web/oldsite; index index.html index.htm; } } 然后我们就可以通过http://127.0.0.1:8000来访问新的网站了。

完毕!

猜你喜欢

转载自www.cnblogs.com/fyy-hhzzj/p/9051972.html