首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Nginx server_name和location匹配规则

一、server_name匹配规则 1、Nginx的server_name匹配规则 ①匹配IP地址和listen指令指定的IP和端口; ②将Host头字段作为字符串匹配server_name指令; ③...将Host头字段与server_name指令值字符串的开始部分做匹配; ④将Host头字段与server_name指令值字符串的结尾部分做匹配; ⑤将Host头字段与server_name指令值进行正则表达式匹配...; ⑥如果所有Host头匹配失败,那么将会转向listen指令标记的default server; ⑦如果所有Host头匹配失败,并且没有default_server,那么将会转向满足第一步的第一个server...的listen指令。...1},location /prefix/ { 配置指令块2} 和 location ~ \.html$ { 配置指令块3} ,如果我们请求 GET /prefix/index.html ,则会被匹配到指令块

8K30

Nginx系列之server_name定义与匹配规则

Nginx系列之server_name定义与匹配规则 server_name用来指定请求中的Host头部,在上一节的基于域名的虚拟机中,nginx匹配的规则就是根据server_name的不同,结合请求头的...1. server_name的配置格式之通配符匹配 # nginx.conf server { listen 80; server_name *.example.org;...如果正则匹配中含有{和}则需要双引号引用起来,避免nginx报错,如果未加双引号,则nginx会报如下错误:directive "server_name" is not terminated by ";...3. server_name "*"; 它被错误地解释为万能的名称。 它从不用作通用或通配符服务器名称。相反,它提供了server_name_in_redirect指令现在提供的功能。...现在不建议使用特殊名称“ *”,而应使用server_name_in_redirect指令。 5. 匹配顺序 1. 精确的名字 2.

10.7K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Nginx】systemctl restart nginx失败

    这就是为什么新的 Nginx 实例启动失败,因为端口已经被占用。 要解决这个问题,可以按照以下步骤操作: 1. 确认 Nginx 已经在运行 已经看到 Nginx 正在监听端口 80。...杀死已有的 Nginx 进程 如果打算重新启动 Nginx,首先需要停止或杀死已经运行的 Nginx 进程。...确认所有 Nginx 进程已停止 使用以下命令确认没有 Nginx 进程还在运行: ps aux | grep nginx 如果输出中不再有 Nginx 进程,那么它们已经停止。 4....重新启动 Nginx 现在,可以尝试重新启动 Nginx: sudo systemctl start nginx 5....检查 Nginx 状态 确认 Nginx 已成功启动并且没有再遇到端口冲突: sudo systemctl status nginx 通过这些步骤,应该可以解决 Nginx 端口被占用的问题。

    27010

    nginx 配置优化指令

    worker_processes       worker_processes指令是用来设计Nginx进程数,官方默认设为1,赋值太多了,将会对系统IO影响效率,降低Nginx服务器性能。...于是适当增大此指令的赋值,允许nginx服务器接收较大的请求头部,可以改善服务器对客户端 的支持能力。一般将此指令设置为4KB....,默认off 驱动相关指定   use 参数详解:use指令用于指定Nginx服务器使用的事件驱动模型  worker_connections 该指令用于设置Nginx服务器的每个工作进程允许同时连接客户端的最大数量...此指令设置的就是Nginx服务器能接受的最大访问量,其中包括前端用户链接也包括其他链接,这个值在理论上等于此指令的值与它允许开启的工作进程最大数的乘积。...-p 这样Nginx 的worker_connections 指令赋值65535 就没问题了 worker_rlimit_sigpending  参数详解:该指令用于设置linux 2.6.6-

    92810

    nginx之location指令

    octet-stream;  keepalive_timeout 65;  gzip on;    server { //这个是服务器级别      listen 80;      server_name...p1 如下是错的: http://localhost/img/http://localhost/imgmde 3. ~ 表示:指定的正则表达式要区分大小写 server {server_name localhost...如下是错的:http://localhost/IMGhttp://localhost/img/http://localhost/imgde 4. ~* 表示:指定的正则表达式不区分大小写 server {server_name...内部重定向(internally redirected )如try_files或error_page等 看完上面的可以看下下面这个: server { listen 80; server_name...注意点 1. root 、alias指令区别: location /img/ { alias /var/www/image/;} 若按照上述配置的话,则访问/img/目录里面的文件时,ningx会自动去

    1.4K20

    Nginx核心模块常用指令

    此指令用于决定nginx是否以daemon方式运行,主要在开发环境中使用。...默认情况下,除了TZ变量外,nginx会移除所有从父进程继承而来的环境变量。 这个指令允许保留一些继承而来的变量或改变变量的值或创建新的变量。...nginx使用锁机制来实现accept_mutex然后将访问序列化到共享内存。在多数系统中锁是用原子操作实现的,这种情况下这个指令是被忽略的。...注意:如果使用的是kqueue的连接处理方法,那么开启这个指令是无效的。 pid 用法 pid 文件 默认值 pid nginx.pid; 在main块中使用。 用于定义存储主进程id号的文件。...这个指令从1.11.11版本开始才有。 配置worker进程优雅关闭前需要等待的超时时间。当超时时间已到,则nginx将尝试关闭所有当前已打开的连接用于关闭进程。

    77550

    nginx Server 节点常用指令

    比如 error_log syslog:server=192.168.1.1:1234 debug;,更多变量可看 http://nginx.org/en/docs/syslog.html 官网文档。...如果指定的条件计算为0或空字符串,那么该请求不会被写入日志设置 buffer 的目的,是为了避免高频对磁盘进行读写操作,即暂时先不将日志写入磁盘,而是存入内存中,等达到了设置缓存大小之后再一次性写入,注意 flush 指令是和...buffer 一起使用的,即指定 buffer=size 之后,如果超过 flush 指令设定的时间仍然未达到缓存区大小,则也会被写入到磁盘,没有 buffer 而只有 flush 则会报错。...此外,为了防止内存耗尽,nginx 每次创建一个新记录值的时候就会清理掉两个 60 秒内没被使用过的旧记录值。...如果包括多个文件,Nginx会根据文件的枚举顺序来检查,直到查找的文件存在;语法:index file ...

    22120

    Nginx学习日志(五)多个server_name匹配以及default_server的问题

    nginx 多个 server_name 如何匹配? 简单看这个问题,会觉得这个问题很蠢,怎么匹配?不就是根据 server_name 名字匹配的么?...是的,我最开始也是这么觉得的,并且在之前的笔记:Nginx学习日志(二)通过反向代理将不同域名映射到不同的端口 当中的记录也是根据名字匹配。...但是当我新解析一个域名:blog.hjljy.cn 到服务器上面的时候, nginx server_name 里面还没有来得及配置这个域名只配置了:www.hjljy.cn 这个域名,这时在浏览器输入...然后在 nginx 配置了多个 server_name ,访问对应的域名都可以跳转到对应的域名服务上去,情况符合之前写的笔记:Nginx学习日志(二)通过反向代理将不同域名映射到不同的端口 。...server { listen 80 default_server; server_name _; return 404; } ---- 标题:Nginx

    2.6K20

    Nginx - 记一次Nginx端口转发失败案例

    项目场景: 测试环境没有F5 ,直接配置的是Nginx的地址,且Nginx监听的默认端口80 。...但生产环境F5后面配置了4个Nginx , F5端口开放了 8585端口 ,用于将Http请求转发到Nginx上 . ---- 问题描述: 使用了测试环境的Nginx的配置文件,结果通过F5的ip+port...(8585)访问应用时,好多ajax请求错误 ---- 原因分析: 经排查端口都转发到了80上,可以推断是F5到Nginx这一层 是没有问题的,直接通过Nginx访问应用,好多应用也是跳转到了80上,因此怀疑是...Nginx的配置不正确导致的。...---- 解决方案: 如果使用的不是Nginx默认的80端口,比如我这里的8585 ,转发请求时有可能会丢失端口号,这里只要在host后面加上:server_port;即可 在HTTP请求的server

    3K20
    领券