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格式,

  1. 后面存在/时,可以看做是绝对路径,将完全替换http://test.one.cn/p1得到proxy_pass即’http://127.0.0.1:8083/’。
  2. 后面不存在/时,可以看做相对路径,将替换http://test.one.cn得到proxy_pass即’http://127.0.0.1:8083/p1’。

参考链接 :
nginx请求如何映射url : https://www.jianshu.com/p/afe1cdbdf842

nginx请求如何映射url相关推荐

  1. WEB请求处理二:Nginx请求反向代理

    上一篇<WEB请求处理一:浏览器请求发起处理>,我们讲述了浏览器端请求发起过程,通过DNS域名解析服务器IP,并建立TCP连接,发送HTTP请求.本文将讲述请求到达反向代理服务器的一个处理 ...

  2. WEB 请求处理二:Nginx 请求 反向代理

    上一篇<WEB请求处理一:浏览器请求发起处理>,我们讲述了浏览器端请求发起过程,通过DNS域名解析服务器IP,并建立TCP连接,发送HTTP请求.本文将讲述请求到达反向代理服务器的一个处理 ...

  3. 浏览器和服务器 对http请求(post get) url长度限制

    1. GET  URL长度限制 在Http1.1协议中并没有提出针对URL的长度进行限制,RFC协议里面是这样描述的,HTTP协议并不对URI的长度做任何的限制,服务器端 必须能够处理任何它们所提供服 ...

  4. Spring4MVC 请求参数映射和Content-type

    目录 前言 不使用注解(不传则为null) 基本数据类型和日期类型 自定义类型POJO @PathVariable注解 @RequestParam 注解 @RequestBody注解 复杂对象Arra ...

  5. nginx curl linux,linux nginx 下通过curl url方式,符以后的参数无效

    linux nginx 下通过curl url方式,&符以后的参数无效 nginx转发get请求丢失参数 ngixn转发,接口为get请求时参数会丢失,post不会出现问题.原因:get请求参 ...

  6. nginx过滤html输入,nginx屏蔽指定接口(URL)的操作方式

    一.前言 有时候,web平台上线后,需要屏蔽某个服务接口,但又不想重新上线,可以采用nginx屏蔽指定平台接口的办法. 二.具体操作 在nginx的配置文件nginx.conf文件的server节点中 ...

  7. RequestMapping的映射URL模板

    映射的URL中有占位符变量,符合这个映射关系的请求都会被这个handler方法处理,下面就是一个模板例子. /template/hello/jack和/template/hello/devin等等这样 ...

  8. nginx反向代理替换URL

    系列文章目录 nginx反向代理替换URL 文章目录 系列文章目录 前言 一.location作用 二.直接替换location 匹配部分 前言 nginx 提供反向代理服务,日常开发过程中有时候我们 ...

  9. Web集群案例实战 -- Nginx 反向代理根据URL中的目录地址实现代理转发 -- 案例实战

    Nginx 反向代理根据URL中的目录地址实现代理转发 -- 案例实战 前言 一.需求背景 前言 本环境是基于 Centos 7.8 系统构建Nginx学习环境 具体构建,请参考 Nginx-1.18 ...

最新文章

  1. python怎么读excel文件-python如何读写excel文件
  2. 计算机视觉与深度学习 | 卷积神经网络实现异常行为识别(目标分割与提取)
  3. NIO--Buffer
  4. 怎么安装python3.6.5_Centos7 安装Python3.6.5
  5. 回调破前高意味着什么_4连阳后是回调还是突破呢?
  6. 安卓页面去掉顶部标题
  7. 无法执行程序。所执行的命令为 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /noconfig /fullpaths @C:\W...
  8. 机器学习笔记——支持向量机
  9. 一本通1623Sherlock and His Girlfriend
  10. [产品相关] A/B测试终极指南(翻译)
  11. ssm oracle mysql_ssm连接oracle数据库
  12. centos6.5 yum安装php5.5,mysql5.5.46 ,aphche 2.2.15
  13. 进化计算(九)——MOEA/D代码实现及中文详解(Matlab)
  14. Spring Boot系列——日志配置
  15. 2 一个完整的计算机系统包括,一个完整的计算机系统应包括.doc
  16. 你真的了解什么是智能座舱么(域控制器篇)
  17. Spring框架文档(二 )
  18. 暗恋一个人是一种什么体验?
  19. [转]敏感信息识别方法探究
  20. CoD系列游戏资源提取工具

热门文章

  1. 中文短文本的实体识别实体链接,第一名解决方案
  2. Adaboost入门教程——最通俗易懂的原理介绍
  3. html css字幕滚动代码,纯CSS实现滚动3D字幕
  4. python 优先队列_Python Queue队列实现线程通信
  5. 基于MySQL的调度系统_仓储调度系统的设计与实现(SSH,MySQL)
  6. android书籍和教程推荐--不断更新
  7. Team Foundation Server XXX 不存在,或者此时不可访问:解决方案
  8. mysql nginx 无法访问_nginx可以启动成功却无法访问
  9. sql里 where和order by一起使用是怎样的顺序
  10. VMware终端用户计算的战略和愿景