Nginx proxy、rewrite、alias配置

proxy

一般解决跨域问题,使用Nginx进行proxy转发,也可以实现负载均衡。

# 代理根目录到内部应用
location / {
	proxy_pass http://127.0.0.1:8080;
}
# 代理模块到内部应用,可以带上后面拼接的路径,如果访问的是/order 则会进行一次301重定向,让浏览器访问/order/
location /order/ {
	proxy_pass http://127.0.0.1:8080/;
}
# 静态资源 
# 路径匹配 ^~为普通匹配,没有写也默认是普通匹配,所以可以不加
root /www/resources/static/;
location ^~ /static/ {
	root /www/resources/;
}
# 后缀,文件格式匹配
location ~*\.(gif|jpg|jpeg|png)${
	root /www/resources/;
}

location 的匹配取最长 最精确的那条。

rewrite

Nginx的rewrite模块即ngx_http_rewrite_module标准模块,主要功能是重写请求URI,也是Nginx默认安装的模块。

rewrite regrex replacement [flag]

匹配正则将其中regrex部分替换成replacement。而flag则表示替换的程度

  • last 匹配成功后,其余匹配不执行(可以重写多个)直接用新的URI进行下一跳,也会为新的URI进行location匹配。
  • break 停止rewrite的相关指令,但不进行location跳转。重写后的请求在一个location域中跳转。可能会有人觉得没啥用,但是有些场景就是需要在url上增加一个参数但页面不做显式刷新
  • redirect 响应请求头返回302,重写浏览器uri并进行临时重定向
  • permanent 响应请求头返回301,重写浏览器uri并进行永久重定向

为了避免一个请求经过两次WAF,又能实现转向到静态页面,用了 redirect重定向,让第二次请求由浏览器发出

location /download {
	rewrite /download index.html  redirect;
}

alias

vue的应用入口是index.html,打包后,访问nginx的80端口想要出这个网页,就需要配置alias

# 将/download请求 别名到/download/index.html页面,但是中间会发生一次301重定向重新访问/download/
location /download {
	index index.html;
	alias /static/;
}

静态资源别名

# 将/static/的文件都指向nginx 的/resource/static/文件夹
location /static/ {
	alias /resource/static/;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值