linux下PAC正向代理某个网址上网
使用场景:我们在某些私有化场景下部署服务,一般情况下既然私有化了当然服务器对网络的限制就比较多,一般分两种情况 第一种彻底不让上网,那我这文章就别看了;第二种 就是服务器可以通过内部搭建的代理服务器上网,那这一种就可以用我这篇文章做个参考。简单的架构图:这个是一个简单的k8s架构图 我们的服务是 APP01APP03APP03如APP02 是一个需要请求互联网某个接口的服务,如xxxx.qq.co
·
使用场景:
我们在某些私有化场景下部署服务,一般情况下既然私有化了当然服务器对网络的限制就比较多,一般分两种情况 第一种彻底不让上网,那我这文章就别看了;第二种 就是服务器可以通过内部搭建的代理服务器上网,那这一种就可以用我这篇文章做个参考。
简单的架构图:
这个是一个简单的k8s架构图 我们的服务是 APP01 APP03 APP03
如APP02 是一个需要请求互联网某个接口的服务,如 https://xxxx.qq.com/xxx/xxx
呐,这个集群是不能上网的 只能通过公司的一个代理服务器上网和请求互联网接口,如图我们是在集群部署一个pac 的pod,至于pac是啥能搜索到我这帖子之前应该都知道了,这里不做啥介绍了,不多BB了
第一创建文件并且打镜像
mkdir PAC
cd PAC
#创建pac文件
touch pac.action
{{alias}}
default = +forward-override{forward .}
pac = +forward-override{forward xxx.xxx.xxx.xxx(代理服务器地址):88}
{default}
/
{pac}
.qq.com #写你要代理的域名
.cip.cc
#创建Dockerfile文件
touch Dockerfile
FROM alpine:latest
MAINTAINER mading@xxxx.net
RUN apk --no-cache add privoxy
ADD privoxy-start.sh /usr/local/bin/
ADD config /etc/privoxy/
COPY pac.action /etc/privoxy/
RUN chmod +r /etc/privoxy/config && chmod +x /usr/local/bin/privoxy-start.sh
CMD ["privoxy-start.sh"]
EXPOSE 8118
#创建配置文件
touch config
confdir /etc/privoxy
logdir /var/log/privoxy
actionsfile pac.action
logfile logfile
listen-address 0.0.0.0:8118
toggle 1
enable-remote-toggle 0
enable-remote-http-toggle 0
enable-edit-actions 0
enforce-blocks 0
buffer-limit 4096
enable-proxy-authentication-forwarding 0
forwarded-connect-retries 0
accept-intercepted-requests 0
allow-cgi-request-crunching 0
split-large-forms 0
keep-alive-timeout 5
tolerate-pipelining 1
socket-timeout 300
#创建启动脚本文件
touch privoxy-start.sh
#!/bin/sh
CONFFILE=/etc/privoxy/config
PIDFILE=/var/run/privoxy.pid
if [ ! -f "${CONFFILE}" ]; then
echo "Configuration file ${CONFFILE} not found!"
exit 1
fi
/usr/sbin/privoxy --no-daemon --pidfile "${PIDFILE}" "${CONFFILE}"
#docker打成镜像
docker build -t test:01 .
#docker上传镜像
docker push test:01
创建pac服务
apiVersion: apps/v1
kind: Deployment
metadata:
name: privoxy-deploy
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: privoxy
template:
metadata:
labels:
app: privoxy
spec:
containers:
- name: privoxy
image: test:01(改为自己构建的镜像)
ports:
- containerPort: 8118
---
apiVersion: v1
kind: Service
metadata:
name: privoxy-service
spec:
selector:
app: privoxy
ports:
- protocol: TCP
port: 8118
targetPort: 8118
name: privoxy-deploy
在APP02deployment 加入以下env
此次我们要访问的域名是HTTPS的所以只需要代理HTTPS的域名
- name: https_proxy
value: http://privoxy-service:8118
验证:进入APP02的pod 执行curl https://www.cip.cc 看看是不是为代理服务器地址
更多推荐
已为社区贡献1条内容
所有评论(0)