Nginx内网部署完整指南(不上互联网的官网配置)
内网部署静态网站方案摘要 本方案提供了一套完整的Nginx内网部署静态网站的技术方案,适用于企业、学校、政府等需要安全隔离的场景。核心优势包括: 安全可靠:完全隔离公网,避免外部攻击,数据不出内网 高性能低成本:利用内网高带宽特性,无需域名和SSL证书 灵活部署:支持单服务器到负载均衡集群的不同规模部署 简单易用:提供详细的Nginx配置指南,涵盖Linux/Windows系统 方案包含: 典型应
应用场景:企业内部官网、局域网展示系统、离线环境部署
技术栈:Nginx + HTML/CSS/JS + 内网DNS/hosts
适用场景:企业内网、学校机房、政府专网、工厂局域网
📋 目录
一、为什么需要内网部署
1.1 内网部署的优势
安全性:
- ✅ 不暴露在公网,避免外部攻击
- ✅ 数据不出内网,保护商业机密
- ✅ 符合等保要求(政府/金融行业)
- ✅ 减少DDoS风险
性能:
- ✅ 内网带宽高(千兆/万兆)
- ✅ 延迟极低(<1ms)
- ✅ 无公网拥堵
- ✅ 访问速度快
成本:
- ✅ 无需购买域名
- ✅ 无需ICP备案
- ✅ 无需SSL证书费用
- ✅ 节省带宽成本
可控性:
- ✅ 完全自主控制
- ✅ 不受运营商影响
- ✅ 可随时调整配置
- ✅ 便于统一管理
1.2 典型应用场景
场景1:企业内部官网
需求:
- 展示公司介绍、产品信息
- 员工内部访问
- 客户来访时展示
- 不需要对外公开
案例:
某制造企业:
- 内网地址:http://192.168.1.100
- 访问方式:员工电脑浏览器直接访问
- 用途:新员工培训、客户参观展示
场景2:学校机房教学系统
需求:
- 学生实验平台
- 教学资源展示
- 作业提交系统
- 仅限校园网访问
案例:
某大学计算机系:
- 内网地址:http://10.0.0.50
- 访问范围:校园网内
- 用途:课程实验、在线测试
场景3:政府专网系统
需求:
- 政务信息公开
- 内部办公系统
- 必须符合等保三级
- 物理隔离外网
案例:
某市政府:
- 专网地址:http://172.16.0.10
- 安全措施:防火墙+审计+加密
- 用途:政务公开、内部审批
场景4:工厂生产管理系统
需求:
- 生产数据展示
- 设备监控面板
- 工艺参数查询
- 工业内网运行
案例:
某汽车制造厂:
- 内网地址:http://192.168.10.200
- 网络:工业以太网
- 用途:生产线监控、质量追溯
二、内网部署架构设计
2.1 基础架构图
2.2 网络拓扑
小型部署(单服务器):
┌─────────────┐
│ Nginx服务器 │
│ 192.168.1.10│
└──────┬──────┘
│
┌────────────┼────────────┐
│ │ │
┌─────┴─────┐ ┌───┴────┐ ┌────┴─────┐
│ 员工电脑1 │ │员工电脑2│ │ 访客电脑 │
│192.168.1.2│ │192.168.│ │192.168.1.│
└───────────┘ └────────┘ └──────────┘
中型部署(负载均衡):
┌──────────────┐
│ 负载均衡器 │
│ 192.168.1.1 │
└──┬───────┬───┘
│ │
┌───────┴─┐ ┌──┴────────┐
│Nginx-1 │ │ Nginx-2 │
│192.168. │ │192.168.1. │
│ 10 │ │ 11 │
└─────────┘ └───────────┘
2.3 IP地址规划
推荐方案:
| 网段 | 用途 | 示例 |
|---|---|---|
| 192.168.1.0/24 | 办公网 | 192.168.1.10(服务器) |
| 192.168.2.0/24 | 生产网 | 192.168.2.10(服务器) |
| 10.0.0.0/24 | 服务器区 | 10.0.0.10(服务器) |
| 172.16.0.0/24 | 管理网 | 172.16.0.10(服务器) |
最佳实践:
- 服务器使用固定IP(不要DHCP)
- 预留IP段给未来扩展
- 记录IP分配表
- 设置IP-MAC绑定(防ARP欺骗)
三、Nginx基础配置
3.1 安装Nginx
CentOS/RHEL系统
# 安装EPEL源
yum install -y epel-release
# 安装Nginx
yum install -y nginx
# 启动Nginx
systemctl start nginx
# 设置开机自启
systemctl enable nginx
# 检查状态
systemctl status nginx
Ubuntu/Debian系统
# 更新软件包
apt update
# 安装Nginx
apt install -y nginx
# 启动Nginx
systemctl start nginx
# 设置开机自启
systemctl enable nginx
Windows系统
1. 下载Nginx:http://nginx.org/en/download.html
2. 解压到:D:\nginx
3. 启动:双击 nginx.exe 或命令行执行 nginx
4. 访问:http://localhost
3.2 基础配置文件
配置文件位置:
- Linux:
/etc/nginx/nginx.conf - Windows:
D:\nginx\conf\nginx.conf
最小化配置:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
3.3 内网专用配置
完整配置示例:
# Nginx内网部署配置
# 适用于:192.168.1.10
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 2048;
use epoll; # Linux高性能
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
# 日志格式
log_format main '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
access_log /var/log/nginx/access.log main;
# 性能优化
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# Gzip压缩
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css application/json
application/javascript text/xml
application/xml application/xml+rss
text/javascript;
# 网站配置
server {
listen 80;
server_name 192.168.1.10 intranet.company.com;
# 网站根目录
root /usr/share/nginx/html/website-v2;
index index.html;
# 字符集
charset utf-8;
# 主页配置
location / {
try_files $uri $uri/ /index.html;
# 缓存设置
expires 1h;
add_header Cache-Control "public";
}
# 静态资源缓存(更长)
location ~* \.(jpg|jpeg|png|gif|ico|svg)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
location ~* \.(css|js|woff|woff2|ttf|eot)$ {
expires 7d;
add_header Cache-Control "public, immutable";
}
# 禁止访问隐藏文件
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
# 自定义错误页面
error_page 404 /custom_404.html;
error_page 500 502 503 504 /custom_50x.html;
location = /custom_404.html {
root /usr/share/nginx/html/errors;
internal;
}
location = /custom_50x.html {
root /usr/share/nginx/html/errors;
internal;
}
}
}
3.4 上传网站文件
Linux系统:
# 创建网站目录
mkdir -p /usr/share/nginx/html/website-v2
# 上传文件(从本地)
scp -r ./website-v2/* root@192.168.1.10:/usr/share/nginx/html/website-v2/
# 或使用rsync(更高效)
rsync -avz ./website-v2/ root@192.168.1.10:/usr/share/nginx/html/website-v2/
# 设置权限
chown -R nginx:nginx /usr/share/nginx/html/website-v2
chmod -R 755 /usr/share/nginx/html/website-v2
Windows系统:
方式1:直接复制
- 将website-v2文件夹复制到 D:\nginx\html\
方式2:使用WinSCP
- 连接服务器
- 拖拽上传
3.5 测试与验证
# 测试配置文件
nginx -t
# 重新加载配置(不中断服务)
systemctl reload nginx
# 完全重启
systemctl restart nginx
# 查看运行状态
systemctl status nginx
# 查看监听端口
netstat -tuln | grep 80
# 查看进程
ps aux | grep nginx
浏览器访问测试:
http://192.168.1.10
应该看到网站首页
四、内网访问方案
4.1 方案对比
| 方案 | 难度 | 用户体验 | 适用规模 | 维护成本 |
|---|---|---|---|---|
| IP直接访问 | ⭐ | ⭐⭐ | 小型 | 低 |
| hosts文件 | ⭐⭐ | ⭐⭐⭐⭐ | 小型 | 中 |
| 内网DNS | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 中大型 | 中 |
| 路由器域名劫持 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 中型 | 高 |
4.2 方案1:IP直接访问(最简单)
配置:
无需任何配置,直接使用IP访问
访问方式:
浏览器输入:http://192.168.1.10
优点:
- ✅ 零配置
- ✅ 立即可用
- ✅ 无需维护
缺点:
- ❌ IP难记
- ❌ IP变更需通知所有人
- ❌ 不够专业
适用场景:
- 临时演示
- 小规模团队(<10人)
- 测试环境
4.3 方案2:修改hosts文件(推荐小团队)
原理:
在每台客户端电脑的hosts文件中添加域名映射
Windows系统:
- 打开hosts文件
路径:C:\Windows\System32\drivers\etc\hosts
用记事本以管理员身份打开
- 添加映射
# 公司内网官网
192.168.1.10 company.local
192.168.1.10 www.company.local
192.168.1.10 intranet.company.com
-
保存文件
-
刷新DNS缓存
ipconfig /flushdns
Mac/Linux系统:
# 编辑hosts文件
sudo vim /etc/hosts
# 添加映射
192.168.1.10 company.local
192.168.1.10 www.company.local
# 保存退出
# 刷新DNS(Mac)
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
# 刷新DNS(Linux)
sudo systemctl restart nscd
批量部署脚本(Windows):
@echo off
echo 正在配置内网域名...
:: 备份原hosts文件
copy C:\Windows\System32\drivers\etc\hosts C:\Windows\System32\drivers\etc\hosts.bak
:: 添加域名映射
echo 192.168.1.10 company.local >> C:\Windows\System32\drivers\etc\hosts
echo 192.168.1.10 www.company.local >> C:\Windows\System32\drivers\etc\hosts
:: 刷新DNS
ipconfig /flushdns
echo 配置完成!
pause
批量部署脚本(Linux):
#!/bin/bash
# deploy-hosts.sh
SERVER_IP="192.168.1.10"
DOMAINS=("company.local" "www.company.local")
# 备份
cp /etc/hosts /etc/hosts.bak.$(date +%Y%m%d)
# 添加映射
for domain in "${DOMAINS[@]}"; do
if ! grep -q "$domain" /etc/hosts; then
echo "$SERVER_IP $domain" >> /etc/hosts
fi
done
# 刷新DNS
systemctl restart nscd
echo "Hosts配置完成"
优点:
- ✅ 可使用域名访问
- ✅ 配置简单
- ✅ 无需额外服务器
缺点:
- ❌ 每台电脑都要配置
- ❌ 新电脑需手动配置
- ❌ IP变更需更新所有电脑
适用场景:
- 小型团队(10-50人)
- 固定办公设备
- IT人员可统一管理
4.4 方案3:内网DNS服务器(推荐中大型)
架构:
┌─────────────┐
│ DNS服务器 │
│ 192.168.1.2 │
└──────┬──────┘
│
┌────────────┼────────────┐
│ │ │
┌─────┴─────┐ ┌───┴────┐ ┌────┴─────┐
│ 员工电脑1 │ │员工电脑2│ │ 员工电脑N │
│ DNS指向 │ │DNS指向 │ │ DNS指向 │
└───────────┘ └────────┘ └──────────┘
│
│ 解析
↓
┌─────────────┐
│ Web服务器 │
│192.168.1.10 │
└─────────────┘
使用BIND搭建DNS服务器(Linux)
安装BIND:
# CentOS
yum install -y bind bind-utils
# Ubuntu
apt install -y bind9 bind9utils
配置主配置文件:
vim /etc/named.conf
options {
listen-on port 53 { 192.168.1.2; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { 192.168.1.0/24; }; // 只允许内网查询
recursion yes;
};
zone "company.local" IN {
type master;
file "company.local.zone";
};
创建区域文件:
vim /var/named/company.local.zone
$TTL 86400
@ IN SOA ns1.company.local. admin.company.local. (
2026050901 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
; 名称服务器
@ IN NS ns1.company.local.
; A记录
ns1 IN A 192.168.1.2
www IN A 192.168.1.10
intranet IN A 192.168.1.10
启动DNS服务:
# 检查配置
named-checkconf
# 启动BIND
systemctl start named
systemctl enable named
# 开放防火墙
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
客户端配置:
Windows:
控制面板 → 网络和共享中心 → 更改适配器设置
→ 右键网卡 → 属性 → IPv4 → 属性
→ DNS服务器:192.168.1.2
Linux:
vim /etc/resolv.conf
nameserver 192.168.1.2
测试:
nslookup www.company.local
# 应返回:192.168.1.10
ping www.company.local
# 应ping通192.168.1.10
使用dnsmasq(更简单)
安装:
yum install -y dnsmasq
配置:
vim /etc/dnsmasq.conf
# 监听地址
listen-address=192.168.1.2
# 上游DNS(用于解析外网域名)
server=114.114.114.114
server=8.8.8.8
# 内网域名映射
address=/company.local/192.168.1.10
address=/www.company.local/192.168.1.10
address=/intranet.company.com/192.168.1.10
启动:
systemctl start dnsmasq
systemctl enable dnsmasq
优点:
- ✅ 集中管理,一次配置
- ✅ 新电脑自动生效
- ✅ 易于维护
- ✅ 专业可靠
缺点:
- ❌ 需要额外服务器
- ❌ 配置相对复杂
- ❌ DNS故障影响所有电脑
适用场景:
- 中大型企业(50人以上)
- 有专职IT人员
- 长期稳定运行
4.5 方案4:路由器域名劫持
原理:
在企业路由器上配置DNS重定向
常见路由器配置:
OpenWRT:
# 安装dnsmasq
opkg install dnsmasq
# 配置
vim /etc/config/dhcp
config dnsmasq
option domainneeded '1'
option localise_queries '1'
list address '/company.local/192.168.1.10'
list address '/www.company.local/192.168.1.10'
华硕路由器:
网页管理界面 → LAN → DHCP服务器
→ DNS Server → 手动指定
→ 添加自定义DNS映射
优点:
- ✅ 无需额外服务器
- ✅ 配置简单
- ✅ 所有设备自动生效
缺点:
- ❌ 依赖路由器功能
- ❌ 普通路由器不支持
- ❌ 灵活性较差
五、高级功能配置
5.1 HTTPS配置(内网SSL)
为什么内网也需要HTTPS?
- 防止内网嗅探
- 浏览器不再标记"不安全"
- 支持HTTP/2提升性能
- 符合安全规范
方案1:自签名证书
生成证书:
# 生成私钥
openssl genrsa -out server.key 2048
# 生成证书签名请求
openssl req -new -key server.key -out server.csr \
-subj "/C=CN/ST=Shanghai/L=Shanghai/O=Company/CN=company.local"
# 生成自签名证书
openssl x509 -req -days 3650 -in server.csr \
-signkey server.key -out server.crt
配置Nginx:
server {
listen 443 ssl;
server_name company.local;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
root /usr/share/nginx/html/website-v2;
index index.html;
}
客户端信任证书:
Windows:
1. 双击server.crt
2. 安装证书
3. 选择"受信任的根证书颁发机构"
4. 完成
Mac:
1. 钥匙串访问
2. 导入证书
3. 设置为"始终信任"
方案2:内网CA(推荐大企业)
使用EasyRSA搭建CA:
# 安装EasyRSA
yum install -y easy-rsa
# 初始化PKI
easyrsa init-pki
# 创建CA
easyrsa build-ca
# 为Web服务器签发证书
easyrsa gen-req web-server nopass
easyrsa sign-req server web-server
# 得到证书
pki/ca.crt
pki/issued/web-server.crt
pki/private/web-server.key
分发CA证书:
通过组策略(AD域)批量部署到所有Windows电脑
或通过MDM部署到Mac/iOS设备
5.2 访问控制
IP白名单
server {
listen 80;
server_name company.local;
# 只允许特定IP段访问
allow 192.168.1.0/24;
allow 192.168.2.0/24;
deny all;
root /usr/share/nginx/html/website-v2;
index index.html;
}
用户认证
server {
listen 80;
server_name company.local;
# HTTP Basic Auth
auth_basic "Internal Website";
auth_basic_user_file /etc/nginx/.htpasswd;
root /usr/share/nginx/html/website-v2;
index index.html;
}
创建密码文件:
# 安装工具
yum install -y httpd-tools
# 创建用户
htpasswd -c /etc/nginx/.htpasswd admin
# 输入密码
# 添加更多用户
htpasswd /etc/nginx/.htpasswd user1
5.3 反向代理(内网多服务)
场景:一个域名访问多个内网服务
# 官网
server {
listen 80;
server_name company.local;
location / {
proxy_pass http://192.168.1.10:8080;
}
}
# OA系统
server {
listen 80;
server_name oa.company.local;
location / {
proxy_pass http://192.168.1.20:8081;
}
}
# CRM系统
server {
listen 80;
server_name crm.company.local;
location / {
proxy_pass http://192.168.1.30:8082;
}
}
5.4 日志审计
详细日志配置:
log_format detailed '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
'$request_time $upstream_response_time';
access_log /var/log/nginx/access.log detailed;
日志轮转:
vim /etc/logrotate.d/nginx
/var/log/nginx/*.log {
daily
rotate 30
compress
delaycompress
missingok
notifempty
create 0640 nginx nginx
sharedscripts
postrotate
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
endscript
}
5.5 性能监控
启用stub_status模块:
server {
listen 80;
server_name monitor.company.local;
location /nginx_status {
stub_status;
allow 192.168.1.0/24;
deny all;
}
}
访问监控页面:
http://192.168.1.10/nginx_status
输出示例:
Active connections: 10
server accepts handled requests
12345 12345 67890
Reading: 0 Writing: 1 Waiting: 9
六、安全加固策略
6.1 基础安全
禁用不必要的模块:
# nginx.conf
# 注释掉不需要的模块
# load_module modules/ngx_mail_module.so;
# load_module modules/ngx_stream_module.so;
隐藏版本信息:
http {
server_tokens off;
}
限制请求大小:
http {
client_max_body_size 10m;
client_header_buffer_size 1k;
large_client_header_buffers 4 8k;
}
6.2 防火墙配置
Linux防火墙:
# 只开放必要端口
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-port=22/tcp # SSH
firewall-cmd --reload
# 查看规则
firewall-cmd --list-all
Windows防火墙:
# 开放80端口
New-NetFirewallRule -DisplayName "Nginx HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
# 开放443端口
New-NetFirewallRule -DisplayName "Nginx HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
6.3 定期更新
# 更新Nginx
yum update nginx
# 更新系统
yum update
# 重启服务
systemctl restart nginx
6.4 备份策略
自动备份脚本:
#!/bin/bash
# backup-nginx.sh
BACKUP_DIR="/backup/nginx"
DATE=$(date +%Y%m%d_%H%M%S)
# 创建备份目录
mkdir -p $BACKUP_DIR
# 备份配置文件
tar -czf $BACKUP_DIR/config_$DATE.tar.gz /etc/nginx/
# 备份网站文件
tar -czf $BACKUP_DIR/website_$DATE.tar.gz /usr/share/nginx/html/
# 备份日志
tar -czf $BACKUP_DIR/logs_$DATE.tar.gz /var/log/nginx/
# 删除30天前的备份
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete
echo "备份完成:$DATE"
定时任务:
# 每天凌晨2点备份
crontab -e
0 2 * * * /usr/local/bin/backup-nginx.sh
七、常见问题解答
7.1 连接问题
Q1: 无法访问内网网站?
排查步骤:
# 1. 检查服务器是否运行
systemctl status nginx
# 2. 检查端口监听
netstat -tuln | grep 80
# 3. 检查防火墙
firewall-cmd --list-all
# 4. 测试本地访问
curl http://localhost
# 5. 从客户端ping
ping 192.168.1.10
# 6. 检查路由
traceroute 192.168.1.10
常见原因:
- Nginx未启动
- 防火墙阻止
- 网线/交换机故障
- IP地址冲突
Q2: 访问速度慢?
优化措施:
# 开启Gzip
gzip on;
# 增加worker进程
worker_processes auto;
# 调整keepalive
keepalive_timeout 65;
keepalive_requests 100;
# 启用sendfile
sendfile on;
tcp_nopush on;
检查网络:
# 测试带宽
iperf3 -s # 服务器端
iperf3 -c 192.168.1.10 # 客户端
7.2 配置问题
Q3: 修改配置后不生效?
解决方法:
# 1. 测试配置语法
nginx -t
# 2. 重新加载
systemctl reload nginx
# 3. 如果还不行,完全重启
systemctl restart nginx
# 4. 清除浏览器缓存
Ctrl+F5 强制刷新
Q4: 403 Forbidden错误?
原因和解决:
# 1. 检查文件权限
ls -la /usr/share/nginx/html/website-v2/
# 2. 修正权限
chown -R nginx:nginx /usr/share/nginx/html/website-v2
chmod -R 755 /usr/share/nginx/html/website-v2
# 3. 检查SELinux(CentOS)
getenforce
setenforce 0 # 临时禁用测试
# 4. 永久解决SELinux
chcon -Rt httpd_sys_content_t /usr/share/nginx/html/website-v2
7.3 域名问题
Q5: hosts配置了但域名无法访问?
排查:
# 1. 检查hosts文件格式
cat /etc/hosts
# 确保格式正确:IP 域名
# 2. 刷新DNS缓存
# Windows
ipconfig /flushdns
# Mac
sudo dscacheutil -flushcache
# Linux
sudo systemctl restart nscd
# 3. 测试解析
ping company.local
# 4. 检查是否有空格/制表符问题
# 使用单个空格或制表符分隔
7.4 安全问题
Q6: 如何防止内网扫描?
防护措施:
# 1. 限制访问频率
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
server {
limit_req zone=one burst=20 nodelay;
}
# 2. 禁止非法User-Agent
if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) {
return 403;
}
# 3. 记录可疑行为
log_format security '$remote_addr [$time_local] "$request" '
'$status "$http_user_agent"';
💻 代码解决的问题
内网部署的核心问题
问题1:如何让员工方便访问?
- 解决方案:内网DNS + 域名映射
- 效果:从记IP变成记域名
问题2:如何保证安全?
- 解决方案:防火墙 + IP白名单 + 访问控制
- 效果:只有授权人员能访问
问题3:如何提升性能?
- 解决方案:Gzip压缩 + 缓存优化 + CDN(内网)
- 效果:访问速度提升50%+
问题4:如何便于维护?
- 解决方案:自动化脚本 + 日志审计 + 监控告警
- 效果:运维效率提升3倍
🎯 日常应用场景
1. 制造业企业
需求:
- 产品展示厅
- 客户参观时演示
- 不对外公开
- 需要高清图片快速加载
方案:
服务器:192.168.10.100
域名:showroom.factory.local
特点:大图片缓存30天,内网千兆带宽
2. 政府机关
需求:
- 政务信息公开
- 物理隔离外网
- 符合等保三级
- 严格审计
方案:
服务器:172.16.0.10
域名:gov.intranet
安全:IP白名单 + 用户认证 + 完整日志
3. 学校实验室
需求:
- 学生实验平台
- 教学资源展示
- 并发访问高
- 低成本
方案:
服务器:10.0.0.50
域名:lab.school.local
特点:负载均衡,支持200+并发
⏱️ 部署时间分析
| 步骤 | 耗时 | 说明 |
|---|---|---|
| Nginx安装 | 5分钟 | 一键安装 |
| 基础配置 | 10分钟 | 配置文件编写 |
| 文件上传 | 10-30分钟 | 取决于文件大小 |
| hosts配置 | 5分钟/台 | 或使用脚本批量 |
| DNS服务器 | 30分钟 | 首次搭建 |
| 测试验证 | 15分钟 | 功能测试 |
| 总计 | 1-2小时 | 单服务器 |
📊 方案选择决策树
需要内网部署?
├─ 人数 < 10人
│ └─ IP直接访问 或 hosts
├─ 人数 10-50人
│ └─ hosts批量部署
├─ 人数 50-200人
│ └─ dnsmasq DNS服务器
└─ 人数 > 200人
└─ BIND DNS + AD集成
📝 经验总结
核心要点
-
选择合适的访问方案
- 小团队:hosts文件
- 中大型:内网DNS
- 追求简单:IP直连
-
安全第一
- 防火墙只开必要端口
- 定期更新系统和Nginx
- 备份配置文件和数据
-
性能优化
- 开启Gzip压缩
- 合理设置缓存
- 内网带宽优势充分利用
-
便于维护
- 自动化脚本
- 完善的日志
- 文档记录
🔗 相关资源
官方文档
- Nginx官方:http://nginx.org/en/docs/
- BIND DNS:https://bind9.readthedocs.io/
- dnsmasq:http://www.thekelleys.org.uk/dnsmasq/doc.html
工具推荐
- OpenSSL:生成SSL证书
- Wireshark:网络抓包分析
- iperf3:带宽测试
💬 结语
内网部署虽然不涉及互联网,但同样需要专业的配置和管理。通过合理的架构设计和安全策略,可以构建稳定、高效、安全的内网官网系统。
关键提醒:
- ✅ 根据规模选择合适的方案
- ✅ 重视安全和备份
- ✅ 做好文档记录
- ✅ 定期维护和更新
希望这篇指南能帮助你顺利部署内网官网!
版权声明:本文基于实际项目经验编写,具体配置请根据实际情况调整。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)