Nginx proxy、rewrite、alias配置过程

 更新时间:2024年06月04日 15:27:02   作者:无极之岚  
这篇文章主要介绍了Nginx proxy、rewrite、alias配置过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

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/;
}

Nginx的proxy_pass、root、alias的说明

代理配置:

1、root

root配置代理路径时,会在代理的地址后拼接配置字段:

location /static {
        root static/image;
}

在访问http://ip:port/static/*.*时会映射到http://ip:port/static/static/image/*.*

2、alias(只能用于location)

alias配置代理路径时,直接替换代理地址:

location /static {
         alias static/image;
}

在访问http://ip:port/static/*.*时会映射到http://ip:port/static/image/*.*

3、proxy_pass

proxy_pass配置代理路径时,直接替换整个代理路径,包括ip地址的端口等:

location /static {
        proxy_pass http://ip_two:port_two/static;
}

在访问http://ip:port/static/*.*时会映射到http://ip_two:port_two/static/static/*.*

代理路径后不带斜杠时,配置路径会替代原本的ip和端口等,并拼接代理地址。

代理路径后带斜杠时,配置路径会替代原本的ip和端口等,不拼接代理地址。

location /static/ {
        proxy_pass http://ip_two:port_two/abc/;
}

在访问http://ip:port/static/*.*时会映射到http://ip_two:port_two/abc/*.*

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Nginx报错104:Connection reset by peer问题的解决及分析

    Nginx报错104:Connection reset by peer问题的解决及分析

    最近恰好又遇到这了个错误,为了加深记忆,所以记录下我遇到这个错误的主要原因,下面这篇文章主要给大家介绍了关于Nginx报错104:Connection reset by peer问题的解决及分析的相关资料,需要的朋友可以参考下
    2022-07-07
  • Nginx内存占用过高排查与处理过程

    Nginx内存占用过高排查与处理过程

    Nginx内存使用率过高就像是一场暴风雨,会给我们的网站和应用带来不小的麻烦,但只要我们能够冷静分析,找出问题的根源,对症下药,就一定能够化解危机,所以本文给大家介绍了Nginx内存占用过高排查与处理过程,需要的朋友可以参考下
    2025-08-08
  • Nginx动态IP黑名单的实现步骤

    Nginx动态IP黑名单的实现步骤

    为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单,本文主要介绍了Nginx动态IP黑名单的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2025-02-02
  • Rhit高效可视化Nginx日志查看工具

    Rhit高效可视化Nginx日志查看工具

    一个格式化 Nginx 日志,可快速阅读、查看 Nginx 日志的工具。 可以每秒处理百万行日志数据,感兴趣的可以了解一下
    2021-10-10
  • 详解使用ChatGPT解决Nginx反向代理的问题

    详解使用ChatGPT解决Nginx反向代理的问题

    这篇文章主要为大家介绍了使用ChatGPT解决Nginx反向代理的问题详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Nginx服务器的location指令匹配规则详解

    Nginx服务器的location指令匹配规则详解

    这篇文章主要介绍了Nginx服务器的location指令匹配规则,文中介绍了一种动静态地址分离的方法示例,需要的朋友可以参考下
    2015-12-12
  • nginx实现tomcat动静分离详解

    nginx实现tomcat动静分离详解

    本篇文章主要介绍了nginx实现tomcat动静分离详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • nginx+keepalived实现高可用实践

    nginx+keepalived实现高可用实践

    keepalived是一个集群管理工具,保证集群高可用,通过VRRP协议选举出主节点,保证业务连续性,文中以部署Nginx+Keepalived高可用集群为例,详细描述了部署过程
    2026-05-05
  • 503 service unavailable错误解决方案讲解

    503 service unavailable错误解决方案讲解

    这篇文章主要介绍了503 service unavailable错误解决方案讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • nginx结合openssl实现https的方法

    nginx结合openssl实现https的方法

    这篇文章主要介绍了基于nginx结合openssl实现https的方法,准备工作大家需要安装nginx服务,具体操作过程跟随小编一起看看吧
    2021-07-07

最新评论