13,nginx|13,nginx 常见问题
1,相同的server_name多个虚拟主机优先级访问
在多个虚拟机里面假如有多个server_name,那么他们的优先级是什么?
例子:
#/etc/nginx/conf.d文件夹文件排序方式
testserver1testserver2.conf#testserver1.conf
server{
listen 80;
server-name testserver1waliblog.com;
location{
root /opt/app/code1;
indexindex.html;
}
}
#testserver2.conf
server{
listen 80;
server_nametestserver2waliblog.com;
location{
root /opt/app/code2;
indexindex.html;
}
}
当多个相同的server_name时,nginx会按读取/etc/nginx/conf.d文件下面配置文件先后来决定的,所以testserver1.conf会被优先读取,会默认访问 /opt/app/code1
2,location匹配优先级
匹配规则 描述
=进行普通字符精确匹配,也就是完全匹配
^~表示普通字符匹配,使用前缀匹配
~ \~*表示执行一个正则匹配(),(~)不区分大小写,(~*)区分大小写
优先级从高到低
实例:
location =/code1/{
rewrite ^(.*)$ /code1/index.html break1;
}
location ~/code.*{
rewrite ^(.*)$ /code3/index.html breake1;
}
location ^~/code.*{
rewrite ^(.*)$ /code2/index.html breake1;
}
nginx会优先匹配顺序第一个,第三个,第二个
3,try_files的使用:
按顺序检查文件是否存在
例子·,
location / {
try_files$uri$uri / / index.html;
}
首先会查找uri/,如果还不存在就会查看/index.html文件是否存在,存在则返回。不存在就会返回404
例子2
location / {
root/opt/app/code1/cache;
try_files $uri @wail;
}
location @wail{
proxy_pass http://127.0.0.1:8080;
}
4,alias和root区别
alias和root 都是定义访问根路径
root
location /blog/image/ {
root /opt/app/image;
}
当访问的路径是
当访问的路径是`[http://www.walidream.com/blog/image/cat.png](http://www.walidream.com/blog/image/cat.png)`时,实际上访问的路径是`[http://www.walidream.com/opt/app/image/blog/image/cat.png](http://www.walidream.com/opt/app/image/blog/image/cat.png)`
alias
location /blog/image/{
root /opt/app/image/;
}
当访问的路径是`[http://www.walidream.com/blog/image/cat.png](http://www.walidream.com/blog/image/cat.png)`时,实际上访问的路径是`[http://www.walidream.com/opt/app/image/cat.png](http://www.walidream.com/opt/app/image/cat.png)`没有了`/blog/image/`路径。
5,如何获取用户的真实ip
文章图片
3.jpg 当客户端访问服务器时,不是直接访问,而是经过了层层代理之后访问的服务器,我们应该如何精准的获取客户端的ip?
在一级代理时设置x-Real_Ip=$remote_addr,然后在其他代理透传下去,就可以获取用户真实的ip;
6,nginx中常见的错误代码
【13,nginx|13,nginx 常见问题】6.nginx中常见的错误码
状态码 描述
301 永久重定向
302 临时重定向
403 禁止访问
404 未找到文件
413 用户上传文件限制client_max_body_size
500 服务器遇到错误,无法完成请求
502 后台服务无响应
504 后台服务执行超时
推荐阅读
- Hive常见问题汇总
- 监控nginx
- 产品之|产品之 2B、2C与2G
- redis|redis 常见问题一
- Linux|Linux 服务器nginx相关命令
- Nginx|Nginx Tomcat 构造https服务应对苹果要求
- 继续休息
- Nginx详细教程
- Nginx进阶(1)——nginx本地代理配置访问node服务
- linux操作集-配置keepalived+nginx实现双机热备