一:装置 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 #开机时敞开防火墙