- 浏览: 1572872 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (603)
- T_java (145)
- T_script&ASP (51)
- T_C/C++ (25)
- T_PowerBuilder (11)
- T_Database (53)
- T_odoo (7)
- T_应用服务器 (50)
- T_专_条形码 (6)
- T_专_负载均衡器 (4)
- T_操作系统 (94)
- T_信息安全 (41)
- T_专_搜索引擎 (14)
- T_L_PHP (58)
- T_L_Delphi (18)
- T_L_.NET、C#、VisualStudio (25)
- T_L_Objective-C (6)
- T_移动开发 (53)
- T_网络 (109)
- T_大数据 (2)
- T_嵌入式 (2)
- T_小众技术 (24)
- T_未分类 (58)
- L_旅游印记 (1)
- L_生活随笔 (48)
- L_中国文化 (18)
- L_户外与生存 (0)
最新评论
-
csbean4004:
不知道哪传来得恶习,发帖子不好好发,故意弄错一些东西,很讨厌
让HTML5支持后置摄像头 -
withthewind:
终于找到一个可以用的了。。。
如何用VBA取得Word文档中的标题前面的序号 -
busbby:
兄弟,无法下载,说文件不完整
一个好用的Outlook ost格式文件转pst文件的工具 -
yijavakevin:
密码啊~解压密码多少?
一个二维条形码组件 -
vipbooks:
你给的那个链接根本无法下载,跳到官网看了下最新版12M,但点下 ...
十步以内完成精细web打印
最近有个地方的项目需要搭建一个演示环境。该演示环境是在公司现有系统基础上来搭建的,所有测试数据也从现有系统中导入,但由于新客户(B客户)与现有客户(A客户)所属行业不同,为了演示环境有更逼真的演示效果,需要把测试数据及应用系统中页面上有关A客户的信息都改成B客户。
如果直接在应用程序及测试数据中来修改,工作量很大,而且容易遗漏。
另外有个办法就是实现一个HttpServletFilter来对输出内容进行过滤。这种方式比第一种方式要好一些,可以实现多数内容的替换,但对于一些静态文件,还是无法满足要求。
基于第二种办法的思路,我想出在应用服务器前用一个HTTP 服务器来作反射代理,客户端直接访问HTTP服务器,HTTP服务器向应用服务器请求数据,然后把需要替换的内容进行替换,最后把替换后的结果返回给客户端。
目前比较主的HTTP服务器(非JAVA的HTTP服务器)主要是LightTPD, Nginx和Apache。Apache是元老级的HTTP服务器,功能强大自不必说,但经过这么多年的扩充,身躯也是臃肿庞大。lighttpd是最轻量级的,我先试用lighttpd。
在lighttpd中配置反向代理时发现,lighttpd对域名支持上有些问题,于是放弃lighttpd改用Nginx。
Nginx在功能上与Apache相似度要高于lighttpd。配置反向代理还是比较顺利,但到了配置输出内容替换功能时,却找遇到一个问题解决不了。在Nginx中,使用HttpSubstitution模块来实现内容替换,该组件对英文的支持还算完美,但对于中文(我的系统是GBK字符集,UTF-8没试),却怎么也无法查找替换,在网上翻了很久,也没有找到在效的解决办法。只好把Nginx也枪毙了,剩下的只有Apache了,Apache应该感觉鸭梨很大。
在Apache中配置反射代理也很顺利,只有一个地方需要注意一下:在目标服务域名后面要加上“/”。接下来是配置输出内容替换功能,在网络上能找到的几个可以实现内容替换的组件:mod_substitute.so、mod_sed.so、mod_line_edit.so,可以是当我尝试使用这个几组件进行替换时,对英文内容工作良好,但对中文的处理,跟Nginx一样,总是无法查找指定的关键字词并替换。就这几个组件,来来回回地修改配置,测试,花了大半天时间,还是无法解决。
在感觉到无计可施时,突然看到Apache还有一个mod_ext_filter组件,通过该组件,可以调用 一个外部程序来实现filter功能,我可以试试用一个sed程序来代替mod_sed.so,看看能不能正常处理中文。我以前保留了一套windows下的Unix/Linux小工具,其中就包括了sed.exe。我就把sed.exe复制到apache/bin目录下,然后在http-filter.conf中增加如下配置:
## mod_ext_filter directive to define a filter which ## replaces text in the response ## ExtFilterDefine fixtext mode=output intype=text/html cmd="/xampp-win32-1.7.4/apache/bin/sed.exe s/北京/上海/g" ExtFilterDefine fixtext1 mode=output intype=text/html cmd="/xampp-win32-1.7.4/apache/bin/sed.exe s/劳动局/财政厅/g" <Location /> # core directive to cause the fixtext filter to # be run on output SetOutputFilter fixtext;fixtext1 </Location>
然后启动重启apache,再访问,演示系统的关键词完美地被替换成目标词。We did it!
另外网上有个使用了跟我一样的方法:
mod_ext_filter的中文手册:
http://www.phpchina.com/manual/apache/mod/mod_ext_filter.html
附上本次配置的三个关键配置文件及sed.exe程序:
httpd.conf
ServerRoot "/xampp-win32-1.7.4/apache" Listen 80 LoadModule actions_module modules/mod_actions.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule auth_digest_module modules/mod_auth_digest.so LoadModule authn_default_module modules/mod_authn_default.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authz_default_module modules/mod_authz_default.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule env_module modules/mod_env.so LoadModule ext_filter_module modules/mod_ext_filter.so LoadModule filter_module modules/mod_filter.so LoadModule headers_module modules/mod_headers.so LoadModule include_module modules/mod_include.so LoadModule info_module modules/mod_info.so LoadModule log_config_module modules/mod_log_config.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule status_module modules/mod_status.so LoadModule substitute_module modules/mod_substitute.so <IfModule !mpm_netware_module> <IfModule !mpm_winnt_module> User daemon Group daemon </IfModule> </IfModule> ServerAdmin postmaster@localhost ServerName localhost:80 DocumentRoot "/xampp-win32-1.7.4/htdocs" <Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all </Directory> <Directory "/xampp-win32-1.7.4/htdocs"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Order allow,deny Allow from all </Directory> <IfModule dir_module> DirectoryIndex index.shtml index.html index.htm \ default.shtml default.html default.htm \ home.shtml home.html home.htm </IfModule> <FilesMatch "^\.ht"> Order allow,deny Deny from all Satisfy All </FilesMatch> ErrorLog "logs/error.log" LogLevel warn <IfModule log_config_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common <IfModule logio_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio </IfModule> CustomLog "logs/access.log" combined </IfModule> <Directory "/xampp-win32-1.7.4/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> DefaultType text/plain # Server-pool management (MPM specific) Include "conf/extra/httpd-mpm.conf" # Multi-language error messages Include "conf/extra/httpd-multilang-errordoc.conf" # Fancy directory listings Include "conf/extra/httpd-autoindex.conf" # Language settings Include "conf/extra/httpd-languages.conf" # Implements a proxy/gateway for Apache. Include "conf/extra/httpd-proxy.conf" # 设置过滤器 Include "conf/extra/httpd-filter.conf" # Various default settings Include "conf/extra/httpd-default.conf"
httpd-proxy.conf
<IfModule proxy_module> <IfModule proxy_http_module> # # Reverse Proxy # ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://www.demo.com/ ProxyPassReverse / http://www.demo.com/ </IfModule> </IfModule>
http-filter.conf (该文件是我自己加的)
## mod_ext_filter directive to define a filter which ## replaces text in the response ## ExtFilterDefine fixtext mode=output intype=text/html cmd="/xampp-win32-1.7.4/apache/bin/sed.exe s/厦门/上海/g" ExtFilterDefine fixtext1 mode=output intype=text/html cmd="/xampp-win32-1.7.4/apache/bin/sed.exe s/地税/财政/g" <Location /> # core directive to cause the fixtext filter to # be run on output SetOutputFilter fixtext;fixtext1 </Location>
- sed.rar (46.1 KB)
- 下载次数: 87
评论
519 <IfModule proxy_http_module>
520 ProxyRequests Off
521 <Proxy *>
522 Order deny,allow
523 Allow from all
524 </Proxy>
525 ProxyPass / http://xxxx.me/
526 ProxyPassReverse / http://xxxx.me/
527
528 </IfModule>
529 </IfModule>
530
531 ExtFilterDefine fixtext mode=output intype=text/html cmd="/usr/bin/sed s/xx/oo/g"
532
533 <Location />
534 SetOutputFilter fixtext
请问一下,不设反向代理的话,替换是正常的,但设了反向代理后,替换就不生效了,什么原因呢?哪里错了呢?
location /zn/ {
sub_filter 192.168.1.50:9090 zn.abc.org;
sub_filter_once on;
proxy_pass http://192.168.1.50:9090;
}
发表评论
-
SpringBoot Fat Jar解压运行
2018-06-28 21:40 2172SpringBoot已经成为当前最流行的微服务 ... -
TeamViewer13+Patch
2018-05-13 22:19 3122下载地址: https://www.datafilehos ... -
Linux挂载阿里云对象存储OSS作为本地磁盘扩充空间备份网站
2017-09-25 08:54 1833p.s.挂载oss之后,使用rsync可以同步图片数据,非 ... -
Chrome核心的自定义浏览器
2017-07-04 17:19 778以Chrome为核心的自定义浏览器源代码,有时候可能用得到,保 ... -
让ie6 7 8 9支持html5 websocket
2016-12-23 20:52 2178结果: 从github上的 web ... -
网站获取用户手机号码的方法、系统、客户端及服务器(坑爹的玩意儿)
2016-11-22 14:22 2170网站获取用户 ... -
Ubuntu16.04上安装MT7601网卡驱动(TL-W725N/W725N)
2016-09-15 23:01 0I suggest you get a temporary ... -
如何在palcedoler中放置图标
2016-09-10 09:52 593如何在H5的palceholder中设置一个图标? ... -
一个下载youtube视频的Linux工具
2016-07-01 08:50 842我们要介绍工具是youtube-dl。这是一个跨平台的工具, ... -
另一个穿透内网的工具(类似ngrok)
2016-06-20 20:26 4729前段时间介绍过两种把内网端口映射到公网的工具:ngrok ... -
Docker无法拉取镜像的一个解决办法
2016-06-16 12:47 13898在阿里云ECS上安装了docker,安装完成后,运行hell ... -
基于 HTTP/2 的 WEB 内网穿透实现(转)
2016-04-22 15:50 1425基于 HTTP/2 的 WEB 内网穿透实现 HTTP ... -
搭建自己的ngrok服务(转)
2016-04-22 15:42 807搭建自己的ngrok服务 在国内开发、企业号 ... -
一个把内网端口映射到外网的工具ngrok(类似与花生壳)
2016-04-22 14:35 1407Secure tunnels to localhost ... -
通过 HTTP 头进行 SQL 注入(转)
2015-12-11 10:10 3179在漏洞评估和渗透测试中,确定目标应用程序的输入向量是 ... -
Node.js下载地址
2015-11-19 14:16 671http://nodejs.org/dist/ -
采用ajp代理模式配置Apache+tomcat实现负载均衡(转)
2015-11-13 10:22 805这一种方法,配置简单,性能也高。附AJP介绍: AJP ... -
apache对于某个子目录不使用反向代理设置
2015-09-06 14:19 847当使用了apache的反向代理后,如果其中部分目录不想使用反 ... -
如何给你的Android 安装文件(APK)瘦身
2015-08-18 13:18 917文章目录 APK 文件 ... -
移动前端头部标签(HTML5 head meta)
2015-08-18 13:07 800移动前端开发中添加一些webkit专属的HTML5头部标签 ...
相关推荐
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个...
部署应用时,考虑到WebLogic的负载负担和访问安全性,一般在WebLogic的前端架构一个反向代理服务器,将他们整合起来使用。而大多数采用的是开源的WEB服务器(Apache)。架构方式是将Apache置于前端作为WebLogic的...
详细介绍Apache安装步骤,并且介绍了配置反向代理的步骤
linux apache反向代理配置,写的有点乱,但是可以用,里面有说明文档 先弄 apache和tomcat整合 把80端口给apache 举例 tomcatA 8080 tomcatB 8081 在apache的httpd.conf里写反向代理,用户名指向tomcat的端口,具体...
windows下配置Apache双向认证和反向代理(Apache+配置文档)
这个软件就是通过apache反向代理方式实现效果,项目使用tomcat发布,apache代理服务至tomcat,这里tomcat的配置就列出来了
反向代理反向代理反向代理反向代理反向代理反向代理反向代理反向代理反向代理
apache tomcat 反向代理,http502错误,百度搜的解决不了问题 a.com 可以访问,www.a.com 无法访问http502错误
介绍如何使用apache进行反向代理的配置,以及配置中遇到的一些问题如何解决
linux下安装apache的及反向代理配置完整过程
什么是反向代理呢?其实,反向代理也就是通常所说的WEB服务器加速,它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的WEB缓冲服务器(即:WEB反向代理服务器)来降低实际的WEB服务器的负载。
Apache反向代理
windows下apache+tomcat反向代理模式配置负载均衡
apache配置反向代理需要的so,配置参考如下: LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_ftp_module modules/mod_proxy_ftp...
apache反向代理weblogic,apache安装搭建。
Apache负载均衡和反向代理配置文件开启的模块及代码配置方法。。。。。。。。。。。。。。。。。。。
NULL 博文链接:https://chunanyong.iteye.com/blog/542301
本文档是在windows环境下Apache2.4 + tomcat8 配置反向代理和负载均衡及session集群.
由于Apache默认允许的最多连接数为256,而在一个繁忙的网站上这一连接数量也许不能满足需要,特别是本文介绍的通过防火墙上的Apache反向代理允许外部用户访问多个内部Web服务器的情况,可以采用更改src/include/...