nginx入门二
反向代理:
proxy_pass
server {
listen 80;
location /n {
proxy_pass http://127.0.0.1:8000/test;
}
location /m {
proxy_pass http://127.0.0.1:8000/test/;
}
}
http://127.0.0.1:8000 是python 提供的http服务。
访问:http://127.0.0.1/n
结果重定向到:http://127.0.0.1/test/
404 Not Found
访问:http://127.0.0.1/n/
结果正常
Directory listing for /test/
访问:http://127.0.0.1/nhaha , http://127.0.0.1/nhaha/
Error response
Error code 404.
访问:http://127.0.0.1/m
结果正常
Directory listing for /test/
访问:http://127.0.0.1/m/
结果正常
Directory listing for /test//
访问:http://127.0.0.1/mhaha
结果重定向到:http://127.0.0.1/test/haha/
404 Not Found
访问:http://127.0.0.1/mhaha/
结果正常
Directory listing for /test/haha/
只要是重定向的,请求都没有经过proxy_pass,nginx直接返回了。
但是如果在配置文件加入:
location / {
proxy_pass http://127.0.0.1:8000/;
}
访问:http://127.0.0.1/n
重定向到:http://127.0.0.1/test/
结果正常
Directory listing for /test/
由此可知nginx的匹配应该是有一个优先级的。
location /m2 {
proxy_pass http://127.0.0.1:8000/test/haha/;
}
访问:http://127.0.0.1/m
那么肯定选择/m匹配,结果:
Directory listing for /test/
访问:http://127.0.0.1/m2
那么肯定选择/m2匹配,结果:
Directory listing for /test/haha/
访问:http://127.0.0.1/m3
由于配置文件没有/m3,所以nginx会尝试/m
/m=http://127.0.0.1:8000/test/
/m3=http://127.0.0.1:8000/test/3
所以重定向到:http://127.0.0.1/test/3/
Directory listing for /test/3/
分析总结:
nginx的匹配是:先窄范围后宽范围。这也解释了在添加 location /{...}之前重定向返回404,后来有正常。因为之前 / 指向的是nginx的html目录,配置后 /指向python监听的目录(/root/Downloads/)。
是否重定向由:匹配后的url后面是否有"/"决定。/m3=http://127.0.0.1:8000/test/3(重定向),/m3/=http://127.0.0.1:8000/test/3/(不重定向)
我们也发现这样的匹配会由超出预期的结果,比如/m3,/mhaha
所以在写匹配规则的时候还是:
location /uri/ {
proxy_pass http://127.0.0.1:8000/uri 或 proxy_pass http://127.0.0.1:8000/uri/
}
nginx入门二的更多相关文章
- nginx入门教程
nginx入门教程 一.概述 什么是nginx? Nginx (engine x) 是一款轻量级的Web 服务器 .反向代理服务器及电子邮件(IMAP/POP3)代理服务器. 什么是反向 ...
- nginx入门与实战 安装 启动 配置nginx Nginx状态信息(status)配置 正向代理 反向代理 nginx语法之location详解
nginx入门与实战 网站服务 想必我们大多数人都是通过访问网站而开始接触互联网的吧.我们平时访问的网站服务 就是 Web 网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务. Web ...
- Linux(6)- redis发布订阅/持久化/主从复制/redis-sentinel/redis-cluster、nginx入门
一.redis发布订阅 Redis 通过 PUBLISH .SUBSCRIBE 等命令实现了订阅与发布模式. 其实从Pub/Sub的机制来看,它更像是一个广播系统,多个Subscriber可以订阅多个 ...
- 转:nginx入门指南,快速搭建静态文件服务器和代理服务器
本文介绍 Nginx 入门基础知识,让你迅速搭建 Nginx 服务器.主要内容包括 Nginx 安装和简单使用.Nginx的简单原理.Nginx 配置文件的结构.如何使用 Nginx 来提供静态文件服 ...
- Linux--6 redis订阅发布、持久化、集群cluster、nginx入门
一.redis发布订阅 Redis 通过 PUBLISH .SUBSCRIBE 等命令实现了订阅与发布模式. 其实从Pub/Sub的机制来看,它更像是一个广播系统,多个Subscriber可以订阅多个 ...
- Nginx入门教程(转)
原文:https://www.cnblogs.com/qdhxhz/p/8910174.html nginx入门教程 一.概述 什么是nginx? Nginx (engine x) 是一款轻 ...
- Nginx入门到实战
location 语法 location 有”定位”的意思, 根据Uri来进行不同的定位. 在虚拟主机的配置中,是必不可少的,location可以把网站的不同部分,定位到不同的处理方式上. 比如, 碰 ...
- day07 Nginx入门
day07 Nginx入门 Nginx简介 Nginx是一个开源且高性能.可靠的http web服务.代理服务 开源:直接获取源代码 高性能:支持海量开发 可靠:服务稳定 特点: 1.高性能.高并发: ...
- 【原创】NIO框架入门(二):服务端基于MINA2的UDP双向通信Demo演示
前言 NIO框架的流行,使得开发大并发.高性能的互联网服务端成为可能.这其中最流行的无非就是MINA和Netty了,MINA目前的主要版本是MINA2.而Netty的主要版本是Netty3和Netty ...
随机推荐
- ajax 调用 java webapi 多个参数(二)
第一种方法:http://blog.csdn.net/hanjun0612/article/details/74436273 附上另一种解决方法. 这个方法主要针对 嵌套模型(模型中含有模型)的ap ...
- suoi08 一收一行破 (tarjanLca+树状数组)
用一个差分树状数组维护一下每个深度的和,然后每次拿着路径端点和lca加一加减一减就行了 #include<bits/stdc++.h> #define pa pair<int,int ...
- bracketed-paste-magic:zle:41: not enough arguments for -U
原因是zsh的插件出问题了,解法方法如下: 把 ~/.oh-my-zsh/lib/misc.zsh 文件中的第一段 if 注释掉 OK 啦 # ]]; then # for d in $fpath; ...
- A1103. Integer Factorization
The K-P factorization of a positive integer N is to write N as the sum of the P-th power of K positi ...
- Druid数据源对数据库访问密码加密好麻烦
开发中,druid数据源对数据库密码进行了加密,每次切换数据库或者修改密码后,感觉很麻烦. 解决办法: 1.用工具类中的Java代码进行加解密. 需要用到com.alibaba.druid.filte ...
- NOIP 普及组 2014 螺旋矩阵
传送门 https://www.cnblogs.com/violet-acmer/p/9898636.html 题解: 这道题挺有意思的,有点考思维吧. 大体思路是用四个pair<int ,in ...
- vuejs怎么在服务器部署?(知乎)
作者:知乎用户链接:https://www.zhihu.com/question/46630687/answer/157166318来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...
- 三种数据库连接池的配置及使用(For JDBC)
DBCP 一.导包 Apache官网下载DBCP包,导入两个包路径如下: commons-dbcp-1.4-bin\commons-dbcp-1.4\commons-dbcp-1.4.jar:连接池的 ...
- CentOS Linux release 7.3破解密码详解
CentOS Linux release 7.3破解密码详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 公司最近接了一个项目,拿到客户现有的源代码,但是服务器用户密码并不知情, ...
- 函数和常用模块【day05】:文件目录开发规范(七)
本节内容 1.背景 2.设计目录结构的好处 3.关于readme的内容 4.关于requirements.txt和setup.py 5.关于配置文件的使用方法 一.背景 "设计项目目录结构& ...