在上一节,我们知道了nginx的 default配置文件,了解root路径的意义,这次是基于python 的django框架详解一下django 之nginx部署,总的路线参考自强学堂的教程Django 部署(Nginx)。
我们着重看一下第五节配置nginx,因为前面四节都是django的内容,这里我对原文代码做了一点改动,主体思路不变。
新建项目
root@username:/# nano /etc/nginx/sites-available/project.conf //新建项目配置
写入以下内容,文件配置以下都有注释
server { //server描述
listen 80;
server_name www.example.com;
charset utf-8;
client_max_body_size 75M;
location /media { //媒体路径
alias /path/to/project/media;
}
location /static { //静态文件路径
alias /path/to/project/static;
}
location / { //uwsgi配置
uwsgi_pass unix:///home/yourroot;
include /etc/nginx/uwsgi_params;
}
}
这段文字节选自linux公社,描述server_name 目录设置
- server_name _; 使这是一个默认捕捉所有虚拟主机(当然,你可以同时喜欢这里www.example.com指定主机名)。
- 根目录 /var/www/html;意味着文档根目录/var/www/html.
不过上面那段代码是将各种文件名称都描述了,因为django项目有要求对静态文件,媒体文件分开,并且分开描述。
激活网站
root@username:# ln -s /etc/nginx/sites-available/project.conf /etc/nginx/sites-enabled/project.conf
测试配置语法问题
service nginx configtest 或 /path/to/nginx -t
重启nginx
service nginx reload 或 sudo service nginx restart 或 /path/to/nginx -s reload
补充一下linux中非常重要命令,请大家一定要熟悉。它的功能是为某一个文件或目录在另外一个位置建立一个同步的链接,类似Windows下的超级链接。
这个命令最常用的参数是-s,具体用法是:
sudo ln -s 源文件 目标文件