ngnix的简单转发请求之server和location配置详解
简单梳理一下nginx中关于server 和location的配置.
比如URL:www.mask_dev2.com:9999/login/
server管的前半部分,即:www.mask_dev2.com:9999
location管的是后半部分,即:/login/
一个nginx可以配置多个server。
每个server可以配置多个location。
URL的前半部分控制选择哪一个server,后半部分控制选择哪一个location,最终决定往哪里去请求.
server的配置
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
首先,请求nginx的地址,肯定是请求的nginx所在的服务器,也就是说ip是固定的。
也就是说,无所谓server_name是什么,都是指的当前服务器.
那么当前服务器是怎样对应多个域名呢,这个只需要在相应的dns服务器中进行添加,就行了,比如暂时把本机当成dns服务器,修改hosts
127.0.0.1 localhost
127.0.0.1 www.mask_dev2.cn
127.0.0.1 www.mask_dev2.com
server匹配顺序
server_name与host匹配优先级如下:
1、完全匹配
2、通配符在前的,如*.test.com
3、在后的,如www.test.*
4、正则匹配,如~^\.www\.test\.com$
如果都不匹配
1、优先选择listen配置项后有default或default_server的
2、找到匹配listen端口的第一个server块
location配置
找到server之后,再去找具体的location
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
语法规则:
location [=||*|^~] uri { … }
- = 开头表示精确匹配
- ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ static /aa匹配到(注意是空格)。
- ~ 开头表示区分大小写的正则匹配
- ~* 开头表示不区分大小写的正则匹配
- !和!*分别为区分大小写不匹配及不区分大小写不匹配 的正则
- / 通用匹配,任何请求都会匹配到。
- 多个location配置的情况下匹配顺序为(参考资料而来,还未实际验证,试试就知道了,不必拘泥,仅供参考):
首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
但是一般没有这么复杂,有3点。
- 默认请求。
- 页面请求.
- 后台逻辑请求.
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
总结
比如,现在同时启动 前台系统,和后台系统,就可以用两个server(可以配置host为api,admin,或者直接修改端口也可以),每个server中3个location来确定具体页面的请求.
ngnix的简单转发请求之server和location配置详解相关推荐
- CentOS Linux下VNC Server远程桌面配置详解
PS:偶以前基本不用Linux的远程图形桌面,前几天有开发的同事配置CentOS的vnc有问题,找我解决,就顺便记录总结一下,这个总结是比较完整的.下面的配置在CentOS5.x和6.x.SUSE企业 ...
- asp.net 获取计算机配置_PBI Report Server 部署与配置详解
12月18日追加:欢迎加入知乎-微软BI技术圈,一起讨论.分享包括PowerBI在内的一切BI话题! [前述]关于Power BI 报表服务器的安装与配置,国内外的教程有很多,但较为全面的介绍却少之又 ...
- IPTABLES简单应用说明和Linux下IPTABLES配置详解
如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [root@tp ~]# iptables -L -n C ...
- VNC CentOS Linux下VNC Server远程桌面配置详解
VNC概述 VNC (Virtual Network Console)是虚拟网络控制台的缩写.VNC 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的.VNC 是在基于 ...
- centos linux下vnc server远程桌面配置详解,CentOS 6.0 VNC远程桌面配置
引言: 必须明白: vncserver在调用的时候,会根据你的配置来启用server端的监听端口, 端口默认是从5900开始,再加上你的桌面号. 比如你的桌面号为1,则vnc的连接端口号为5900+1 ...
- VNC Server远程桌面配置详解
图形化界面展示,利于不习惯命令行人员操作,注意:实例均为root用户操作. 参考:https://blog.51cto.com/357355/615789 https://www.cnblogs.co ...
- Tomcat 的 Server 文件配置详解
转载自 Tomcat 的 Server 文件配置详解 前言 Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛.server.xml是Tomcat中最重要的配置文件, ...
- SQL Server DBA工作内容详解
原文:SQL Server DBA工作内容详解 在Microsoft SQL Server 2008系统中,数据库管理员(Database Administration,简称为DBA)是最重要的角色. ...
- ngnix的upstream模块配置详解
2019独角兽企业重金招聘Python工程师标准>>> ngnix的upstream模块配置详解 2017年04月04日 13:10:03 阿里-橙鹰-潘民兰 阅读数:15409 标 ...
最新文章
- 进程间通信IPC之--共享内存
- DBeaverEE7.3.0安装教程
- linux中多线程解析
- SQL SERVER学习笔记(二)数据库管理
- 贝叶斯分层回归模型的推理、EM求解和Java编程
- ubuntu 12.04 php5.3 降级为 5.2
- Nginx学习总结(14)——Nginx配置参数详细说明与整理
- 一篇google developer 安全介绍的翻译
- js中将html文档写入静态界面当中
- swoole实现Timer定时器、心跳检测及Task进阶实例:mysql连接池
- java awt 教程_JAVA教程第五讲AWT图形用户界面设计
- Windows10下安装linux(Utunbu)双系统
- 搜狗新闻爬取怎么破解反爬机制呀,求指教
- 一次搞定亚马逊 Used Sold as New 二手品申诉,速度 Get!
- 微软开始彻底封杀IE浏览器
- 真的羡慕玉自寒和烈如歌的爱情
- 基于MATLAB/Simulink的电力电子电路仿真技术——三相电流滞环跟踪逆变器
- 自己最近在补天测试总结的一般思路
- 基于STM32智能小车->电机驱动
- 〖Python接口自动化测试实战篇②〗- 摒弃 ‘捉虫师’ 称号 - 你需要重新认识软件测试
热门文章
- mha数据备份_MySQL备份与恢复之保证数据一致性(5)
- android 广播 event,无法接收android.intent.action.EVENT_REMINDER广播
- Python3机器学习工具包基础复习
- 2.1秒破百,马斯克宣称最安全、最快、最酷、最好的车,106个W,你会买单吗?
- sublime text3 常用配置
- 01背包、完全背包、多重背包问题的C++实现
- keil编译运行错误,缺少error:#5:#includecore_cm3.h_过路老熊_新浪博客
- java多线程-生产者消费者模式
- 【十】JDBC:使用 jmeter 批量在数据库创建 1 万多条数据;批量删除重复数据
- Android添加拍照功能,Android相机开发(二): 给相机加上偏好设置