网站首页 > 技术教程 正文
一、概述
NGINX 代理是非常常见的,内网生成环境一般不让在本机直接访问,这时候就得利用代理,但是一般代理就得脱敏或去掉页面上的高危操作。这里就拿 YARN 代理来讲解。这里也会涉及到 subs_filter 讲解,如果对 subs_filter 不理解的小伙伴,可以先查阅我这篇文章:NGINX sub_filter 和 subs_filter 指令讲解
二、部署 Hadoop 环境
Hadoop 的部署可以参考我之前的以下几篇文章:
- 大数据Hadoop原理介绍+安装+实战操作(HDFS+YARN+MapReduce)
- 大数据Hadoop之——Hadoop 3.3.4 HA(高可用)原理与实现(QJM)
- Hadoop on k8s 编排部署进阶篇
- Hadoop HA on k8s 编排部署进阶篇
- 通过 docker-compose 快速部署 Hadoop 集群极简教程
三、部署 yarn-proxy on docker
这里部署的是基于GitHub上的一个项目:https://github.com/HBigdata/yarn-reverse-proxy
1)部署 docker
# 安装yum-config-manager配置工具
yum -y install yum-utils
# 建议使用阿里云yum源:(推荐)
#yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装docker-ce版本
yum install -y docker-ce
# 启动并开机启动
systemctl enable --now docker
docker --version
2)部署 docker-compose
curl -SL https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
3)部署 dnsmasq
- dnsmasq 先去解析 /etc/hosts 文件。
- 再去解析 /etc/dnsmasq.d/ 下的 *.conf 文件,并且这些文件的优先级要高于 /etc/dnsmasq.conf。
- 我们自定义的 resolv.dnsmasq.conf中的 DNS 也被称为上游 DNS ,这是最后去查询解析的。
yum install -y dnsmasq
systemctl start dnsmasq.service
把 hadoop 相关的主机名映射都提前配置到 /etc/hosts 文件中。
想了解更多,可以参考我这篇文章:dnsmasq( DNS和DHCP)服务
4)下载 yarn-proxy
git clone https://github.com/HBigdata/yarn-reverse-proxy.git
cd yarn-reverse-proxy-master
cp docker-compose.example.yml docker-compose.yml
5)修改配置
version: '3'
services:
app:
build: .
#expose:
# - 80
## WARNING: uncomment the following only if you are
## not directly exposing a non-kerberized cluster
## to the Internet
# ports:
# - "5555:80"
environment:
TZ : 'Asia/Shanghai'
dns:
- localhost
ports:
- "80:80"
# 指定 DNS 服务
environment:
# Because your primary resource-manager is at /rm1
# access your main status page at $SERVER_URL_BASE/rm1
SERVERS: "hostname-rm-110:8088@rm110
hostname-rm-111:8088@rm111
hostname-nm-112:8042@nm112
hostname-nm-113:8042@nm113
hostname-nm-114:8042@nm114
hostname-nm-115:8042@nm115
hostname-nm-116:8042@nm116
hostname-nm-117:8042@nm117
hostname-nm-118:8042@nm118
hostname-jn-119:19888@jh119"
RESOLVER: YOUR_NETWORKS_DNS_SERVER # or 127.0.0.11 for the system resolver
SERVER_URL_BASE: http://REVERSE_PROXY_HOSTNAME:80
需要修改的地方:
- SERVERS、REVERSE_PROXY_HOSTNAME
- dns 地址记得更好成自己的 dns 机器。
6)开始部署
docker-compose build
docker-compose up -d
7)通过 subs_filter 进行改进
如果nm节点太多了,都遍历代理的话,就导致超过NGINX配置的长度的,太长配置也影响阅读,所以这里就通过 nginx subs_filter 进行改进。
subs_filter 的部署与用法可以参考我这篇文章:NGINX sub_filter 和 subs_filter 指令讲解
通过正则表达式修改 run.sh
# 将这段内容替换成正则
cat <<EOF
# Rewrite references without the scheme, e.g. //google.com
sub_filter 'src="//$REWRITE_NAME:$REWRITE_PORT' 'src="$SERVER_URL_BASE/$REWRITE_ALIAS';
sub_filter 'href="//$REWRITE_NAME:$REWRITE_PORT' 'href="$SERVER_URL_BASE/$REWRITE_ALIAS';
sub_filter 'href=\'//$REWRITE_NAME:$REWRITE_PORT' 'href=\'$SERVER_URL_BASE/$REWRITE_ALIAS';
# Rewrite all absolute references, regardless of where
# they appear in the page
sub_filter 'http://$REWRITE_NAME:$REWRITE_PORT/' '$SERVER_URL_BASE/$REWRITE_ALIAS/';
sub_filter 'http://$REWRITE_NAME:$REWRITE_PORT' '$SERVER_URL_BASE/$REWRITE_ALIAS';
proxy_redirect http://$REWRITE_NAME:$REWRITE_PORT/ $SERVER_URL_BASE/$REWRITE_ALIAS/;
EOF
# 示例替换
cat <<EOF
# Rewrite references without the scheme, e.g. //google.com
sub_filter 'src="//local-168-(\w+)-(\d+):$REWRITE_PORT' 'src="$SERVER_URL_BASE/\$1\$2' g r;
sub_filter 'href="//local-168-(\w+)-(\d+):$REWRITE_PORT' 'href="$SERVER_URL_BASE/\$1\$2' g r;
sub_filter 'href=\'//local-168-(\w+)-(\d+):$REWRITE_PORT' 'href=\'$SERVER_URL_BASE/\$1\$2' g r;
# Rewrite all absolute references, regardless of where
# they appear in the page
sub_filter 'http://local-168-(\w+)-(\d+):$REWRITE_PORT/' '$SERVER_URL_BASE/\$1\$2/' g r;
sub_filter 'http://local-168-(\w+)-(\d+):$REWRITE_PORT' '$SERVER_URL_BASE/\$1\$2' g r;
proxy_redirect http://local-168-(\w+)-(\d+):$REWRITE_PORT/ $SERVER_URL_BASE/\$1\$2/ g r;
EOF
四、部署 yarn-proxy on k8s
yarn-proxy on k8s 部署跟 docker-compose 差不多,这里就不再重复讲解了,有任何疑问欢迎给我留言或私信。
NGINX 实战操作(yarn-proxy)讲解就先到这里了,有任何疑问也可关注我公众号:大数据与云原生技术分享,进行技术交流,如本篇文章对您有所帮助,麻烦帮忙一键三连(点赞、转发、收藏)~
猜你喜欢
- 2024-10-12 反向代理神器:Nginx Proxy Manager,支持https证书自动申请和续签
- 2024-10-12 【第1期】Nginx: nginx之反向代理 proxy_pass
- 2024-10-12 好物推荐 - NginxProxyManager(好物推荐排行榜前100名)
- 2024-10-12 Docker部署反向代理神器:Nginx Proxy Manager
- 2024-09-22 云原生网关Traefik和Nginx Proxy Manager初体验
- 2024-09-22 程序员快速上手 Nginx 运行原理之“失败重试”精华笔记
- 2024-09-22 技术积淀----NGINX缓存(nginx内存缓存)
- 2024-09-22 nginx动态proxy_pass(Nginx动态二级域名)
- 2024-09-22 你真的了解Nginx的proxy_pass指令吗?
- 2024-09-22 详解Nginx proxy_pass 使用(nginx proxy_pass uri)
你 发表评论:
欢迎- 最近发表
-
- Win10 TH2正式版官方ESD映像转换ISO镜像方法详解
- 使用iso镜像升级到Windows 10的步骤
- macOS Ventura 13.2 (22D49) Boot ISO 原版可引导镜像
- 安利一个用ISO镜像文件制作引导U盘的的小工具RUFUS
- CentOS 7使用ISO镜像配置本地yum源
- 用于x86平台的安卓9.0 ISO镜像发布下载:通吃I/A/N、完全免费
- AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术
- Rufus写入工具简洁介绍与教程(写入模式)
- 新硬件也能安装使用了,Edge版Linux Mint 21.3镜像发布
- 开源工程师:Ubuntu应该抛弃32位ISO镜像
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)