【运维心得】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 头
相关推荐
liuyicenysabel11 分钟前
Flask 个人站 iProfile 上线笔记(k3s + Nginx + Let‘s Encrypt)
笔记·nginx·flask
爱和冰阔落34 分钟前
【Linux】Ctrl+C 到底做了什么?从键盘、kill 到 alarm,一次讲清信号的产生
linux·运维·c++·安卓
JavaPub-rodert1 小时前
Linux 下部署 MongoDB:从安装、配置到生产环境使用
linux·运维·mongodb
辻弋2011 小时前
一键优化电源计划、游戏模式、独显强制、禁用后台录制——DeltaForceBooster专治三角洲行动卡顿掉帧,所有改动可一键还原
服务器·数据库·windows·游戏·电脑·php
xcLeigh1 小时前
Go入门:基本数据类型全览与选择指南
android·服务器·golang·教程·go热门
画中有画2 小时前
自动化脚本中如何启动/打开app的某个页面
运维·自动化
何以解忧,唯有..2 小时前
Python os模块详解:文件与目录操作指南
java·服务器·python
Brilliantwxx2 小时前
【Linux】 进程(3)深度解析:从查看进程到进程状态
linux·服务器·网络·c++
我星期八休息2 小时前
Linux—五种IO模型与非阻塞IO
linux·运维·服务器·网络·数据库·网络协议
hweiyu002 小时前
Linux命令:column
linux·运维·服务器