Nginx是一款轻量级、高性能的开源免费web服务软件,同时也是优秀的反向代理、负载均衡器和 HTTP 缓存软件。它由俄罗斯工程师 伊戈尔・赛索耶夫(Igor Sysoev)于2002-2004年开发,2019年被 F5 Networks 收购。Nginx专为解决高并发连接场景而生,以低内存占用、高稳定性和高并发处理能力著称。Nginx 的核心作用:
- Web 服务:直接托管静态资源(HTML、CSS、JS、图片等),高效响应客户端请求。
- 反向代理:接收客户端请求,转发至后端应用服务器(如 Tomcat、Node.js、PHP-FPM),隐藏后端真实地址,提升安全性。
- 负载均衡:将请求分发至多台后端服务器,实现流量均匀分配,避免单点故障,提升系统可用性与扩展性。
- 高并发处理:采用事件驱动、异步非阻塞模型,单机可支撑数万至数十万并发连接,内存占用极低。
- 动静分离:静态资源由 Nginx 直接返回,动态请求转发至后端,大幅提升网站访问速度。
- 缓存加速:缓存后端响应内容,减轻后端服务压力,缩短用户访问延迟。
- 安全网关:支持 HTTPS、IP 黑白名单、限流、防盗链等功能,作为前端网关保护后端服务。
Nginx 的核心优势:
- 性能卓越:异步非阻塞架构,相比 Apache 等同步阻塞服务器,在高并发场景下性能提升显著。
- 资源占用低:
- 配置灵活:模块化设计,可按需加载功能模块,配置文件简洁清晰。
- 高稳定性:
- 生态丰富:
#!/bin/bash#2026年3月24日#auto install nginx software#by author linux之舟######################################################set -eecho "遇到错误,立即退出"#定义颜色RED='\033[0;31m'GREEN='\033[0;32m'YELLOW='\033[1;33m'NC='\033[0m'#定义变量NGX_VER="$1"NGX_SRC="/usr/local/src"NGX_DIR="/usr/local/nginx"NGX_SOFT="nginx-${NGX_VER}.tar.gz"NGX_URL="https://nginx.org/download"NGX_ARGS="--user=www --group=www --with-http_stub_status_module --with-http_ssl_module"echo -e "${YELLOW}--------------自动安装nginx-------------${NC}"#检查是否是root用户if [ $UID -ne 0 ]; then echo -e "\033[31m错误:请使用root用户执行该脚本!\033[0m" exit 1fi#检查是否输入版本号if [ -z "${NGX_VER}" ]; then echo -e "${RED}错误:请输入nginx版本号,当前的脚本名 + 版本号,例如(auto_install_nginx.sh 1.28.1)${NC}" exit 1fiecho -e "1. 安装环境依赖"dnf install -y vim tar gzip net-tools wget curl make pcre pcre-devel zlib zlib-devel gcc gcc-c++ openssl openssl-develdnf install -y libxml2 libxml2-devel libxslt libxslt-devel gd gd-devel geoip geoip-develecho -e "2. 创建nginx专用系统账户"if ! id www &>/dev/null; then useradd -r -s /sbin/nologin wwwfiecho -e "3. 下载nginx源码包"cd ${NGX_SRC}wget -c ${NGX_URL}/${NGX_SOFT}ls -l ${NGX_SOFT}echo -e "4. 解压nginx源码"tar -zxvf ${NGX_SOFT}cd nginx-${NGX_VER}echo -e "5. 隐藏版本号,伪装成JWS"sed -i -e 's/${NGX_VER}//g' -e 's/nginx\//JWS/g' -e 's/"NGINX"/"JWS"/g' src/core/nginx.hecho -e "6. 编译nginx"mkdir -p ${NGX_DIR}./configure --prefix=${NGX_DIR} ${NGX_ARGS}make -j$(nproc) && make installecho -e "7. 检查nginx配置文件"${NGX_DIR}/sbin/nginx -tpkill nginx || trueecho -e "8. 开启防火墙nginx服务端口"firewall-cmd --zone=public --add-port=80/tcp --add-port=443/tcp --permanentfirewall-cmd --reloadecho -e "${YELLOW}============= 配置 systemd 服务 =============${NC}"# 创建 systemd 服务文件cat > /usr/lib/systemd/system/nginx.service <<EOF[Unit]Description=JWS Web Server (compiled Nginx)After=network.target[Service]Type=forkingPIDFile=${NGX_DIR}/logs/nginx.pidExecStart=${NGX_DIR}/sbin/nginxExecReload=${NGX_DIR}/sbin/nginx -s reloadExecStop=${NGX_DIR}/sbin/nginx -s quitPrivateTmp=trueUser=rootGroup=root[Install]WantedBy=multi-user.targetEOF# 重新加载 systemd 配置systemctl daemon-reload# 设置开机自启systemctl enable nginx# 启动服务systemctl start nginx# 检查服务状态systemctl status nginx echo -e "${GREEN}============= Nginx 安装完成 =============${NC}"echo -e "访问地址:http://本机IP"echo -e "systemd 管理命令:"echo -e "启动:systemctl start nginx"echo -e "停止:systemctl stop nginx"echo -e "重启:systemctl restart nginx"echo -e "开机自启:systemctl enable nginx"echo -e "关闭自启:systemctl disable nginx"echo -e "查看状态:systemctl status nginx"
Linux环境下,Nginx自动化卸载(慎用!!!):注意:慎用!可能会删除你设备上带nginx文件名的所有文件(无残留),或在执行脚本前注释掉、亦或者删除掉 find / -path "/proc" -prune -o -path "/sys" -prune -o -path "/dev" -prune -o -name "*nginx*" -exec rm -rf {} \; 2>/dev/null || true,避免删除重要文件#!/bin/bash#2026年3月24日#auto remove nginx software#by author linux之舟######################################################set -eecho "遇到错误,立即退出"# 判断是否为 root 用户if [ $UID -ne 0 ]; then echo -e "\033[31m错误:请使用 root 用户执行该脚本!\033[0m" exit 1fi#定义颜色RED='\033[0;31m'GREEN='\033[0;32m'YELLOW='\033[1;33m'NC='\033[0m'#定义变量NGX_DIR="/usr/local/nginx"echo -e "${YELLOW}--------------自动卸载nginx-------------${NC}"echo -e "\033[31m请确认是否删除Nginx,删除之后无法恢复,yes/no? \033[0m"read INPUTif [ "$INPUT" == "yes" -o "$INPUT" == "y" ];then echo -e "${YELLOW}开始卸载 Nginx...${NC}" # 1. 停止Nginx服务 if systemctl is-active --quiet nginx; then systemctl stop nginx.service echo "已停止 Nginx 服务" fi # 2. 禁用Nginx开机自启动服务 if systemctl is-enabled --quiet nginx; then systemctl disable nginx.service 2>/dev/null || true echo "已禁用开机自启" fi # 3. 删除 systemd 服务文件 rm -rf /usr/lib/systemd/system/nginx.service rm -rf /etc/systemd/system/nginx.service systemctl daemon-reload # 4. 强制杀死进程 pkill -9 nginx 2>/dev/null || true # 5. 删除安装目录和源码 rm -rf $NGX_DIR rm -rf /usr/local/src/nginx-* # 6. 清理残留文件(安全无残留),慎用,可能会删除你设备上带nginx文件名的所有文件 find / \ -path "/proc" -prune -o \ -path "/sys" -prune -o \ -path "/dev" -prune -o \ -name "*nginx*" -exec rm -rf {} \; 2>/dev/null || true echo -e "\n${GREEN}==============================================${NC}" echo -e "${GREEN}✅ Nginx 已彻底卸载完成!所有文件已清空!${NC}" echo -e "${GREEN}==============================================${NC}"else echo -e "${YELLOW}已取消卸载操作${NC}" exit 0fi
Nginx 是一款高性能、轻量级的 Web 服务器软件,它以极致性能承载高并发请求,同时实现反向代理、负载均衡与安全防护,是现代互联网 Web 架构中不可或缺的核心组件软件。