【运维心得】Ubuntu2404编译nginx隐藏Server信息

前言

因客户安全要求,需要去掉请求中的服务信息,故而根据资料做了nginx隐藏Server字段,这里记录下完整过程,方便其他同志使用。

操作步骤
1.安装编译环境
bash 复制代码
sudo apt update && sudo apt install -y build-essential devscripts debhelper dpkg-dev libpcre3-dev zlib1g-dev libssl-dev lintian
2. 确保下镜像源

这里使用清华源

使用新推荐方式处理Ubuntu镜像源头

bash 复制代码
sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak

sudo vim /etc/apt/sources.list.d/ubuntu.sources

内容:

bash 复制代码
# 清华大学 Ubuntu 24.04 (noble) 镜像 - deb822 格式

Types: deb

URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu/

Suites: noble noble-security noble-updates noble-backports

Components: main restricted universe multiverse

Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg



# 源码

Types: deb-src

URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu/

Suites: noble noble-security noble-updates noble-backports

Components: main restricted universe multiverse

Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
bash 复制代码
sudo apt clean

sudo apt update
3.创建编译目录

这里 /home/test为例

bash 复制代码
mkdir ~/nginx-build
cd ~/nginx-build
apt source nginx
4. 安装自定义插件
bash 复制代码
 wget https://github.com/openresty/headers-more-nginx-module/archive/refs/tags/v0.34.tar.gz -O headers-more-nginx-module-0.34.tar.gz
tar -xzf headers-more-nginx-module-0.34.tar.gz
5. 安装必要依赖
bash 复制代码
cd nginx-*
sudo apt build-dep nginx
6.编辑deb包rule
bash 复制代码
vim debian/rules
找到 basic_configure_flags
增加
--add-module=/home/test/nginx-build/headers-more-nginx-module-0.34 \
7.自定义头信息
bash 复制代码
vim src/core/nginx.h
#define NGINX_VERSION      "httpServer"
#define NGINX_VER          "test/" NGINX_VERSION
8.免签名编译
bash 复制代码
dpkg-buildpackage -us -uc -b
9.获取安装包
bash 复制代码
编译好的数据 在上层目录
cd ..
ll nginx*.deb

核心只需要 
sudo dpkg -i nginx-common_1.24.0-2ubuntu7.5_all.deb
sudo dpkg -i nginx_1.24.0-2ubuntu7.5_amd64.deb
10.隐藏Server信息
bash 复制代码
vim /etc/nginx/nginx.conf
在http或者server域
增加
server_tokens off;
more_clear_headers 'Server';  # 完全移除 Server 头
相关推荐
Leinwin3 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
2401_865382503 小时前
信息化项目运维与运营的区别
运维·运营·信息化项目·政务信息化
漠北的哈士奇3 小时前
VMware Workstation导入ova文件时出现闪退但是没有报错信息
运维·vmware·虚拟机·闪退·ova
如意.7593 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
运维小欣4 小时前
智能体选型实战指南
运维·人工智能
yy55274 小时前
Nginx 性能优化与监控
运维·nginx·性能优化
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ5 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
05大叔6 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络
安当加密6 小时前
无需改 PAM!轻量级 RADIUS + ASP身份认证系统 实现 Linux 登录双因子认证
linux·运维·服务器
dashizhi20156 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑