基于Nginx -Prometheus-Ansible的高性能go网站群集系统(第一期)

admin 2024年8月2日07:55:37评论9 views字数 3514阅读11分42秒阅读模式

免责声明

本文仅用于学习交流,不用于商业用途和网络攻击。本文中的内容、代码、示例仅供学习和研究使用,作者不对因使用本文内容所产生的任何直接或间接的后果负责。任何人若将本文中的内容用于非法用途,将自行承担相应的法律责任,作者概不负责。

模拟企业级Web服务需求,构建了一个高可用性和高并发访问的网站架构。该方案中,Nginx 作为前端负载均衡器,配合 Keepalive 确保服务的持续高可用。利用 Nginx 的优异网络请求处理能力,系统可高效优化和处理各类网络请求,确保 Web 服务的稳定性和响应速度。项目采用 Ansible 实现自动化运维,配备 Prometheus Grafana 构建的监控系统,实现流量和性能的实时可视化。数据一致性通过 NFS 实现,后端服务采用 Go 语言开发,数据库系统选择了 Mysql Redis 的组合,支持通过域名访问,并全面实施 HTTPS 服务

基于Nginx -Prometheus-Ansible的高性能go网站群集系统(第一期)

安装虚拟机:

基于Nginx -Prometheus-Ansible的高性能go网站群集系统(第一期)

基于Nginx -Prometheus-Ansible的高性能go网站群集系统(第一期)

双击安装位置,进入分区选择后直接点击完成自动分区

点击网络和主机名后打开网络连接然后完成

开机登录后查看ip----ip add

用户名root密码:123456

基于Nginx -Prometheus-Ansible的高性能go网站群集系统(第一期)

找到内网ip,使用xshell连接一下

基于Nginx -Prometheus-Ansible的高性能go网站群集系统(第一期)

一.配置主机名

配置主机名:主机名便于我们后面进行识别与控制

命令:hostnamectl set-hostname [修改的主机名]

基于Nginx -Prometheus-Ansible的高性能go网站群集系统(第一期)

我们本章主要配置静态网段和mysql和第一个web服务器

Mysql:hostnamectl set-hostname dbWeb:hostnamectl set-hostname web1

# 需要su重新登录用户即可生效

二.配置阿里云

在2024年6月30号的时候,centos官方宣布停止更新维护了,所以官方的repo已经用不了了,我们需要配置阿里云的repo或者清华源的,这里我们用阿里云的。

配置目录:/etc/yum.repos.d

# 这个目录存放了所有的镜像源

cd  /etc/yum.repos.d  # 进入镜像源配置目录curl  -O http://mirrors.aliyun.com/repo/Centos-7.repo

# 从阿里云官网拉去centos7的镜像仓库

mkdir  backup# 创建backup文件夹mv  CentOS-*  backup

# 把之前不能用的源全部删除或者放入创建的backup文件夹里避免影响环境

基于Nginx -Prometheus-Ansible的高性能go网站群集系统(第一期)

我们curl下阿里云的源

基于Nginx -Prometheus-Ansible的高性能go网站群集系统(第一期)

可以看到下载好了

我们下载一些常用工具

基于Nginx -Prometheus-Ansible的高性能go网站群集系统(第一期)

  • 三.配置静态IP

由于xshell连接方便我们使用,不配置静态ip可能导致IP处于动态环境中,影响项目搭建

配置目录:/etc/sysconfig/network-scripts

# 这个目录存放了网卡配置

cd /etc/sysconfig/network-scripts# 进入网卡配置目录vim ifcfg-ens33# ifcfg-ens33是ens33网卡默认配置文件

基于Nginx -Prometheus-Ansible的高性能go网站群集系统(第一期)

可以看到网卡原本的配置

基于Nginx -Prometheus-Ansible的高性能go网站群集系统(第一期)


下面先对网卡配置文件进行详解:

#网卡配置文件/etc/sysconfig/network-scripts/ifcfg-ens33详解,永久配置开启网卡BOOTPROTO="dhcp"# 获得ip地址的方式,dhcp表示动态获得(别的dhcp服务器给我们分配,无线路由就是一台具有dhcp功能的服务器)none表示静态配置 static表示静态DEFROUTE="yes" # 这个网卡的配置的网关作为默认路由NAME="ens33" # 网卡的名字UUID="6bb4efaf-947a-4c7a-85bc-503f76a59318" # 网卡的唯一标识DEVICE="ens33" # 网卡设备的名字ONBOOT="yes"     # 开机启动时候激活这个网卡,打开成yes就是永久开启了IPADDR=192.168.236.145 # 指定的ip地址NETMASK=255.255.255.0 # ip地址的子网掩码PREFIX=24 # ip地址的子网掩码的长度为24位GATEWAY=192.168.236.0 # 网关ipDNS1=114.114.114.114 #首选dns服务器ipDNS2=222.246.129.80 #备用dns服务器ip

其中有很多项并非必要项

最后我们配置网卡只需要留下

BOOTPROTO="none"NAME="ens33"DEVICE="ens33"ONBOOT="yes"IPADDR=$2# ip add 查看IP地址,配置到IPADDR上去PREFIX=24GATEWAY=$3#ip route 查看网关,配置到GATEWAY上去DNS1=114.114.114.114DNS2=222.246.129.80

基于Nginx -Prometheus-Ansible的高性能go网站群集系统(第一期)

经过修改后留下了这些必要的参数,以上即可

service network restart

基于Nginx -Prometheus-Ansible的高性能go网站群集系统(第一期)

#临时关闭防火墙

systemctl stop  firewalldsystemctl disable firewalld

下面我们要关闭防火墙,如果有防火墙就不能进行内网间的很多操作比如通讯,传递

下面修改防火墙文件

sed -i '/SELINUX=/ s/enforcing/disabled/' /etc/selinux/config#修改/etc/selinux/config文件里的enforcing为disabled,永久关闭防火墙

基于Nginx -Prometheus-Ansible的高性能go网站群集系统(第一期)

基于Nginx -Prometheus-Ansible的高性能go网站群集系统(第一期)

可以看到我们防火墙的状态是开启的,我们把他关闭,改成disable

这样就永久关闭防火墙了

然后我们需要重启使得防火墙配置生效即可

基于Nginx -Prometheus-Ansible的高性能go网站群集系统(第一期)

介绍一些配置网卡命令,后面我们会详细讲解nmcli

nmcli  n  查看网络接口的情况nmcli  n  off 关闭所有的网络连接nmcli  n  on开启所有的网络连接ifup  ens33  激活ens33网卡  interface  接口  up 起来/激活  ens33是网卡的名字ip route 查看默认路由(GATEWAY)cat /etc/resolv.conf 查看DNS服务器配置cat /etc/sysconfig/network-scripts/ifcfg-ens33 查看网卡配置ip add 查看ip地址配置

Nmcli n查看网关状态

基于Nginx -Prometheus-Ansible的高性能go网站群集系统(第一期)

这次web-1服务器配置完成

然后同样的步骤来配置mysql服务器

当然我们可以直接克隆这一台服务器即可

克隆的机器和原本机器的环境配置大概率

是一模一样的

注意:克隆有可能出现ip冲突的情况,

在克隆完之后不要先打开原机器,

应当先打开克隆机,修改配置。


脚本一键配置:

名字:init_env.shset -e#!/bin/bash#第1步:下载阿里云的centos-7.reop文件cd /etc/yum.repos.dcurl -O http://mirrors.aliyun.com/repo/Centos-7.repo#新建存放centos官方提供的repo文件,因为官方不提供服务了mkdir backupmv CentOS-* backup#安装一些经常使用的软件 vim  net-tools  yum install  vim   net-tools   tree psmisc  -y#第2步:修改主机名hostnamectl set-hostname $1#第3步:配置静态ip地址cat>/etc/sysconfig/network-scripts/ifcfg-ens33 <<EOFBOOTPROTO="none"NAME="ens33"DEVICE="ens33"ONBOOT="yes"IPADDR=$2PREFIX=24GATEWAY=$3DNS1=114.114.114.114DNS2=222.246.129.80EOF#启动网络服务service network restart#第4步:关闭selinux和firewalld防火墙服务systemctl stop firewalldsystemctl disablefirewalld#修改/etc/selinux/config文件里的enforcing为disabledsed -i '/SELINUX=/ s/enforcing/disabled/' /etc/selinux/config#重启服务器reboot

使用方法:bash init_env.sh [hostname] [IPPADDR] [GATEWAY]

鉴于后面会用到很多网络的知识,我们需要先对计算机网络的七层协议进行了解

基于Nginx -Prometheus-Ansible的高性能go网站群集系统(第一期)

对于后面多台主机的操作,我们还需要学习命令:

scp init_env.sh 192.168.xxx.xxx:/root#将某个脚本文件复制到另一台主机上#复制到192.168.xxx.xxx的root目录下

原文始发于微信公众号(TJ网络安全与电子数据取证实验室):成员学习分享--基于Nginx -Prometheus-Ansible的高性能go网站群集系统(第一期)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月2日07:55:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   基于Nginx -Prometheus-Ansible的高性能go网站群集系统(第一期)https://cn-sec.com/archives/2986150.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息