一:安装nginx

1:安装编译工具及库文件

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

2:安装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

3:安装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 \
--with-http_stub_status_module \
--with-http_gzip_static_module
make && make install

4判断nginx是否安装成功

/usr/local/nginx/sbin/nginx -v

二:安装uwsgi

1:安装uwsgi

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

2:判断uwsgi是否安装成功

uwsgi --version

三:Nginx+uwsgi部署Django项目

1:uwsgi配置

vim test.ini

test.ini文件中内容如下:

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

2:nginx配置

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

3:启动服务

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

4:判断是否配置成功

在浏览器访问local.test.com 如果访问异常可能是防火墙问题

解决:

#开放指定端口
/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 #开机时关闭防火墙

huaweichenai
635 声望114 粉丝