CentOs7 + Nginx + Uwsgi + Django环境搭建
### 安装 gcc(如果已经有了可以不装):
yum -y install gcc
### 安装 g++(如果已经有了可以不装):
yum -y install gcc-c++
### 安装依赖库:
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel GeoIP gd libXpm libxslt sqlite-devel tcl-devel tk-devel opencv opencv-python bzip2-devel
############################################################
### 下载 nginx
wget -c http://nginx.org/download/nginx-1.13.5.tar.gz
### 解压nginx-1.13.5.tar.gz,并进入解压后的目录:
tar -xvf nginx-1.13.5.tar.gz
cd nginx-1.13.5
### 运行配置选项:
./configure --prefix=/usr/local/nginx
### 运行“make”编译 nginx :
### 安装nginx :
make install
### 创建软连接:
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
### 运行 nginx ,并查看进程:
nginx
ps –ef | grep nginx
### 访问 nginx :
浏览器中输入:http://服务器IP,若见到下面内容,说明nginx安装成功:
# 如果外面的IP不能访问,关闭防火墙:
systemctl stop firewalld.service
# 开通 80 端口:
在文件 /etc/sysconfig/iptables 中添加
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
添加后内容:
#########################################################
### 下载Python3.6 :
wget -c https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
### 解压:tar -xvf Python-3.6.0.tgz
### 进入目录:cd Python-3.6.0
### 运行配置:./configure --prefix=/usr/local --enable-shared
### 编译:make
### 安装:make install
### 创建软连接,将python指向phon3.6:
先删除原来的python 命令:rm -f /usr/bin/python
再创建:ln -s /usr/local/bin/python3.6 /usr/bin/python
### 创建动态库软连接:
ln -s /usr/local/lib/libpython3.6m.so.1.0 /usr/lib/libpython3.6m.so.1.0
并使动态库生效:
ldconfig –v
### 运行 python 看到为 3.6 版本:
### 创建 pip 软连接:
ln -s /usr/local/bin/pip3.6 /usr/bin/pip
##########################################################################
### 安装Django:
pip install django==1.11.4
### 在 /root 中创建 Django 工程:
django-admin startproject django_pro
测试运行django:
cd django_pro/
python manage.py runserver 0.0.0.0:8000
本地浏览器中输入:http://127.0.0.1:8000
出现下图所示,说明django运行正常
### Django实现Hello world :
在 urls.py 文件中添加:
from . import views
url(r'^helloworld/', views.helloworld),
如图所示:
与 urls.py 同级目录中新建文件:views.py
views.py内容如下:
# -*- coding: utf-8 -*-
from django.http import HttpResponse
def helloworld(request):
return HttpResponse('Hello World!!!')
运行django,在本地浏览器中输入:http://127.0.0.1:8000/helloworld/
出现下图运行结果说明成功。
#########################################################
### 安装 uwsgi :
pip install uwsgi --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple
### 测试 uwsgi 连接 django(注意:先把django服务关闭):
cd /root/django_pro
uwsgi --http :8000 --module django_pro.wsgi
在本地浏览器中输入:http://127.0.0.1:8000/helloworld/
出现下图运行结果说明uwsgi安装成功
##########################################################
### 新建uwsgi配置文件:/root/django_pro/ uwsgi.ini
内容如下:
[uwsgi]
chdir=/root/django_pro
module=django_pro.wsgi:application
master=True
pidfile=/root/django_pro/project-master.pid
vacuum=True
max-requests=5000
daemonize=/root/django_pro/uwsgi.log
socket=192.168.13.131:9090
buffer-size=65536
#######################################################
### 修改 ngnix 配置文件:/usr/local/nginx/conf/nginx.conf
在 http { } 括号中添加如下内容:
server {
listen 80;
server_name 192.168.13.131;
location / {
include uwsgi_params;
uwsgi_pass 192.168.13.131:9090;
}
}
注意:添加内容后要把nginx.conf中原先的 server{ listen 80;……} 配置删除或注释掉。
### 运行 uwsgi :
uwsgi --ini /root/django_pro/uwsgi.ini
### 运行nginx:nginx
若nginx 已经运行,重新加载配置信息:
nginx -s reload
### 使用外部浏览器访问:
http://xxx.xx.xx.xxx/helloworld
##########################################################
### 如果需要,修改 settings.py 配置:
DEBUG = False # 关闭 Django 测试:
ALLOWED_HOSTS = ["*"] # 允许所有IP访问
### 杀掉 uwsgi 进程,重新运行 uwsgi :
ps -ef | grep uwsgi
kill -QUIT xxx
uwsgi --ini /root/django_pro/uwsgi.ini
2018-04-02 21:41:32 | 张良 | 技术 & 提问 | 阅读1616次