nginx根据二级目录转发服务以及带/和不带/的区别

2024-04-17 05:20

本文主要是介绍nginx根据二级目录转发服务以及带/和不带/的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。具体实例如下

1.配置文件location带/且proxy_pass带/

server {listen 80;server_name test.htjs.net;#通过访问service二级目录来访问后台
location /service/ {# http://192.168.1.51:8080后面的斜杠是一个关键,没有斜杠的话就会传递service到后端节点proxy_pass      http://192.168.1.51:8080/;proxy_redirect  off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}

即如果访问test.htjs.net/service/xxx.html 实际访问的是后端服务http://192.168.1.51:8080/xxx.html

2.配置文件location带/且proxy_pass不带/

server {listen 80;server_name test.htjs.net;#通过访问service二级目录来访问后台
location /service/ {# http://192.168.1.51:8080后面的斜杠是一个关键,没有斜杠的话就会传递service到后端节点proxy_pass      http://192.168.1.51:8080;proxy_redirect  off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}

即访问http://test.htjs.net/service/xxx.html,实际访问的是后端服务 http://192.168.1.51:8080/service/xxx.html

3.配置文件location带/且proxy_pass带二级目录和/

server {listen 80;server_name test.htjs.net;#通过访问service二级目录来访问后台
location /service/ {# http://192.168.1.51:8080后面的斜杠是一个关键,没有斜杠的话就会传递service到后端节点proxy_pass      http://192.168.1.51:8080/api/;proxy_redirect  off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}

即访问访问http://test.htjs.net/service/xxx.html,实际访问的是后端服务 http://192.168.1.51:8080/api/xxx.html

4.配置文件location带/且proxy_pass带二级目录不带/

server {listen 80;server_name test.htjs.net;#通过访问service二级目录来访问后台
location /service/ {# http://192.168.1.51:8080后面的斜杠是一个关键,没有斜杠的话就会传递service到后端节点proxy_pass      http://192.168.1.51:8080/api;proxy_redirect  off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}

即访问访问http://test.htjs.net/service/xxx.html,实际访问的是后端服务 http://192.168.1.51:8080/apixxx.html

5.location不带/且proxy_pass带二级目录不带/

server {listen 80;server_name test.htjs.net;#通过访问service二级目录来访问后台
location /service {# http://192.168.1.51:8080后面的斜杠是一个关键,没有斜杠的话就会传递service到后端节点proxy_pass      http://192.168.1.51:8080/api;proxy_redirect  off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}

即访问访问http://test.htjs.net/service/xxx.html,实际访问的是后端服务 http://192.168.1.51:8080/api/xxx.html

6.location不带/且proxy_pass带/

server {listen 80;server_name test.htjs.net;#通过访问service二级目录来访问后台
location /service {# http://192.168.1.51:8080后面的斜杠是一个关键,没有斜杠的话就会传递service到后端节点proxy_pass      http://192.168.1.51:8080/;proxy_redirect  off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}

即访问访问http://test.htjs.net/service/xxx.html,实际访问的是后端服务 http://192.168.1.51:8080//xxx.html

7.location不带/且proxy_pass不带/

 

server {listen 80;server_name test.htjs.net;#通过访问service二级目录来访问后台
location /service {# http://192.168.1.51:8080后面的斜杠是一个关键,没有斜杠的话就会传递service到后端节点proxy_pass      http://192.168.1.51:8080;proxy_redirect  off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}

即访问访问http://test.htjs.net/service/xxx.html,实际访问的是后端服务 http://192.168.1.51:8080/service/xxx.html

这篇关于nginx根据二级目录转发服务以及带/和不带/的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/910884

相关文章

Nginx 访问控制的多种方法

《Nginx访问控制的多种方法》本文系统介绍了Nginx实现Web访问控制的多种方法,包括IP黑白名单、路径/方法/参数控制、HTTP基本认证、防盗链机制、客户端证书校验、限速限流、地理位置控制等基... 目录一、IP 白名单与黑名单1. 允许/拒绝指定IP2. 全局黑名单二、基于路径、方法、参数的访问控制

Mybatis的mapper文件中#和$的区别示例解析

《Mybatis的mapper文件中#和$的区别示例解析》MyBatis的mapper文件中,#{}和${}是两种参数占位符,核心差异在于参数解析方式、SQL注入风险、适用场景,以下从底层原理、使用场... 目录MyBATis 中 mapper 文件里 #{} 与 ${} 的核心区别一、核心区别对比表二、底

Nginx服务器部署详细代码实例

《Nginx服务器部署详细代码实例》Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,:本文主要介绍Nginx服务器部署的相关资料,文中通过代码... 目录Nginx 服务器SSL/TLS 配置动态脚本反向代理总结Nginx 服务器Nginx是一个‌高性

nginx跨域访问配置的几种方法实现

《nginx跨域访问配置的几种方法实现》本文详细介绍了Nginx跨域配置方法,包括基本配置、只允许指定域名、携带Cookie的跨域、动态设置允许的Origin、支持不同路径的跨域控制、静态资源跨域以及... 目录一、基本跨域配置二、只允许指定域名跨域三、完整示例四、配置后重载 nginx五、注意事项六、支持

MySQL数据目录迁移的完整过程

《MySQL数据目录迁移的完整过程》文章详细介绍了将MySQL数据目录迁移到新硬盘的整个过程,包括新硬盘挂载、创建新的数据目录、迁移数据(推荐使用两遍rsync方案)、修改MySQL配置文件和重启验证... 目录1,新硬盘挂载(如果有的话)2,创建新的 mysql 数据目录3,迁移 MySQL 数据(推荐两

windows下安装Nginx全过程

《windows下安装Nginx全过程》文章介绍了HTTP和反向代理服务器的概念,包括正向代理和反向代理的区别,并详细描述了如何安装和配置Nginx作为反向代理服务器... 目录概念代理正向代理反向代理安装基本属性nginx.conf查询结构属性使用运行重启停止总结概念是一个高性能的HTTP和反向代理we

检查 Nginx 是否启动的几种方法

《检查Nginx是否启动的几种方法》本文主要介绍了检查Nginx是否启动的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1. 使用 systemctl 命令(推荐)2. 使用 service 命令3. 检查进程是否存在4

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

Python实现快速扫描目标主机的开放端口和服务

《Python实现快速扫描目标主机的开放端口和服务》这篇文章主要为大家详细介绍了如何使用Python编写一个功能强大的端口扫描器脚本,实现快速扫描目标主机的开放端口和服务,感兴趣的小伙伴可以了解下... 目录功能介绍场景应用1. 网络安全审计2. 系统管理维护3. 网络故障排查4. 合规性检查报错处理1.

C# Semaphore与SemaphoreSlim区别小结

《C#Semaphore与SemaphoreSlim区别小结》本文主要介绍了C#Semaphore与SemaphoreSlim区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、核心区别概览二、详细对比说明1.跨进程支持2.异步支持(关键区别!)3.性能差异4.API 差