转载请标明出处:http://blackwing.iteye.com/blog/1949154
不少公司为了安全,hadoop、hbase集群都是不对外开放,只有一台入口机对外,那么当要查看hadoop、hbase集群机器状态等信息时,就没办法了。
而要实现内网机器给外网访问,要解决的问题是:
1.hadoop、hbase页面上的url替换成外网能访问的url
2.通过有限的端口、外网ip对外提供整集群访问
强大的nginx正好能解决这个问题。而nginx要替换返回的页面内容,虽然它自己有模块可以实现,但据了解只能替换一次,而网上比较常用的是第三方的替换模块nginx_substitutions_filter,其主页:
http://code.google.com/p/substitutions4nginx/
整个实现步骤为:
1. 下载nginx_substitutions_filter并解压:
根据官方的建议:
git clone git://github.com/yaoweibin/ngx_http_substitutions_filter_module.git
2. 下载nginx稳定版并解压:
wget http://nginx.org/download/nginx-1.4.2.tar.gz
3. 编译安装
根据自己需要选择要适应的模块,并且指定substitutions4nginx模块的路径
./configure --prefix=/usr/local/nginx --pid-path=/usr/local/nginx.pid --with-http_dav_module --with-http_flv_module --with-http_realip_module --with-http_gzip_static_module --with-http_stub_status_module --with-debug --add-module=/home/hadoop/nginx/third-party-md/ngx_http_substitutions_filter_module/
make
make install
4. 配置nginx.conf
#替换hbase
server {
listen 8000;
location / {
proxy_pass http://master;
subs_filter_types text/html text/css text/xml;
subs_filter hd1:60030 192.168.1.25:8000/hd11;
subs_filter hd2:60030 192.168.1.25:8000/hd22;
}
location /hd11/ {
proxy_pass http://192.168.1.25:60030/rs-status;
}
location /hd22/ {
proxy_pass http://192.168.1.30:60030/rs-status;
}
}
#替换hadoop jt
server {
listen 8001;
location / {
proxy_pass http://master2;
subs_filter_types text/html text/css text/xml;
subs_filter hd1:50060 192.168.1.25:8001/hd11;
subs_filter hd2:50060 192.168.1.25:8001/hd22;
}
location /hd11/ {
proxy_pass http://192.168.1.25:50060/tasktracker.jsp;
}
location /hd22/ {
proxy_pass http://192.168.1.30:50060/tasktracker.jsp;
}
}
#替换hadoop nn
server {
listen 8002;
location / {
proxy_pass http://master3;
subs_filter_types text/html text/css text/xml;
subs_filter hd1:50075 192.168.1.25:8002/hd11;
subs_filter hd2:50075 192.168.1.25:8002/hd22;
}
location /hd11/ {
proxy_pass http://192.168.1.25:50075/;
}
location /hd22/ {
proxy_pass http://192.168.1.30:50075/;
}
}
upstream master {
server 192.168.1.30:60010;
}
upstream master2 {
server 192.168.1.25:50030;
}
upstream master3 {
server 192.168.1.25:50070;
}
重启ng服务让配置生效。
这样就可以通过统一ng入口访问内网集群了,后面如果有需要添加的修改nginx.conf就行。
分享到:
相关推荐
导游 apache nginx django uwsgi hadoop hbase linux 命令等实用指南。
基于muduo库实现的集群聊天服务器,通过mysql存储数据,通过nginx实现tcp负载均衡,通过redis实现集群内服务器间的消息订阅发布。 基于muduo库实现的集群聊天服务器,通过mysql存储数据,通过nginx实现tcp负载均衡,...
2. JDK安装部署 3. Zookeeper安装部署 4. Nginx安装部署 5. Hadoop安装部署 6. HBase安装部署 7. MongoDB数据库安装部署; 8. ElasticSearch集群安装部署; 9. 应用服务器的安装及部署
网上大部分关于nginx负载均衡集群的教程都是linux环境,如何实现在windows配置nginx实现负载均衡集群呢!
最近有个需求是需要用nginx播放服务器的视频,考虑安全问题,需要在nginx加个lua去取redis的token进行验证,刚开始访问测试环境单机还挺好用,可是要访问生产的是集群环境,找了多了资料趟了数不尽的坑,最终形成这...
nginx+lua+redis 集群 连接插件和脚本,原来插件是没有密码功能 故 修改了一下 k可以自己下载使用
大多产品部署在内网,外网资源很难获取。nginx离线资源包,解决内网部署问题
Tomcat+Nginx+Redis搭建高性能负载均衡集群Session共享
Nginx+Tomcat+Memcached集群Session共享实例,Nginx 1.81 + tomcat1 + tomcat2 + Memcached 完整可运行 访问根目录下 test.jsp 可看效果
Nginx安装与使用+WebSocket集群实现及断开重连-部署
frp+nginx实现内网穿透,多个tomcat共用80,配备详细说明文档,可自行查看。看不懂可以留言
Nginx实现最简单的负载均衡web访问操作说明.doc
linux环境下通过nginx实现tomcat集群.pdf
然后k兄就提议可以在内网搭建个nginx反向代理服务器,将nginx反向代理服务器的80映射到外网IP的80,这样指向到公司外网IP的域名的HTTP请求就会发送到nginx反向代理服务器,利用nginx反向代理将不同域名的请求转发给...
Keepalived+Nginx实现高可用Web负载均衡
linux环境下通过nginx实现tomcat集群借鉴.pdf
2、 集群规划,搭建主要步骤,重点注意事项; 3、 编制简单脚本进行优化,参数调优。 4、 最全面、最实用 5、 教程适用于各种版本 6、 详尽的报错处理方案 7、 结构清晰 8、 由浅入深,初学者可以看懂,进阶者也不...
nginx+tomcat+redis集群部署环境,包括nginx tomcat redis及集群部署所需jar包,jedis-2.6.1.jar,commons-pool2-2.2.jar,tomcat-redis-session-manager1.2.jar 具体步骤可以参见我的博文
一个工作在nginx_tcp中的集群聊天服务器,数据库用mysql部署,网络通信采用muduo和json消息作为通信协议 一个工作在nginx_tcp中的集群聊天服务器,数据库用mysql部署,网络通信采用muduo和json消息作为通信协议 一个...
Nginx+tomcat配置集群负载均衡实现动静分离实例