在 Windows Server 2019 上部署企业官网,核心思路就一个:IIS(Internet Information Services)是底座,数据库看需求,安全配置是保命符。
别整那些虚的,直接上干货。这套流程我带过不少项目,按这个走,稳。
第一步:环境准备与系统加固
先别急着装软件。Server 2019 默认配置很“裸”,直接上线就是靶子。
- 最小化安装原则:如果可能,选 Server Core 模式(无图形界面),资源占用少,攻击面小。如果必须用 GUI,装完先把不用的功能全删了(比如打印服务、远程桌面会话主机等)。
- 关闭不必要的端口:只开 80 (HTTP) 和 443 (HTTPS)。22/3389 这种管理端口,要么禁掉,要么改非标准端口,并配合 IP 白名单。
- 打补丁:确保系统是最新状态,特别是内核和 IIS 相关的安全更新。
第二步:安装 IIS 及相关组件
打开“服务器管理器” -> “添加角色和功能”。
- 必选角色:Web 服务器 (IIS)。
- 关键功能勾选:
- CGI:如果你用的是 PHP 或 Perl 写的网站,必须勾上。
- ASP.NET 4.7/4.8:如果是 .NET Framework 开发的老牌企业站,这个得装。注意版本匹配。
- 静态内容:HTML/CSS/JS 基础支持,默认已选。
- 请求筛选:用于防止路径遍历攻击,建议开启。
- URL 重写模块:强烈建议单独下载安装。原生 IIS 没有这个,但它是做 SEO 伪静态、301 跳转的神器。去微软官网下载
Rewrite_amd64_zh-CN.msi装上。
第三步:数据库选型(二选一)
企业官网通常有两种技术栈,对号入座:
-
方案 A:PHP + MySQL/MariaDB
- 这是最常见的 WordPress、Discuz 或自研 PHP 站点。
- 安装 MariaDB(比 MySQL 更轻量,兼容性好)。
- 安装 PHP Manager for IIS(方便在 IIS 中管理 PHP 版本和配置)。
- 注意:PHP 版本建议 7.4 或 8.0+,别用 5.x 了,早就不维护了,有安全漏洞。
-
方案 B:ASP.NET + SQL Server
- 传统企业架构。
- 安装 SQL Server Express(免费够用)或 Standard(付费高性能)。
- 确保 IIS 的 ASP.NET 功能已启用。
第四步:部署网站代码
-
创建站点:
- 打开 IIS 管理器 -> 站点 -> 添加网站。
- 物理路径指向你的代码文件夹(例如
D:Websitewwwroot)。 - 绑定域名:输入你的域名,选择 HTTPS 绑定(稍后配置证书)。
-
权限设置(最容易踩坑的地方):
- 应用池标识:默认是
ApplicationPoolIdentity。对于简单站点,这足够。如果需要读写特定目录,给该虚拟账户赋予文件夹的“修改”权限。 - 不要使用 NetworkService 或 Administrator:权限过大,一旦网站被黑,整个服务器沦陷。
- 文件系统权限:右键代码文件夹 -> 属性 -> 安全 -> 编辑。确保
IIS_IUSRS和对应的应用池身份有“读取”权限。如果是上传头像、附件的功能,还要给“写入”权限,但只给上传目录写权限,不给代码目录写权限。
- 应用池标识:默认是
第五步:HTTPS 证书配置(必须做)
现在没有 HTTPS 的网站,浏览器会标“不安全”,用户体验极差,SEO 也受影响。
- 获取证书:
- 企业级:买 DigiCert, GeoTrust 等商业证书(信任度高,适合X_X、电商)。
- 中小企业/个人:用 Let’s Encrypt 免费证书(自动续期麻烦点,但完全够用)。推荐用
Win-acme或ZeroSSL客户端自动管理。
- 导入证书:
- 将
.pfx文件导入到 IIS 的“服务器证书”中。 - 在站点绑定中,选择 HTTPS,端口 443,选中刚导入的证书。
- 将
- 强制 HTTPS:
- 利用之前安装的 URL Rewrite 模块。
- 规则示例:如果协议不是 HTTPS,则重定向到
https://{HTTP_HOST}{REQUEST_URI}。这样用户访问 http:// 会自动跳 https。
第六步:性能与安全优化(大神细节)
这部分决定你的网站快不快、稳不稳。
-
静态内容压缩:
- IIS 默认开启 Gzip 压缩。检查“HTTP 响应头”和“静态压缩”功能是否启用。能节省大量带宽,加快加载速度。
-
缓存策略:
- 对 CSS、JS、图片等静态资源设置过期时间(如 30 天)。减少重复请求,提升二次访问速度。
-
禁用目录浏览:
- 在 IIS 管理器中,选中站点 -> “目录浏览” -> 右侧操作栏点击“禁用”。防止黑客看到你的文件夹结构。
-
自定义错误页:
- 把默认的 404、500 错误页换成自己的 HTML 页面。避免泄露服务器内部信息。
-
日志轮转:
- IIS 默认每天生成一个日志文件,一年下来几百 MB,磁盘空间还好。但如果流量大,建议配置日志分割,或者定期清理旧日志。
-
WAF(Web 应用防火墙)前置:
- 重要提醒:IIS 本身防御力有限。如果预算允许,不要把 IIS 直接暴露在公网。
- 最佳实践:在 IIS 前面加一层 Cloudflare 或阿里云 WAF。所有流量先经过 CDN/WAF,再回源到你的 Server 2019。这样即使 IIS 被扫出漏洞,攻击者也打不到你。
第七步:备份与监控
-
备份策略:
- 代码:放在 Git 仓库里,别存在服务器上。
- 数据库:每天自动备份 .bak 或 .sql 文件,存到另一台机器或云存储(如 OSS/S3)。
- 系统镜像:每月做一次完整虚拟机快照。
-
监控:
- 安装
PRTG或Zabbix客户端,监控 CPU、内存、磁盘 IO、IIS 连接数。 - 设置阈值告警,比如 CPU 持续高于 80% 发微信/邮件通知。
- 安装
常见坑位提醒
- 端口冲突:确认 80/443 没有被 Skype、SQL Server Browser 等其他服务占用。
- 防火墙规则:Windows 防火墙要放行入站的 80 和 443 端口,TCP 协议。
- 时区问题:确保服务器时区设置为
UTC+8(中国标准时间),否则日志时间和实际时间对不上,排查故障时会疯掉。 - PHP 扩展缺失:很多 PHP 报错是因为没装
php_mbstring.dll、php_pdo_mysql.dll等扩展。去 php.ini 里把注释去掉,重启 IIS。
总结
在 Server 2019 上建站,IIS 是主力,安全配置是关键,备份是底线。
如果你的网站只是展示型,静态 HTML 就够了,最省事。
如果是动态交互型,PHP+MySQL 组合性价比最高,生态最丰富。
如果是大型 .NET 架构,那就老老实实配好 ASP.NET 和 SQL Server。
最后,永远不要相信“默认配置是安全的”。每多一个步骤,就多一分保障。
CLOUD云计算