Nginx /
nginx在反向代理的时候,proxy_pass需要指定路径,有无"/"的区别,如下:
<pre style="margin-top: 0px; margin-bottom: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"> location /lile {
配置一: proxy_pass http://192.168.0.37/;
配置二: proxy_pass http://192.168.0.37;
} </pre>
环境说明:
反向代理服务器:192.168.0.224
真实数据机器:192.168.0.37
1:先配置真实数据机的nginx配置文件
[](javascript:void(0); "复制代码")
<pre style="margin-top: 0px; margin-bottom: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server { listen 80; server_name localhost; root /web1 location /lile { root /data; index index.html; } }
}</pre>
[](javascript:void(0); "复制代码")
创建对应的文件夹:
<pre style="margin-top: 0px; margin-bottom: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">mkdir /web1 echo "My location is /web1" > index.html mkdir -p /data/lile echo "My location is /data/lile" > index.html</pre>
2:反向代理的配置文件为
[](javascript:void(0); "复制代码")
<pre style="margin-top: 0px; margin-bottom: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location /lile { 配置一:proxy_pass http://192.168.0.37; 配置二:proxy_pass http://192.168.0.37/
}
}
}</pre>
](javascript:void(0); "复制代码")
3:测试
当proxy_pass为:http://192.168.0.37 的时候,返回的数据如下:
1)浏览器请求访问http://192.168.0.224/lile/
2)到达192.168.0.224后,location /lile 匹配到之后,转发的地址为:http://192.168.0.37/lile/
3)然后到达192.168.0.37,匹配到了location /lile,所以就去/data目录下取数据
当proxy_pass为: http://192.168.0.37/**** 的时候,返回的数据如下:
1)浏览器请求访问http://192.168.0.224/lile/
2)达192.168.0.224后,location /lile 匹配到之后,转发的地址为:http://192.168.0.37/,这里在proxy_pass的 http://192.168.0.37/**** 的“/”会把/lile给替换掉
3)然后到达192.168.0.37,直接匹配到的是root /web1,所以就去/web1目录下取数据
4:其他
在上面的location若为/,没有其他的具体匹配值,那么这两个的访问无区别
<pre style="margin-top: 0px; margin-bottom: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">location / {
配置一: proxy_pass http://192.168.0.37/;
配置二: proxy_pass http://192.168.0.37;
}</pre>
配置一转发的时候,新的URI替换原有的得到的还是 http://192.168.0.37/
配置二转发的时候,不会发生改变 http://192.168.0.37/
5:总结
proxy_pass URL(http://192.168.0.224/uri/)
当URL中含有URI时,Nginx服务器会使用新的URI替换原有的URI(这里的新的URI理解为proxy_pass URL里的URI)
当URL中不含URI时,Nginx服务器不会改变原有地址的URI
这里的URI与URL暂且不去讨论它是怎么定义的,就理解为域名或者IP地址之后的路径(暂时还没弄清楚他们两个的区别)
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Nginx 部分跳转
server { listen 80; server_name yunmasoft.com www.yunmasoft.com; if ( " ) { rewrite ^/(.*)1 redirect; } location / { proxy_pass http://182.92.97.72:8083; # proxy_redirect on ; index index.php index.html index.htm; } error_page 500 502 503 504 /50x.html; }
- 下一篇
安卓中高级开发工程师之——未来的路
最近一直忙着考试,所以很久更新简书了。很多朋友说“小饼干,你之前踩过的坑,你目前正在踩的坑,怎么没有写博客呢?”。也有人说“小饼干,你这样的博客,没有纯技术方面的干货,在技术领域是不行的。” 首先我很感谢他们。第二,关于技术方面,我有很多干货,也踩过很多坑,也帮助过很多人解决了很多问题。我的百度网盘中,仅仅技术方面的干货都上百G。然而,我没有写出来,除了我懒之外,更多的原因是我在思考:所有的技术大佬都在做技术方面的分享。前端开发发展到今天,对于大多数初级,中级,高级开发人员来讲已经比较成熟了(高级技术研发,领域研究除外),所以大家只要是不会的,百度一下几乎都可以解决你们的问题。并且我发现我写的还不一定有其他写的好。 同时我再思考,前段未来的路到底该怎么走? 很多小伙伴私下向我吐露:“小饼干,我已经从事安卓开发N年了(n>2&&n<6),然而这么久了,从当初的12K到现在的22K(很多4年的小伙伴现在也只有18K),真的遇到了瓶颈,不知道该怎么突破自己了。我想提高自己的能力,想提高自己的收入,该怎么办呢?”,这还没有完。接下来他又继续说“安卓是不是就这样了!我...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Mario游戏-低调大师作品
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7