这一篇教程,我们一起来了解如何在Ubuntu系统中将Django2的Web项目部署到Nginx服务器。
首先,大家可以参考《 Django2:Web项目开发入门笔记(13) 》先完成以下准备工作。
安装Ubuntu系统并更新apt-get 安装Python3.6与依赖 安装Django2.0.3 安装Sqlite3与依赖 安装OpenSSL等相关依赖也就是说,除了Apache2和mod_wsgi之外全部都需要安装。
完成上述内容的安装之后,再将项目文件放入 /var/www 目录中,我们就可以开始Nginx的安装了。
一、安装Nginx和依赖
执行命令: sudo apt-get install nginx sudo apt-get install libpcre3 libpcre3-dev
二、安装uwsgi
执行命令: cd /usr/local/lib/python3.6/site-packages/ sudo python3.6 pip install uwsgi
三、测试uwsgi
先在 /var/www 目录中创建一个测试文件。
执行命令: sudo chmod 777 /var/www cd /var/www sudo vi mytest.py
在VI编辑器中,我们输入测试文件的代码。
示例代码:
def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return [b'UWSGI Test...']
代码输入完毕,按“ESC”键并键入“:wq”回车,保存测试文件后,进行测试。
执行命令: sudo uwsgi --http :8888 --wsgi-file mytest.py
通过本机浏览器访问“http://127.0.0.1:8888”或者“http://localhost:8888”进行测试,如果页面中显示“UWSGI Test…”字样,则说明测试成功,uwsgi可以正常工作了。
如果,重复测试时,提示端口被占用,可以先将已启动的进程关闭。
先通过名称查询相关进程,然后通过“kill”命令将进程关闭。
执行命令: sudo ps -ef|grep uwsgi sudo kill -9 [端口号]
也可以使用“killall”命令通过名称关闭全部相关进程。
sudo killall -9 uwsgi
如果命令无效,可以先获取“root”权限,再进行尝试。
四、配置Nginx
首先,我们为项目添加配置文件。
执行命令: sudo vi /etc/nginx/sites-available/MyWeb.conf
在VI编辑器中写入配置文件内容。
server { listen 80; # 监听端口 server_name www.qqtbb.com; # 服务器名(多个域名用逗号分隔) charset utf-8; # 服务器字符集 client_max_body_size 5M; # 上传文件最大限制 location /media { # 媒体文件位置 alias /var/www/MyWeb/media; } location /static { # 静态文件位置 alias /var/www/MyWeb/static; } location / { # 为uwsgi协议提供支持(实现与uWSGI服务器通信) uwsgi_pass 127.0.0.1:8888; #为uWSGI服务器设置监听地址(套接字或sock文件) # uwsgi_pass unix:///var/www/MyWeb/MyWeb.sock; # 使用sock文件 include /etc/nginx/uwsgi_params; # 为uwsgi请求增加参数。 } }
内容输入完毕(使用时请先清除注释),按“ESC”键并键入“:wq”回车保存,然后将配置文件的快捷方式添加到 /etc/nginx/sites-enabled/ 目录中,激活配置文件。
查看更多关于Django2:Web项目开发入门笔记(16)的详细内容...