Django+uWSGI+Nginx+Python3部署
1、公网访问配置
我们需要在浏览器中打开链接完成项目测试,由于不是本机测试,所以我们需要通过公网访问测试,在setting.py中修改输入:
DEBUG = False ALLOWED_HOSTS = ['*']
2、测试
>> python manage.py runserver 0.0.0.0:8888
成功运行后在浏览器中输入:http://IP:8888 进行测试,可以进行正常功能即可进行下一步。测试后按ctrl+c关闭测试进程
3、部署uWSGI服务器
1>安装
在命令行输入:
>> sudo pip install uwsgi
2>测试:
在本地写好如下的测试代码命名为 test.py,把文件用Xftp传到云主机任意目录下:
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return ["success!"]
在命令行输入:
>> uwsgi --http :8000 --wsgi-file test.py
在浏览器中打开:http://IP:8000 ,若出现“success!”则安装测试成功
3>配置文件
在manage.py同级的目录下创建uwsgi.ini文件,写下如下内容:
[uwsgi] # ****注意====>使用nginx连接时使用 socket=127.0.0.1:8000 # 直接做web服务器使用 # http=127.0.0.1:8000 # 项目目录 chdir=/home/python/Desktop/django_class_info/class_info # 项目中wsgi.py文件的目录,相对于项目目录 wsgi-file=class_info/wsgi.py processes=4 threads=2
# 停止服务自动删除pid文件
vacuum=ture
master=True pidfile=uwsgi.pid daemonize=uwsgi.log
# 配置虚拟环境
virtualenv=/home/python/.virtualenv/django_py3
4>服务启动
在命令行输入:
>> uwsgi --ini uwsgi.ini
出现如下结果为成功:

5>服务关闭
在命令行输入:
>> uwsgi --stop uwsgi.pid
4、部署Ningx服务器
1>下载
>> wget http://nginx.org/download/nginx-1.14.0.tar.gz
2>安装
解压:
>> tar -zxvf nginx-1.14.0.tar.gz
编译:
>> cd nginx-1.14.0/ >> ./configure
安装:
>> make >> sudo make install
3>服务启动
>> sudo /usr/local/nginx/sbin/nginx
注意:经典报错>>>
admin-1@ubuntu:/data/server/nginx# ./sbin/nginx -t ./sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file:No such file or directory
原因:nginx默认查找库文件路径有问题
解决:
admin-1@ubuntu:/data/soft/nginx-1.10.2# ldd /data/server/nginx/sbin/nginx linux-vdso.so.1 => (0x00007ffdb9154000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa59379b000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa59357e000) libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007fa593345000) libpcre.so.1 => not found libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa592f7c000) /lib64/ld-linux-x86-64.so.2 (0x0000564bfef41000) admin-1@ubuntu:/data/soft/nginx-1.10.2# find / -name "libpcre.so.1" /data/soft/pcre-8.39/.libs/libpcre.so.1 /usr/local/lib/libpcre.so.1 ...
建立软连接 admin-1@ubuntu:/data/soft/nginx-1.10.2# ln -s /usr/local/lib/libpcre.so.1 /lib/x86_64-linux-gnu/
检测: admin-1@ubuntu:/data/soft/nginx-1.10.2# /data/server/nginx/sbin/nginx -t nginx: the configuration file /data/server/nginx/conf/nginx.conf syntax is ok nginx: configuration file /data/server/nginx/conf/nginx.conf test is successful
4>测试
浏览器中访问:http://127.0.0.1
5>配置文件
listen 80;
server_name localhost;
location / {
#将所有的参数转到uwsgi下
include uwsgi_params;
#uwsgi的ip与端口
uwsgi_pass 127.0.0.1:8000;
}
location /static {
# 指定静态文件路径
alias /home/python/Desktop/django_class_info/class_info/static;
}
6>服务停止
>> sudo /usr/local/nginx/sbin/nginx -s stop
5、服务启动
删除文件:
>> rm uwsgi.pid uwsgi.log
服务启动顺序:
>> uwsgi --ini uwsgi.ini
>> sudo /usr/local/nginx/sbin/nginx
6、测试
浏览器中输入:127.0.0.1
浙公网安备 33010602011771号