nginx请求如何映射url
1. nginx的常用命令:
判断nginx的安装位置:whereis nginx;
判断是否启动nginx:ps -ef|grep nginx;
判断nginx是否是80端口:lsof -i 80;
到达nginx的bin目录:cd /usr/local/nginx/sbin:
4.1 启动nginx:nginx;
4.2 关闭nginx:nginx -s quit;
4.3 重启nginx:nginx -s reload;
2. nginx实现路由的配置
若服务器只对外暴露80端口,进入的请求需要使用nginx来进行反向负载均衡。
因为nginx只对外暴露80端口。根据nginx路由到代理路径上有两种方式
方式1:配置域名
nginx的虚拟主机的配置:
server {listen 80;server_name test.one.cn;access_log /Users/yexuerui/Documents/nginxlog/local.log main;error_log /Users/yexuerui/Documents/nginxlog/local-error.log debug_http;location / {proxy_pass http://127.0.0.1:8083;}
}
客户端需要配置hosts文件:
127.0.0.1 test.one.cn
用户发起http://test.one.cn/userT请求,就会被转发到http://127.0.0.1:8083/userT进行处理。
方式2:配置location
server {listen 80;server_name 127.0.0.1;access_log /Users/yexuerui/Documents/nginxlog/local.log main;error_log /Users/yexuerui/Documents/nginxlog/local-error.log debug_http;location /user {proxy_pass http://127.0.0.1:8083;}
}
虚拟主机配置多个location,根据url的不同,路由到不同的代理路径上。
推荐方式1。
3. proxy_pass配置
@RestController
public class NginxController {@RequestMapping("p1")public String p1() {return "p1的服务";}@RequestMapping("p2/xx")public String p2() {return "p2的服务";}@RequestMapping("p2xx")public String p3() {return "p2xx的服务";}
}
3.1 proxy_pass后有路径
配置1
server {listen 80;server_name test.one.cn;access_log /Users/yexuerui/Documents/nginxlog/local.log main;error_log /Users/yexuerui/Documents/nginxlog/local-error.log debug_http;location /p1/ {proxy_pass http://127.0.0.1:8083/p2;}
}
请求路径:http://test.one.cn/p1/xx
返回结果:p2xx的服务
结论:nginx在代理请求时,http://127.0.0.1:8083/p2与http://test.one.cn/p1/替换。得到http://127.0.0.1:8083/p2xx请求服务器。
配置2
server {listen 80;server_name test.one.cn;access_log /Users/yexuerui/Documents/nginxlog/local.log main;error_log /Users/yexuerui/Documents/nginxlog/local-error.log debug_http;location /p1 {proxy_pass http://127.0.0.1:8083/p2;}
}
请求路径:http://test.one.cn/p1/xx
返回结果:p2的服务
结论:nginx在代理请求时,http://127.0.0.1:8083/p2替换http://test.one.cn/p1。得到http://127.0.0.1:8083/p2/xx请求服务器。
配置3
server {listen 80;server_name test.one.cn;access_log /Users/yexuerui/Documents/nginxlog/local.log main;error_log /Users/yexuerui/Documents/nginxlog/local-error.log debug_http;location /p1 {proxy_pass http://127.0.0.1:8083/p2/;}
}
请求路径:http://test.one.cn/p1/xx
返回结果:p2的服务
结论:使用http://127.0.0.1:8083/p2/替换http://test.one.cn/p1得到http://127.0.0.1:8083/p2/xx
配置4
server {listen 80;server_name test.one.cn;access_log /Users/yexuerui/Documents/nginxlog/local.log main;error_log /Users/yexuerui/Documents/nginxlog/local-error.log debug_http;location /p1/ {proxy_pass http://127.0.0.1:8083/p2/;}
}
请求路径:http://test.one.cn/p1/xx
返回结果:p2的服务
结论:使用http://127.0.0.1:8083/p2/替换http://test.one.cn/p1/得到http://127.0.0.1:8083/p2/xx
当proxy_pass是ip:port/xx格式: 是将proxy_pass的路径去替换请求的域名:端口/location配置。
若location的配置为/,但是proxy_pass配置了ip:port/xx。那么也使用ip:port/xx替换域名:端口/。
3.2 proxy_pass只是ip:端口
proxy_pass的url后不存在/
server {listen 80;server_name test.one.cn;access_log /Users/yexuerui/Documents/nginxlog/local.log main;error_log /Users/yexuerui/Documents/nginxlog/local-error.log debug_http;location /p1 {proxy_pass http://127.0.0.1:8083;}
}
或者这种配置
server {listen 80;server_name test.one.cn;access_log /Users/yexuerui/Documents/nginxlog/local.log main;error_log /Users/yexuerui/Documents/nginxlog/local-error.log debug_http;location /p1/ {proxy_pass http://127.0.0.1:8083;}
}
请求路径:http://test.one.cn/p1
返回结果:p1的服务
proxy_pass的url后存在/
server {listen 80;server_name test.one.cn;access_log /Users/yexuerui/Documents/nginxlog/local.log main;error_log /Users/yexuerui/Documents/nginxlog/local-error.log debug_http;location /p1 {proxy_pass http://127.0.0.1:8083/;}
}
或者
server {listen 80;server_name test.one.cn;access_log /Users/yexuerui/Documents/nginxlog/local.log main;error_log /Users/yexuerui/Documents/nginxlog/local-error.log debug_http;location /p1 {proxy_pass http://127.0.0.1:8083/;}
}
请求路径:http://test.one.cn/p1
返回结果:404异常
当proxy_pass是ip:port格式,
- 后面存在/时,可以看做是绝对路径,将完全替换http://test.one.cn/p1得到proxy_pass即’http://127.0.0.1:8083/’。
- 后面不存在/时,可以看做相对路径,将替换http://test.one.cn得到proxy_pass即’http://127.0.0.1:8083/p1’。
参考链接 :
nginx请求如何映射url : https://www.jianshu.com/p/afe1cdbdf842
nginx请求如何映射url相关推荐
- WEB请求处理二:Nginx请求反向代理
上一篇<WEB请求处理一:浏览器请求发起处理>,我们讲述了浏览器端请求发起过程,通过DNS域名解析服务器IP,并建立TCP连接,发送HTTP请求.本文将讲述请求到达反向代理服务器的一个处理 ...
- WEB 请求处理二:Nginx 请求 反向代理
上一篇<WEB请求处理一:浏览器请求发起处理>,我们讲述了浏览器端请求发起过程,通过DNS域名解析服务器IP,并建立TCP连接,发送HTTP请求.本文将讲述请求到达反向代理服务器的一个处理 ...
- 浏览器和服务器 对http请求(post get) url长度限制
1. GET URL长度限制 在Http1.1协议中并没有提出针对URL的长度进行限制,RFC协议里面是这样描述的,HTTP协议并不对URI的长度做任何的限制,服务器端 必须能够处理任何它们所提供服 ...
- Spring4MVC 请求参数映射和Content-type
目录 前言 不使用注解(不传则为null) 基本数据类型和日期类型 自定义类型POJO @PathVariable注解 @RequestParam 注解 @RequestBody注解 复杂对象Arra ...
- nginx curl linux,linux nginx 下通过curl url方式,符以后的参数无效
linux nginx 下通过curl url方式,&符以后的参数无效 nginx转发get请求丢失参数 ngixn转发,接口为get请求时参数会丢失,post不会出现问题.原因:get请求参 ...
- nginx过滤html输入,nginx屏蔽指定接口(URL)的操作方式
一.前言 有时候,web平台上线后,需要屏蔽某个服务接口,但又不想重新上线,可以采用nginx屏蔽指定平台接口的办法. 二.具体操作 在nginx的配置文件nginx.conf文件的server节点中 ...
- RequestMapping的映射URL模板
映射的URL中有占位符变量,符合这个映射关系的请求都会被这个handler方法处理,下面就是一个模板例子. /template/hello/jack和/template/hello/devin等等这样 ...
- nginx反向代理替换URL
系列文章目录 nginx反向代理替换URL 文章目录 系列文章目录 前言 一.location作用 二.直接替换location 匹配部分 前言 nginx 提供反向代理服务,日常开发过程中有时候我们 ...
- Web集群案例实战 -- Nginx 反向代理根据URL中的目录地址实现代理转发 -- 案例实战
Nginx 反向代理根据URL中的目录地址实现代理转发 -- 案例实战 前言 一.需求背景 前言 本环境是基于 Centos 7.8 系统构建Nginx学习环境 具体构建,请参考 Nginx-1.18 ...
最新文章
- python怎么读excel文件-python如何读写excel文件
- 计算机视觉与深度学习 | 卷积神经网络实现异常行为识别(目标分割与提取)
- NIO--Buffer
- 怎么安装python3.6.5_Centos7 安装Python3.6.5
- 回调破前高意味着什么_4连阳后是回调还是突破呢?
- 安卓页面去掉顶部标题
- 无法执行程序。所执行的命令为 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /noconfig /fullpaths @C:\W...
- 机器学习笔记——支持向量机
- 一本通1623Sherlock and His Girlfriend
- [产品相关] A/B测试终极指南(翻译)
- ssm oracle mysql_ssm连接oracle数据库
- centos6.5 yum安装php5.5,mysql5.5.46 ,aphche 2.2.15
- 进化计算(九)——MOEA/D代码实现及中文详解(Matlab)
- Spring Boot系列——日志配置
- 2 一个完整的计算机系统包括,一个完整的计算机系统应包括.doc
- 你真的了解什么是智能座舱么(域控制器篇)
- Spring框架文档(二 )
- 暗恋一个人是一种什么体验?
- [转]敏感信息识别方法探究
- CoD系列游戏资源提取工具
热门文章
- 中文短文本的实体识别实体链接,第一名解决方案
- Adaboost入门教程——最通俗易懂的原理介绍
- html css字幕滚动代码,纯CSS实现滚动3D字幕
- python 优先队列_Python Queue队列实现线程通信
- 基于MySQL的调度系统_仓储调度系统的设计与实现(SSH,MySQL)
- android书籍和教程推荐--不断更新
- Team Foundation Server XXX 不存在,或者此时不可访问:解决方案
- mysql nginx 无法访问_nginx可以启动成功却无法访问
- sql里 where和order by一起使用是怎样的顺序
- VMware终端用户计算的战略和愿景