资讯详情

Nginx企业实战

📅 2026/10/22 17:42:01 | 华诺云谱 👁 阅读
Nginx企业实战
任务一Nginx 流量监控VTS企业场景 公司需要监控网站访问流量了解请求数量、网络流量及连接状态。任务要求1. 安装并配置 Nginx VTS 监控模块。2. 开启流量统计功能。3. 配置监控数据访问地址。4. 验证监控页面或 JSON 数据是否正常。监控页面正常JSON数据正常5. 展示请求数、接收流量、发送流量、活动连接数等指标。6. 使用shell脚本 统计 访问网站次数#!/bin/bash # 统计 www.tancheng.com 网站访问次数 VTS_URLhttp://127.0.0.1/vts-status?formatjson DOMAINwww.tancheng.com # 获取json数据 JSON_DATA$(curl -s ${VTS_URL}) # 提取该域名请求次数 REQ_COUNT$(echo ${JSON_DATA} | jq -r .serverZones.\${DOMAIN}\.requestCounter) # 提取全局总请求 GLOBAL_REQ$(echo ${JSON_DATA} | jq -r .requests) echo echo 网站域名${DOMAIN} echo 域名访问总次数${REQ_COUNT} echo Nginx全局所有站点总请求${GLOBAL_REQ} echo 任务二Nginx 一键安装脚本企业场景 公司需要快速部署多台 Web 服务器减少重复手动安装操作。任务要求1. 编写 install_nginx.sh 一键安装脚本。2. 自动安装依赖、下载源码并编译安装 Nginx。3. 自动创建相关目录并配置开机自启。4. 自动启动 Nginx并检查服务状态。5. 脚本具备错误提示关键步骤失败时能够停止执行。6. 重复执行时避免覆盖已有配置或重复安装造成异常。#!/bin/bash # install_nginx.sh 源码编译nginx 1.20.2 set -euo pipefail # 变量区 src_dir/usr/local/src ins_dir/usr/local/nginx usernginx groupnginx conf${ins_dir}/conf/nginx.conf svc_file/usr/lib/systemd/system/nginx.service # # 颜色 red\033[0;31m green\033[0;32m nc\033[0m # 错误退出函数 err_exit() { echo -e ${red}[error] $1${nc} 12 exit 1 } echo -e ${green} start nginx source install ${nc} # 检查是否已经安装防止重复覆盖 if [ -x ${ins_dir}/sbin/nginx ];then echo -e ${green}[info] nginx already installed at ${ins_dir} echo [info] version: ${ins_dir}/sbin/nginx -v echo [info] exit, skip install, no overwrite! exit 0 fi # 校验系统 if [ ! -f /etc/redhat-release ];then err_exit script only support centos fi # 安装编译依赖 echo -e ${green}[info] install deps${nc} yum install -y gcc gcc-c make zlib-devel pcre-devel openssl-devel wget || err_exit yum install deps fail # 创建nginx系统用户无登录shell id ${user} /dev/null 21 || useradd -M -s /sbin/nologin ${user} # 创建源码目录 mkdir -p ${src_dir} || err_exit create src dir fail cd ${src_dir} || err_exit cd to src dir fail # nginx版本1.20.2 pkgnginx-1.20.2.tar.gz if [ ! -f ${pkg} ];then echo -e ${green}[info] download nginx ${pkg}${nc} wget http://nginx.org/download/${pkg} || err_exit download nginx src fail else echo [info] src package exists, skip download fi # 解压源码 rm -rf nginx-1.20.2 tar -zxf ${pkg} || err_exit tar unpack fail cd nginx-1.20.2 || err_exit cd nginx src folder fail # configure编译配置 echo -e ${green}[info] run configure${nc} ./configure \ --prefix${ins_dir} \ --user${user} \ --group${group} \ --with-http_ssl_module \ --with-http_stub_status_module \ --with-http_gzip_module \ --with-http_realip_module || err_exit configure failed echo -e ${green}[info] compiling make${nc} make || err_exit make compile error echo -e ${green}[info] make install${nc} make install || err_exit make install fail # 防止覆盖已有systemd服务文件 if [ -f ${svc_file} ];then err_exit ${svc_file} already exists, skip writing service file fi # 写入systemd服务文件 echo -e ${green}[info] create systemd nginx service${nc} cat ${svc_file} EOF [Unit] DescriptionNginx Web Server Afternetwork.target [Service] Typeforking PIDFile${ins_dir}/logs/nginx.pid ExecStart${ins_dir}/sbin/nginx ExecReload${ins_dir}/sbin/nginx -s reload ExecStop${ins_dir}/sbin/nginx -s quit PrivateTmptrue [Install] WantedBymulti-user.target EOF systemctl daemon-reload || err_exit daemon-reload fail systemctl enable nginx || err_exit enable nginx boot fail # 启动nginx校验状态 echo -e ${green}[info] start nginx${nc} systemctl start nginx || err_exit start nginx failed ${ins_dir}/sbin/nginx -t || err_exit nginx config test fail systemctl is-active nginx | grep -q active || err_exit nginx not running # 安装完成信息输出 echo -e ${green} install finish ${nc} echo install path: ${ins_dir} echo config file: ${conf} echo bin file: ${ins_dir}/sbin/nginx echo check version: ${ins_dir}/sbin/nginx -v echo check compile args: ${ins_dir}/sbin/nginx -V echo service cmd: echo systemctl start/stop/restart/reload nginx echo systemctl enable/disable nginx echo systemctl status nginx echo -e ${green}${nc}
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑