美文网首页django web
关于nginx+uwsgi部署的问题

关于nginx+uwsgi部署的问题

作者: python_spider | 来源:发表于2017-11-18 04:02 被阅读740次

1、搭建服务器虚拟环境

        1.1 从本地电脑进如虚拟环境,执行命令到处当前项目依赖的所有包的版本名称

                pip  freeze >install.txt

        1.2通常采用ftp软件将项目代码和install.txt文件上传到服务器,此处为简便采用scp命令

                scp  项目文件名   -r   服务器用户名@服务器地址:/服务器保存文件的路径/

        1.3 远程连接服务器,创建虚拟环境

                ssh   39.106.48.100   -l  root

        1.4 创建虚拟环境,在虚拟环境上安装包

                mkvirtualenv  虚拟环境名(如本项目虚拟环境名django3.5)

                pip  install -r install.txt

        1.5 创建完虚拟环境后通过虚拟环境进入项目目录进行调试:

                python   manage.py  runserver   0.0.0.0:8000

                                图(1)在虚拟环境中通过django启动项目

            在浏览器地址类输入39.106.48.100:8000查看效果如下:

图(2)启动django调试结果成功

2、 WSGI简介

        在生产环境中使用WSGI作为python web的服务器

        WSGI:全拼为Python Web Server Gateway Interface,Python Web服务器网关接口,是Python应用程序或框架和Web服务器之间的一种接口,被广泛接受。WSGI没有官方的实现,因为WSGI更像一个协议,只要遵照这些协议,WSGI应用(Application)都可以在任何服务器(Server)上运行

        项目默认会生成一个wsgi.py文件,确定了settings模块、application对象

application对象:在Python模块中使用application对象与应用服务器交互

settings模块:用于进行项目配置

        2.1 uWSGI的安装与配置

                uWSGI实现了WSGI的所有接口,是一个快速、自我修复、开发人员和系统管理员              友好的服务器。

                uWSGI代码完全用C编写,效率高、性能稳定

             2.1.1 安装uWSGI

                        pip install uwsgi

               2.1.2 配置uWSGI,在项目目录下创建uwsgi.ini文件,配置如下

                [uwsgi]

                使用nginx连接时使用

                socket=192.168.1.224:8080

                直接做web服务器使用

                    http=192.168.1.224:8080

                项目目录

                chdir=/home/shenxian01/

                项目中wsgi.py文件的目录,相对于项目目录

                wsgi-file=ixianpin/wsgi.py

                processes=4

                threads=2

                master=True

                pidfile=uwsgi.pid

                daemonize=uwsgi.log

                关于此配置文件的说明:http与socket之后的ip地址一般应填写公网ip,由于阿里云为           弹性ip也就是ifconfig之后只显示有内网地址没有公网地址,则此处填写内网地址而不能填           写公网地址,否则uwsgi不能正常启动。

              2.1.3 启动uwsgi

                        uwsgi  --ini   uwsgi.ini

                 启动之后再次进行调试,在浏览器输入地址:39.106.48.100:8080,效果如下

                                                    图2(1)启动uwsgi调试结果

                看到如图所示说明,uwsgi启动成功并正常工作

                查看

                ps  ajx|grep uwsgi

                如有错误查看uwsgi.log文件查看错误的问题然后予以解决

                效果如下图:

 图2(2)查看启动uwsgi后的进程

                uwsgi的停止

                uwsgi   –stop uwsgi.pid

3 、Nginx的安装与配置

        Nginx作为一款面向性能设计的HTTP服务器,不但在稳定性和性能方面相当出众,而且它模块化的设计让其具有异常灵活的扩展性。

使用nginx的作用主要包括负载均衡、反向代理

       3.1 安装:

        将提前从官网下载好的nginx上传到服务器,解压缩

        tar zxvf nginx-1.6.3.tar.gz

        进入nginx-1.6.3目录,一次执行一下命令安装

        ./configure

        make

        sudo make install

        3.2 配置

                 默认安装到/usr/local/nginx目录下,作为原始配置文件,我们一般不做修改,进入/etc/nginx/sites-available/目录下,复制default文件为django,修改django配置文件如下:

        server{

        listen 9000;

        location/ {

        include uwsgi_params;

        uwsgi_pass 192.168.1.224:8080;

        }

        location /static {

        alias/var/www/dailyfresh/static/;

        }

        然后建立软连接:

        ln  -s  /etc/nginx/sites-available/django    /etc/nginx/sites-enabled/

        3.3 启动

            service nginx start

            外网访问39.106.48.100校验nginx是否开启成功

图3-3(1)查看启动nginx效果

         如图所示则表示开启nginx成功

         修改/etc/nginx/sites-available/目录下的default文件,将默认监听的80端口改为9000,然 后同级目录下的的django文件,将测试设置的监听端口9000端口改为80端口,重新开启nginx服 务

        service nginx reload

        使用这个命令不需要停止nginx服务

       3.4 部署效果展示

            至此所有配置均已完成开始校验部署效果

图3-4(1)查看完整部署效果

相关文章

网友评论

    本文标题:关于nginx+uwsgi部署的问题

    本文链接:https://www.haomeiwen.com/subject/iposvxtx.html