Nginx常用功能(5)

作者:@skyflask
转载本文请注明出处:https://www.cnblogs.com/skyflask/p/7512670.html


目录

一、反向代理
2、rewirite(重定向)
3.alias(别名)
4.location(定位)
5、特殊
6、URL重写应用

一、反向代理

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命令
匹配到后,终止匹配
posted @   skyflask  阅读(414)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示