nginx反向代理proxy_pass的问题
起因:今天企业部署一个项目,用的nginx做的反向代理,配置如下:
测试结果令人失望,IP:端口 能访问项目,域名:端口 也能访问 ,但是 域名/接口名 访问失败
##########################################################proxy_cache########################################################
proxy_cache_path /opt/proxy_temp levels=: keys_zone=imgcache:100m inactive=30d max_size=50g; upstream danny-web {
ip_hash;
server 192.168.1.150:;
server 192.168.1.151:;
check interval= rise= fall= timeout= default_down=true type=http;
} upstream QA-web {
ip_hash;
server 192.168.1.150:;
server 192.168.1.151:;
check interval= rise= fall= timeout= default_down=true type=http;
} server {
listen ;
server_name danny.com;
location ^~ /WEB-INF {
deny all;
} ##upstream status
location /upstream_status {
allow 192.168.0.0/;
deny all;
check_status;
access_log off;
} ##nginx status
deny all;
stub_status on;
access_log off;
} location / {
proxy_pass http://danny-web;
include /usr/local/nginx/conf/vhosts/proxy.conf;
} location ~ ^/(test)/ {
proxy_pass http://QA-web;
include /usr/local/nginx/conf/vhosts/proxy.conf;
} error_page /50x.html;
location /50x.html {
root html;
} }
注意:
nginx做反向代理时
location ~ ^/(test)/ {
proxy_pass http://QA-web;
include /usr/local/nginx/conf/vhosts/proxy.conf;
}
中的test不能随便取,必须与后端访问接口请求接口名称一致。
原因:client-->请求-->nginx-->proxy_pass-->upstream-->后端服务器项目(注意:问题就在这儿,nginx能把www.danny.com/test的请求发给后端服务器,但是,
如果后端代码没有这个test接口,就算请求到达了,后端如tomcat不知道这个请求是个什么玩意儿,会直接导致请求失败)
所以,这个test名还真不能随便取,必须nginx
能识别成功转发请求,后端服务器项目也得能识别这个请求才行,缺一不可。
企业项目测试总结经验
nginx反向代理proxy_pass的问题的更多相关文章
- nginx反向代理(proxy_pass)tomcat的过程中,session失效的问题解决
Nginx反向代理tomcat,很是方便,但是也有些细节的问题需要注意:今天遇到了这样一个问题,tomcat中路径“host/web1”,nginx中直接“host/”代理,这时候session就无法 ...
- nginx 反向代理 proxy_pass 及对比nginx与haproxy反向代理服务器功能、性能的优劣
1.使用 proxy 去请求另一个域名下的资源,如果跨域资源也部署在同一台机器上,我们甚至可以 proxy 到 127.0.0.1,比如: location /api { proxy_pass htt ...
- 【转】Nginx服务器的反向代理proxy_pass配置方法讲解
[转]Nginx服务器的反向代理proxy_pass配置方法讲解 转自:http://www.jb51.net/article/78746.htm 就普通的反向代理来讲Nginx的配置还是比较简单的, ...
- nginx配置后端映射(反向代理proxy_pass)
说明:配置反向代理proxy_pass和location无关,location后面加不加 / 都可以 1.配置 proxy_pass 时,当在后面的 url 加上了 /,相当于是绝对路径,则 Ngin ...
- 使用python自动生成docker nginx反向代理配置
由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候 ...
- Nginx反向代理,负载均衡,redis session共享,keepalived高可用
相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...
- Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
转载:http://freeloda.blog.51cto.com/2033581/1288553 大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负 ...
- Nginx反向代理和负载均衡
一.Nginx反向代理设置 从80端口转向其他端口反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的 ...
- nginx 反向代理
nginx 反向代理 vim nginx.conf http { ..... upstream "tomcatweb" { server 172.30.13.199:8080; s ...
随机推荐
- Python:Day03 变量、字符编码
配置环境变量 右键计算机--->属性--->高级系统设置--->高级--->环境变量--->系统变量--->找到Path,双击编辑--->将程序的路径粘贴上去 ...
- PHP 2 语句 数据类型 字符串函数 常量
在 PHP 中,有两种基本的输出方法:echo 和 print. 在本教程中,我们几乎在每个例子中都会用到 echo 和 print.因此,本节为您讲解更多关于这两条输出语句的知识. PHP echo ...
- .Net使用Redis详解之ServiceStack.Redis(七) 转载https://www.cnblogs.com/knowledgesea/p/5032101.html
.Net使用Redis详解之ServiceStack.Redis(七) 序言 本篇从.Net如何接入Reis开始,直至.Net对Redis的各种操作,为了方便学习与做为文档的查看,我做一遍注释展现 ...
- 在JS中调用CS里的方法(PageMethods)
在JS中调用CS里的方法(PageMethods) 2014年04月28日 11:18:18 被动 阅读数:2998 最近一直在看别人写好的一个项目的源代码,感觉好多东西都是之前没有接触过的.今天 ...
- docker 15 dockerfile案例-CMD、ENTRYPOINT案例
CMD.ENTRYPOINT都是指定一个容器启动时要运行的命令.但是CMD会覆盖前面的参数,而ENTRYP会追加组合原来的参数 未完待续...
- redis list 清空记录小技巧
redis list 清空记录小技巧 redis中的list操作命令中删除指定key中的所有记录命令: ltrim key 1 0 即 ltrim key start end 中的start要比e ...
- Python排序算法——快速排序
有趣的事,Python永远不会缺席! 如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/10768593.html 排序算法(Sortin ...
- Ambari 使用 Hive View 异常处理
异常:进入Hive View提示user home check fail 详细日志:Service 'userhome' check failed: java.io.FileNotFoundExcep ...
- 详解JSOUP的Select选择器语法
本文参考:JSOUP中文文档 问题 你想使用类似于CSS或jQuery的语法来查找和操作元素. 方法 可以使用Element.select(String selector) 和 Elements.se ...
- Mac 小记 — iTerm2、Zsh、Homebrew
前言 写完 "Ubuntu 自动化配置" 这篇文章后,每次连服务器心情指数都上升好几个百分点,于是想着应该将 macOs 的开发环境也梳理梳理,应该会对开发效率有所增益. 1. i ...