Nginx配置hbaseweb转发

目标

为了公司集群的安全考虑,hadoop和hbase的web访问只能供有限的人访问 而要实现内网机器给外网访问,要解决的问题是:  1.hadoop、hbase页面上的url替换成外网能访问的url  2.通过有限的端口、外网ip对外提供整集群访问  下面就通过nginx反向代理的方式实现

步骤

整个实现步骤为:

### 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.8.0.tar.gz  

tar -zxf nginx-1.8.0.tar.gz 
编译安装
cd nginx-1.8.0
4../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=/data/ngx_http_substitutions_filter_module/  
#######  add-module后面是 ngx_http_substitutions_filter_module的路径

报错:the HTTP rewrite module requires the PCRE library.

yum -y install pcre-devel

5. make  
6. make install 
7. 配置cd /usr/local/nginx/conf目录下的nginx.conf
server {
        listen       80;

        location / {
                proxy_pass http://node2:16010/;
                subs_filter_types text/css text/xml;
                subs_filter node2:16030 node2/hd11;
                subs_filter node3:16030 node2/hd22;
            #root   html;
            #index  index.html index.htm;
        }

		#hbase 默认的链接是加rs-status的,避免需要手动去掉,添加这个
        location /hd11/rs-status {
            proxy_pass http://node2:16030/rs-status;
        }
		#storeFile.jsp界面显示不出来,添加
        location /hd11/storeFile.jsp {
            proxy_pass http://node2:16030/storeFile.jsp;
        }
		#region.jsp界面显示不出来,添加
        location /hd11/region.jsp {
            proxy_pass http://node2:16030/region.jsp;
        }

        location /hd22/region.jsp {
            proxy_pass http://node3:16030/region.jsp;
        }
        location /hd22/storeFile.jsp {
            proxy_pass http://node3:16030/storeFile.jsp;
        }
        location /hd22/rs-status {
            proxy_pass http://node3:16030/rs-status;
        }

### 本次的集群是node2和node3两个节点,hbase为1.2.6
8. 配置好之后cd /usr/local/nginx/sbin/目录下
./nginx启动
Ps -ef | grep nginx  查看启动的nginx进程

root     17369     1  0 14:21 ?        00:00:00 nginx: master process ./nginx
nobody   17370 17369  0 14:21 ?        00:00:00 nginx: worker process
root     19090 16107  0 15:48 pts/0    00:00:00 grep nginx

输入node2即可查看hbase界面(因为nginx配置的是80端口,页面node2打开默认也是80端口,所以并不需要输入端口号) 

Regionserver节点地址 

9. 接下来,配置iptables,限制原来的16010端口
iptables -A INPUT -p tcp --dport 16010 -j DROP
禁止访问16010端口
iptables -I INPUT -s node2 -ptcp --dport 16010 -j ACCEPT 
iptables -I INPUT -s node3 -ptcp --dport 16010 -j ACCEPT 
允许hbase集群的两个节点访问16010端口
service iptables save
service iptables restart
重启结束

直接通过node2:16010访问不成功

通过80端口依旧ok

Nginx通过80端口反向代理连接hbaseweb成功

参考文章:http://blackwing.iteye.com/blog/1949154

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值