您现在的位置是:网站首页>>Python>>Django

Django Nginx+uwsgi 安装配置(实现域名访问)

发布时间:2018-08-09 18:06:49作者:wangjian浏览量:590点赞量:2

    一:安装python

    安装步骤可参考 Python安装 


    二:安装Django

    安装步骤可参考 Django安装


    三:安装uwsgi

    pip install uwsgi(pip3的话使用:pip3 install uwsgi)

    查看uwsgi版本:

    uwsgi --version

    测试 uwsgi 是否正常:

    (1):方法一

    新建一个test.py文件,内容为:


    def application(env, start_response):
        start_response('200 OK', [('Content-Type','text/html')])
        return [b"Hello World"] #python3
       #return ["Hello World"] # python2

    在终端运行:

    uwsgi --http :8001 --wsgi-file test.py

    在浏览器输入127.0.0.1:8001查看浏览器内容:

    image.png

    出现如上现象表示uwsgi安装成功。

    (2):方法二

    使用django生成一个django项目

    django-admin startproject myitem

    使用uwsgi运行django项目

    cd myitem
    uwsgi --http :8000 --module myitem.wsgi

    在浏览器输入127.0.0.1:8000查看浏览器内容:

    image.png

    django项目运行成功表示uwsgi安装成功


    四:安装nginx


    安装编译工具及库文件

    yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

    安装PCRE

    wget https://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
    tar zxvf pcre-8.35.tar.gz
    cd pcre-8.35
    ./configure --prefix=/usr/local/pcre
    make && make install

    安装nginx

    cd ~
    wget https://nginx.org/download/nginx-1.5.6.tar.gz
    tar -zxf nginx-1.5.6.tar.gz
    cd nginx-1.5.6
    ./configure --prefix=/usr/local/nginx-1.5.6 \
    --with-http_stub_status_module \
    --with-http_gzip_static_module
    make && make install

    判断nginx是否安装成功

    执行:

    /usr/local/nginx-1.5.6/sbin/nginx

    在浏览器上输入127.0.0.1,查看浏览器内容:

    image.png

    如上显示说明nginx安装成功


    五:Nginx+uwsgi实现django项目域名访问

    1.新建一个目录专门放你的uwsgi脚本文件,新建一个uwsgi脚本:

    cd /dara/www
    mkdir script
    cd script
    vim uwsgi9090.ini

    在uwsgi9090.ini文件中输入:

    # uwsig使用配置文件启动
    [uwsgi]
    socket = 127.0.0.1:9090
    master = true # 启用主进程
    vhost = true #多站模式
    #启动uwsgi的用户名和用户组
    uid=root
    gid=root
    # 指定静态文件
    static-map=/static=/data/www/myitem/static
    no-site = true #多站模式时不设置入口模块和文件
    workers = 2 #子进程数
    reload-mercy = 10
    vacuum = true #退出、重启时清理文件
    max-requests = 1000
    limit-as = 512
    buffer-size = 30000
    pidfile = /data/www/script/uwsgi9090.pid #pid文件,用于下面的脚本启动、停止该进程
    daemonize = /data/www/script/uwsgi9090.log  #日志文件
    pythonpath = /usr/local/lib/python3.6/site-packages #Python环境地址

    参数解释:

    2.在nginx的conf目录下新建一个vhost目录,专门用于管理域名

    (1)在nginx.conf中引入vhost目录下信息,在nginx中添加

    include vhost/*.conf;

    (2)在vhost下新建一个local.python.com.conf文件,输入:

    server {
            listen       80;
            server_name  local.python.com;
            
            location / {            
                include  uwsgi_params;
                uwsgi_pass  127.0.0.1:9090;  #必须和uwsgi中的设置一致           
                uwsgi_param UWSGI_SCRIPT myitem.wsgi; #入口文件,即wsgi.py相对于项目根目录的位置,“.”相当于一层目录
                uwsgi_param UWSGI_CHDIR /data/www/myitem;#项目根目录
                index  index.html index.htm;
                client_max_body_size 35m;
            }
        }

    3:输入命令实现域名访问

    输入如下命令


    killall -9 nginx   #停止nginx
    killall -9 uwsgi   #停止uwsgi
    uwsgi --ini /data/www/script/uwsgi9090.ini  #启动uwsgi脚本
    /usr/local/nginx-1.5.6/sbin/nginx #启动nginx

    (1)你可以在linux环境中测试:

    添加host:

    vim /etc/hosts

    在127.0.0.1那一行添加

    local.python.com

    在浏览器输入local.python.com

    显示如下:

    image.png


    (2):在windows机器上远程访问

    一。添加host在C:\Windows\System32\drivers\etc中的hosts文件添加

    192.168.11.136 local.python.com

    在浏览器输入local.python.com

    image.png


    如果没有访问成功可能是防火墙问题

    在服务端输入:

    /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
    /etc/rc.d/init.d/iptables save #保存配置 
    /etc/rc.d/init.d/iptables restart #重启服务
    
    关闭防火墙
    systemctl stop firewalld.service  #关闭防火墙
    systemctl disable firewalld.service #开机时关闭防火墙

    然后再次浏览成功

上一篇:nginx安装

下一篇:Django静态文件配置

2 +1