Nginx訪問控制及安全配置文檔詳解
一、文檔說明
本文檔用于記錄 Nginx 服務(wù)的訪問控制、密碼認(rèn)證及版本隱藏配置,實現(xiàn)指定網(wǎng)段免密訪問、其他網(wǎng)段密碼驗證,同時隱藏 Nginx 版本號以提升安 全 性,所有配置可直接復(fù)制使用,適配主流 Linux 系統(tǒng)(CentOS、Ubuntu 等)。
二、核心配置需求
- 192.168.34.0/24 網(wǎng)段:免密碼直接訪問網(wǎng)站根目錄
- 非 192.168.34.0/24 網(wǎng)段(含 192.168.35.*、外網(wǎng) IP 等):需輸入賬號密碼驗證,驗證失敗/未輸入則返回 403 禁止訪問
- 隱藏 Nginx 版本號,避免版本漏洞泄露,提升服務(wù)安 全 性
- 網(wǎng)站根目錄:/data/www,默認(rèn)索引頁為 index.html、index.htm,支持單頁應(yīng)用路由(try_files 配置)
三、詳細(xì)配置步驟
3.1 密碼文件生成(/etc/nginx/.htpasswd)
3.1.1 安裝密碼生成工具
- Debian / Ubuntu 系統(tǒng):
apt update && apt install -y apache2-utils
- CentOS / RHEL / RockyLinux 系統(tǒng):
yum install -y httpd-tools
3.1.2 生成密碼文件
執(zhí)行以下命令,用戶名為 admin,按提示輸入兩次密碼:
htpasswd -c /etc/nginx/.htpasswd admin
3.1.3 修正密碼文件權(quán)限
chown nginx:nginx /etc/nginx/.htpasswd chmod 644 /etc/nginx/.htpasswd
3.2 Nginx 核心配置(訪問控制+密碼認(rèn)證)
編輯站點配置文件(如 /etc/nginx/conf.d/default.conf),替換 location / 塊:
location / {
# 滿足任一條件即可訪問(免密網(wǎng)段 或 密碼驗證)
satisfy any;
# 允許指定網(wǎng)段免密訪問
allow 192.168.34.0/24;
# 禁止其他未驗證 IP
deny all;
# 基礎(chǔ)認(rèn)證配置
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;
# 站點根目錄與首頁
root /data/www;
index index.html index.htm;
# SPA 路由支持
try_files $uri $uri/ /index.html last;
}
3.3 隱藏 Nginx 版本號
編輯主配置 /etc/nginx/nginx.conf,在 http {} 中添加:
http {
# 隱藏版本號
server_tokens off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# 其他原有配置不變
}
進(jìn)階(徹底隱藏 Server 標(biāo)識):
http {
server_tokens off;
more_set_headers "Server: My-Server";
}
四、配置生效命令
# 檢查配置語法 nginx -t # 重啟生效 systemctl restart nginx
五、效果驗證
| 訪問IP/網(wǎng)段 | 預(yù)期效果 | 驗證方法 |
|---|---|---|
| 192.168.34.* | 直接訪問,不彈密碼框 | 該網(wǎng)段電腦/服務(wù)器訪問站點 |
| 非 192.168.34.* | 彈出密碼框,驗證失敗返回 403 | 手機熱點/其他網(wǎng)段設(shè)備訪問 |
| 任意IP | 響應(yīng)頭無 Nginx 版本號 | 瀏覽器 F12 Network 查看 Server 頭 |
六、注意事項
- 密碼文件必須使用絕對路徑
/etc/nginx/.htpasswd - 新增免密網(wǎng)段:追加
allow x.x.x.x/24;即可 - 新增用戶:
htpasswd /etc/nginx/.htpasswd 新用戶名(不加 -c) - 確保
/data/www存在且權(quán)限正常
七、常見問題排查
- 非 34 網(wǎng)段直接 403,不彈密碼框 → 缺少
satisfy any; - 密碼驗證失敗 403 → 密碼錯誤或文件權(quán)限/路徑錯誤
- Nginx 啟動失敗 → 執(zhí)行
nginx -t查看語法錯誤 - 版本號仍顯示 → 未在
http{}配置server_tokens off;或未重啟
八、總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
keepalived+nginx實現(xiàn)網(wǎng)站高可用性
本文主要介紹了keepalived+nginx實現(xiàn)網(wǎng)站高可用性,包含配置Keepalived實現(xiàn)雙主熱備集群架構(gòu),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
利用nginx搭建靜態(tài)資源服務(wù)器的方法步驟
這篇文章主要介紹了利用nginx搭建靜態(tài)資源服務(wù)器的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
keepalived結(jié)合nginx實現(xiàn)nginx高可用的方法
這篇文章主要介紹了keepalived結(jié)合nginx實現(xiàn)nginx高可用的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03
centos環(huán)境下nginx高可用集群的搭建指南
為了防止Nginx單點故障造成服務(wù)器癱瘓,本文介紹了Nginx實現(xiàn)高可用集群構(gòu)建,下面這篇文章主要給大家介紹了關(guān)于centos環(huán)境下nginx高可用集群的搭建指南,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07
Nginx?Rewrite及Location的使用與區(qū)別
rewrite和location的功能有點相像,都能實現(xiàn)跳轉(zhuǎn),本文主要介紹了Nginx?Rewrite及Location的使用與區(qū)別,具有一定的參考價值,感興趣的可以了解一下2023-08-08

