首页 > 系统相关 >openfly:基于nginx的4层代理管理平台

openfly:基于nginx的4层代理管理平台

时间:2024-06-22 22:56:26浏览次数:17  
标签:http etc -- openfly 代理 module nginx usr

简介

作者:京城郭少

基于nginx的4层代理管理平台

支持的功能:

  • 被动健康检查
  • 白名单
  • include导入文件
  • 哈希
  • backup冗余互备
  • weight权重
  • 注释
  • ......

部署openfly

部署nginx:

  • 目标:部署一个支持stream模块的nginx。
  • 步骤仅供参考,可自行发挥。
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
yum install -y gc gcc gcc-c++ pcre-devel zlib-devel openssl-devel libxslt-devel GeoIP-devel perl-ExtUtils-Embed make
wget http://nginx.org/download/nginx-1.24.0.tar.gz
tar -xvf nginx-1.24.0.tar.gz
cd nginx-1.24.0/
mkdir -p /usr/local/nginx
# 关键在于--with-stream=dynamic --with-stream_ssl_module
./configure --prefix=/usr/local/nginx --with-file-aio --with-http_auth_request_module --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_geoip_module=dynamic --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-http_perl_module=dynamic --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module
make && make install
cp -r contrib/vim/* /usr/share/vim/vimfiles/
ln -s /usr/local/nginx/conf/ /etc/nginx
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
vim /usr/lib/systemd/system/nginx.service
    [Unit]
    Description=The nginx HTTP and reverse proxy server
    After=network.target remote-fs.target nss-lookup.target

    [Service]
    Type=forking
    PIDFile=/usr/local/nginx/logs/nginx.pid
    ExecStartPre=/usr/bin/rm -f /usr/local/nginx/logs/nginx.pid
    ExecStartPre=/usr/sbin/nginx -t
    ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    KillSignal=SIGQUIT
    TimeoutStopSec=5
    KillMode=process
    PrivateTmp=true

    [Install]
    WantedBy=multi-user.target
systemctl daemon-reload
systemctl restart nginx
systemctl enable nginx

配置nginx:

  • 目标:配置一个4层代理的目录(此目录托管给openfly,生成相应的4层代理配置)
mkdir -p /etc/nginx/stream.d
vim /etc/nginx/nginx.conf
    load_module /usr/local/nginx/modules/ngx_stream_module.so;      # 此配置放在文件的首行
    ......
    stream {
        include /etc/nginx/stream.d/*.conf;
    }
nginx -t
nginx -s reload

部署etcd:

yum install -y etcd
vim /etc/etcd/etcd.conf
    ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
systemctl enable --now etcd
vim /etc/bashrc
    export ETCDCTL_API=3
source /etc/bashrc

启动openfly

# 会生成data目录,里面都是nginx的4层代理配置文件,nginx需要导入这个目录:include xxx/data/*.conf;
vim config-vx.x.x.toml                  # 编辑配置文件
./openfly-vx.x.x -c config-vx.x.x.toml  # 启动openfly

Demo:添加一个nginx配置

token=$(curl -s -XPOST http://127.0.0.1:1216/v1/login -d "{\"username\":\"admin\",\"password\":\"admin\"}" -H "Content-Type: application/json" | jq -r .data)
curl -i -H "Content-Type: application/json" -XPOST -H "Authorization: ${token}" http://127.0.0.1:1216/v1/admin/nginx/add -d '
{
    "listen":30001,
    "upstream":{
        "hosts":[
            {
                "ip":"1.1.1.1",
                "port":53
            }
        ]
    }
}'

API

在这里可以查看各版本的API:https://github.com/GuoFlight/openfly/tree/main/docs


标签:http,etc,--,openfly,代理,module,nginx,usr
From: https://www.cnblogs.com/NetRookieX/p/18262830

相关文章

  • 设计模式之-代理模式
    代理模式是一种结构型设计模式,它允许你提供一个代理对象来控制对其他对象的访问。代理模式主要解决的问题是在某些情况下,直接访问一个对象可能会带来一些问题,比如对象的创建和销毁需要额外的开销,或者需要对对象的访问进行控制和限制。需要使用代理模式的时候,通常有以下情况:对......
  • 红队内网攻防渗透:内网渗透之内网对抗:隧道技术篇&防火墙组策略&FRP&NPS&Chisel&Socks代
    红队内网攻防渗透1.内网隧道技术1.1Frp内网穿透C2上线1.1.1双网内网穿透C2上线1.1.1.1服务端配置1.1.1.2客户端配置1.1.2内网穿透信息收集1.1.2.1、建立Socks节点(入站没限制采用)1.1.2.2主动转发数据(出站没限制采用)1.2Nps内网穿透工具1......
  • Docker部署Nginx1.21.5(保姆级图文教程)
    系列文章目录Docker部署Nginx1.21.5(保姆级图文教程)Docker部署MySQL8.3.0(保姆级图文教程)文章目录一、环境二、拉取镜像2.1查找DockerHub上的nginx镜像2.2拉取Nginx镜像2.3查看Nginx镜像三、在宿主机创建目录四、启动临时容器,拷贝nginx容器内配置文件4.1启动......
  • Jemter代理服务器录制脚本,优化后形成性能测试场景
    在进行性能测试(压力、负载)等,先要有对应的测试场景,比如添加功能:要先登录成功,然后调用添加接口,输入添加的内容,才可以添加成功。那么可以通过Jemter代理服务器,设置代理,打开测试的网站,录制脚本,当然,也可以根据接口文档,使用接口文档添加对应的接口形成业务测试脚本。HTPP代理服务器设置......
  • 在Linux中,lvs/nginx/haproxy 优缺点?
    LinuxVirtualServer(LVS)、Nginx和HAProxy都是流行的负载均衡解决方案,它们各自有不同的优缺点:1.LVS(LinuxVirtualServer)优点:高性能:LVS运行在Linux内核空间,因此具有较低的延迟和较高的吞吐量。稳定性:作为内核模块,LVS可以提供较高的稳定性。多种负载均衡算法:支持......
  • NGINX_十一 nginx 防盗链问题
    十一nginx防盗链问题两个网站A和B,A网站引用了B网站上的图片,这种行为就叫做盗链。防盗链,就是要防止A引用B的图片。1、nginx防止网站资源被盗用模块ngx_http_referer_module如何区分哪些是不正常的用户?​HTTPReferer是Header的一部分,当浏览器向Web服务器发送......
  • Nginx部署(详细)
     1.概念百度百科:Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,公开版本1.19.6发布于2020年12月15日。其将源代码以类BSD许可证的形式......
  • Centos7.9使用kubeadm部署K8S 1.27.6集群环境(内网通过代理部署)
    Centos7.9使用kubeadm部署K8S1.27.6集群环境(内网通过代理部署)在内网借助代理服务器,使用kubeadm部署一个k8s集群,单master+2worker节点,K8S版本为1.7.6,使用containerd作为容器运行时。1.环境信息操作系统:CentOS7.9.2009内存:8GBCPU:4网络:节点通过代理进行访问。host......
  • Linux系统之配置Nginx反向代理
    Linux系统之配置Nginx反向代理一、Nginx介绍1.1Nginx简介1.2Nginx反向代理二、本次实践介绍2.1本次实践简介2.2本次实践环境规划三、基于端口配置反向代理3.1安装nginx软件3.2备份配置文件3.3编辑nginx配置文件3.4启动Nginx服务3.5检查Ng......
  • Centos7.9使用kubeadm部署K8S 1.27.6集群环境(内网通过代理部署)
    Centos7.9使用kubeadm部署K8S1.27.6集群环境(内网通过代理部署)在内网借助代理服务器,使用kubeadm部署一个k8s集群,单master+2worker节点,K8S版本为1.7.6,使用containerd作为容器运行时。1.环境信息操作系统:CentOS7.9.2009内存:8GBCPU:4网络:节点通过代理进行访问。ho......