心情不好就少听悲伤的歌,饿了就自己找吃的,怕黑就开灯,想要的就自己赚钱买,即使生活给了你百般阻挠,也没必要用矫情放大自己的不易,现实就这么残酷。改变不了的事就别太在意,留不住的人就试着放弃,受了伤的心就尽力自愈,除了生死,都是小事,别为难自己。
配置项存放地址 /www/server/panel/vhost/nginx
命令1 sudo /etc/init.d/nginx start | stop | restart | status
命令2 sudo /etc/init.d/nginx start | stop | restart | status(可以用在Ubuntu中)
负载均衡
当用户量访问过大,可以将访问请求分散均匀转发到不同服务器处理。
反向代理
客户发过来的请求,nginx接收之后默默转发给其他服务器。
配置
# 固定格式
server
{
# listen 80;
# server_name _;
# index index.html;
# root /www/server/nginx/html;
......
# location后面的/相当于路由
location / {
#该项一定要禁,否则nginx会扫描整个文件目录,匹配路由中对应文件给用户。
#try_files $uri $uri/ =404;
# 所有/开头的请求都用uwsgi协议转发给127.0.0.1:8000的服务,比http协议更快
# 或者用socket套接字链接更快
# uwsgi_pass unix:/run/uwsgi/{projectName}.sock;
uwsgi_pass 127.0.0.1:8000;
# 如果需要用uwsgi协议,必须include一下uwsgi相关参数,固定写法,将所有参数转到uwsgi下
# 根据自己服务器nginx安装位置引入uwsgi_params文件。
include /www/server/nginx/conf/uwsgi_params;
}
}
配置保存后可以用 sudo nginx -t 检查配置项是否有误
nginx内监听80即可,但请求需要转发对接uwsgi监听端口,uwsgi_pass端口号必须与uwsgi.ini配置项内端口号相同。
常见问题
502:nginx反向代理成功,但是uwsgi没有启动或配置错误
404:路由不在Django路由中,或nginx配置错误,未注释try_files。
静态文件丢失:让nginx管理静态文件,加载效率比Django快很多。
处理静态文件丢失问题
- 在Django项目目录内兴建一个文件夹用于存放所有静态文件,如/home/项目名/项目名_static
- 在Django的settings.py中增加一个配置项“STATIC_ROOT = '/home/项目名/项目名_static/static'”
- 进入Django项目目录下,执行python3 manage.py collectstatic命令,Django会将所有静态文件统一规划到该配置目录内。
进入nginx配置加入以下内容。
# 固定格式 server { # listen 80; # server_name _; # index index.html; # root /www/server/nginx/html; ...... # location后面的/相当于路由 location / { #该项一定要禁,否则nginx会扫描整个文件目录,匹配路由中对应文件给用户。 #try_files $uri $uri/ =404; # 所有/开头的请求都用uwsgi协议转发给127.0.0.1:8000的服务,比http协议更快 # 或者用socket套接字链接更快 # uwsgi_pass unix:/run/uwsgi/{projectName}.sock; uwsgi_pass 127.0.0.1:8000; # 如果需要用uwsgi协议,必须include一下uwsgi相关参数,固定写法,将所有参数转到uwsgi下 # 根据自己服务器nginx安装位置引入uwsgi_params文件。 include /www/server/nginx/conf/uwsgi_params; } # location后面的/static相当于路由 # 告诉nginx,‘/static’下的网络请求统一到’/home/项目名/项目名_static‘目录下寻找相关文件 location /static { root /home/项目名/项目名_static; } }
美化404页面
当Django遇到客户随机输入的地址请求后如果没有对应网页给用户显示,则可以在模板文件夹内添加文件名为404.html的模板文件,当触发404时该网页会被显示给用户。该模板只在“DEBUG = False”时才起作用。