Nginx部署
前面我们安装了 Nginx
,先来试试安装是否正常。启动 nginx 服务:
(env) root@ecs-368a:/home/sites/WF/wf# sudo service nginx start
l浏览器打开公网ip
Nginx 欢迎界面出现了,神奇吧。但这个默认配置显然是不能用的,所以需要重新写 Nginx 的配置文件。进入 /etc/nginx/sites-available
目录,这里是定义 Nginx 可用配置的地方。输入指令 `sudo vi WF创建配置文件并打开 vim编辑器:
(env) ~$ cd /etc/nginx/sites-available
(env) /etc/nginx/sites-available$
(env) /etc/nginx/sites-available$ sudo vi 网站
#或者直接:vim /etc/nginx/sites-available/网站
#输入以下命令
server {
charset utf-8;
listen 80;
server_name 121.36.42.141; # 改成你的 IP
location /static {
alias /home/sites/网站/website-2-0/collected_static;
}
location /media {
alias /home/sites/网站/website-2-0/media;
}
location / {
proxy_set_header Host $host;
proxy_pass http://unix:/tmp/121.36.42.141.socket; # 改成你的 IP
}
}
配置中有3个规则:
如果请求 static 路径则由 Nginx 转发到目录中寻找静态资源
如果请求 media 路径则由 Nginx 转发到目录中寻找媒体资源
其他请求则交给 Django 处理
写好后就退出 vi
编辑器,回到命令行。因为我们写的只是 Nginx 的可用配置,所以还需要把这个配置文件链接到在用配置上去:
sudo ln -s /etc/nginx/sites-available/网站/etc/nginx/sites-enabled
如果报错,可以写
sudo ln -sf /etc/nginx/sites-available/网站/etc/nginx/sites-enabled
解释:
-s:是增加符号连接,起到一个连接作用
-sf:f作用是强制执行,也就意味着如果不存在就执行创建,存在就执行覆盖掉
测试下 nginx
配置是否正常:
(venv) ~$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
至此 Nginx 就配置好了,接下来搞定 Gunicorn
。
有的读者无论怎么配置都只能看到 Nginx 欢迎页面,有可能是 sites-enabled 目录中的 default 文件覆盖了你写的配置。将 default 文件删掉就可以正常代理自己的配置文件了。
如果把他删除后,输入nginx -t 报错:nginx: [emerg] open() "/etc/nginx/sites-enabled/default" failed (2: No such file or directory) in /u
原因是因为在 nginx.conf中,有一个include /ect/nginx/sites-enabled/; 把其注释就好了vim /etc/nginx/nginx.conf
然后 重启nginx服务
sudo service nginx reload
一般,部署完毕后,没有部署Gunicorn前,都是欢迎界面,不用管,等部署完毕后,就一样了
- 点赞
- 收藏
- 关注作者
评论(0)