一、反向代理

1、多域名跳转(location)
location / {
}
location /admin {
}
 
location / {
}
注意;web后面的"/",如果web为文件,没问题;如果web为文件夹就必须加斜杠,不然会出错。
 

2、rewirite(重定向)

server {
server_name www.test.com;
rewirite ^/(.*)$ http://www.newtest.com/$1 permanent;
}
将(.*)作为正则匹配的第一个分组,$1.
www.test.com/a/b/c.html =>www.newtest.com/a/b/c.html
 

3.alias(别名)

location /i {
alias /var/www/html/images/;
}
请求/i/a.jpg资源时,Nginx会在服务器上查找/var/www/html/images/a.jpg。
/i 就是/var/www/html/images/的别名,也就是 /i == /var/www/html/images/
与root的区别是:/i会作为根目录后面的资源。如上面root中的资源请求为:/var/www/html/images/i
 

4.location(定位)

location = / {
configaaaa
}
location / {
configaaaa
}
 
location ^~ /images/ {
configaaaa
}
location ~* \.(gif|jpg|jpeg|swk)$ {
configaaaa
}
各符号的含义:
~ 表示区分大小写,且匹配
~* 表示不区分大小写,且匹配
!~ 表示区分大小写,且不匹配
!~* 表示不区分大小写,且不匹配
* 表示任意
^ 表示开头
$ 表示结尾
. 需要转义
 
 

5、特殊

location / {
autoindex on; #目录列表
}
 
allow、deny允许和禁止某些ip
 

6、URL重写应用

if命令
比如,根据请求的资源存在与否进行URL重定向。
~ 表示区分大小写,且匹配
~* 表示不区分大小写,且匹配
!~ 表示区分大小写,且不匹配
!~* 表示不区分大小写,且不匹配
-f 和!-f 文件存在与否
-d 和!-d 目录存在与否
-e和!-e 文件或目录存在与否
-x和!-x 文件可执行与否
比如:
location ~* \.(gif|jpg|jpeg|swk)$ {
if (!-f $request_filename)
{
root /var/www/html/img;
}
 
if (!-f $request_filename)
{
root /var/www/html/imgaes;
}
}
会一次匹配,最后如果没有则会返回404错误。
 
rewrite命令
rewirite ^/(.*)$ http://www.newtest.com/$1 permanent;
最后一项为标记,常用的标记有:
last:表示完成rewrite之后搜索对应的URI或location
break:终止
redirect:302普通重定向
permanent :301永久重定向
 
set命令
一般为变量设置值。例如:
location / {
proxy_pass http://127.0.0.1:8000;
set $query $query_string;
rewirite /aaa http://www.newtest.com/?$query;
}
如果$query_string=111,如果请求/aaa则会重定向到http://www.nettest.com/?age=111
 
break命令
匹配到后,终止匹配

Nginx常用功能(5)的更多相关文章

  1. 3.Nginx常用功能介绍

    Nginx常用功能介绍 Nginx反向代理应用实例 反向代理(Reverse Proxy)方式是指通过代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并且从内部网络服 ...

  2. Nginx常用功能

    3.Nginx常用功能 3.1 反向代理服务器 3.1.1.demo2 a.我在tomcat下部署了一个javaweb项目,tomcat安装的服务器IP为:192.168.37.136,部署的项目在t ...

  3. Nginx常用功能配置二

    Nginx常用功能配置二 Nginx location匹配设置 location作用:可以根据用户请求的URI来执行不同的应用,根据用户请求的网站的地址URL匹配. location语法: locat ...

  4. Nginx常用功能配置一

    Nginx常用功能配置 参数include配置 说明:如果日常工作中server标签存在太多,可以采用include配置模式,Nginx的主配置文件包含的所有虚拟主机的子配置文件会统一放入extra目 ...

  5. nginx常用功能和配置

    nginx常用功能和配置 1.nginx常用功能和配置 1.1 限流 1.2 压力测试工具--Ab 1.2.1安装 1.2.2 测试 1.2.3 返回值 1.3 limit_conn_zone 1.4 ...

  6. 前端开发掌握nginx常用功能之rewrite

    上一篇博文对nginx最常用功能的server及location的匹配规则进行了讲解,这也是nginx实现控制访问和反向代理的基础.掌握请求的匹配规则算是对nginx有了入门,但是这些往往还是不能满足 ...

  7. nginx常用功能配置

    一.规范优化nginx配置文件 nginx的主配置文件为nginx.conf,主配置文件包含的所有虚拟主机的子配置文件会统一放入extra目录中,虚拟主机的配置文件按照网站的域名或功能取名,例如www ...

  8. 前端开发掌握nginx常用功能之server&location匹配规则

    nginx主要是公司运维同学必须掌握的知识,涉及到反向代理.负载均衡等服务器配置.前端开发尤其是纯前端开发来说对nginx接触的并不多,但是在一些情况下,nginx还是需要前端自己来搞:例如我们公司的 ...

  9. 5.8 Nginx 常用功能的配置

随机推荐

  1. gulp提高微信小程序开发效率

      最近公司要求把一套公众号项目的页面迁移到小程序,也就意味着要重新敲一份代码,不能更繁琐了,为了节省时间,提高迁移效率,就决定自己动手用gulp搭一个简易的小程序框架,再记录一下搭建过程.希望有大神 ...

  2. Python:list 和 array的对比以及转换时的注意事项

    Python:list 和 array的对比以及转换时的注意事项 zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-6-4 ...

  3. laravel基本信息

    1.Bundle是Laravel的扩展包组织形式或称呼.Laravel的扩展包仓库已经相当成熟了,可以很容易的帮你把扩展包(bundle)安装到你的应用中.你可以选择下载一个扩展包(bundle)然后 ...

  4. Linux简介,虚拟机安装,网络设置,桌面和vim安装

    Linux简介: linux代表系统内核.Linux系统指基于Linux内核的操作系统,由内核和程序结合组成.比较流行的发行版本由RedHat Linux.Fedora.Centos.Debian.U ...

  5. mongodb 复制集

    mongodb 复制集 复制集简介 Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写 ...

  6. awk 字符拼接

    i-6gdkkemx 2 2 #cat cpu.txt | awk '{print $1,$2"核"$3"G"}' i-6gdkkemx 2核2G

  7. 关于Qt Designer程序/UI文件打开未响应的解决方法

    最近完成一个项目,到最后关头用QtCreator无法打开UI文件,每次都未响应,用QtDesigner也无法启动 这个问题把我折磨了半天,最后才知道原来是要删除C:\Users\Administrat ...

  8. 实现WebSocket和WAMP协议的开源库WampSharp

    Websocket Application Messaging Protocol 协议:https://github.com/wamp-proto/wamp-proto 1. 基础档案 引入: WAM ...

  9. [置顶] android ListView包含Checkbox滑动时状态改变

    题外话: 在xamarin android的开发中基本上所有人都会遇到这个小小的坎,的确有点麻烦,当时我也折腾了好一半天,如果你能看到这篇博客,说明你和我当初也是一样的焦灼,如果你想解决掉这个小小的坎 ...

  10. ArcGIS 网络分析[8.4] 资料4 聚合——创建及打开网络数据集的类实现

    这篇是对前三篇的总结,因为网络数据集涉及的"点"太多了,我只能挑重点来设置,大家明白框架后可以自行寻求帮助文档添加功能. 我以C#类的形式给出,这个类包含很多种方法,因为本人的C# ...