3天搞定!用iis为公司做一个内部网站从零搭建全记录
很多老板觉得搞个内部系统得找外包,报价几万起步。其实,如果你会一点电脑基础,甚至完全不懂代码,自己不会代码想做网站这个念头完全可以落地。别被“编程”两个字吓住,对于公司内部的OA、资料库或员工手册展示,用iis为公司做一个内部网站是性价比最高的方案。
今天这篇干货,就是带大家从零搭建一个能在公司局域网或公网访问的IIS网站。不需要你会写Java或Python,我们用的是最基础的静态页面和简单的ASP.NET Core环境,或者干脆就用HTML+CSS。只要跟着步骤走,三天时间,你不仅能上线一个网站,还能彻底搞懂服务器配置这套逻辑。
为什么选IIS而不是其他服务器
在动手之前,先搞清楚为什么我们选IIS(Internet Information Services)。很多小白朋友一听到服务器就想到Linux、Nginx或Apache。没错,那些在开源世界很强,但在Windows生态下,IIS依然是王者。
对比一下你就明白了:
| 维度 | IIS (Windows) | Nginx/Apache (Linux) |
|---|---|---|
| 上手难度 | 极低,图形化界面,点点鼠标就行 | 较高,需熟悉命令行和配置文件 |
| 环境依赖 | 必须Windows Server系统 | Linux、Mac、Windows均可 |
| 维护成本 | 低,微软官方支持完善,报错清晰 | 中高,配置错误常需看日志排查 |
| 适用场景 | 企业内网、.NET开发、传统ASP | 高并发、静态资源加速、Linux集群 |
对于大多数中小企业,尤其是IT部门只有1-2个人,或者运维外包团队比较弱的公司,IIS的图形化配置界面简直是救命稻草。你不需要记复杂的vim命令,不需要研究SELinux权限,打开“Internet Information Services (IIS) 管理器”,左边树状菜单点一点,右边参数改一改,网站就起来了。
而且,如果你公司里已经有Windows Server的服务器,或者买了云厂商的Windows镜像,直接安装IIS只需要几分钟。腾讯云开发者社区上有很多关于Windows Server与IIS集成的实战案例,很多大厂在做内部办公系统时,依然首选Windows+IIS组合,因为它的稳定性经过了二十多年的验证,尤其是在处理文件上传、数据库连接池这些企业级场景时,表现非常稳健。
前期准备:硬件、域名与环境
工欲善其事,必先利其器。在开始配置IIS之前,我们需要准备好“地基”。
1. 服务器选型
- 本地部署:如果你公司有自己的机房,找一台闲置的Windows Server 2019或2022机器。内存建议8GB以上,硬盘至少200GB SSD,因为IIS本身对IO有一定要求,SSD能明显提升页面加载速度。
- 云端部署:如果没有机房,买一台云服务器是最方便的。推荐配置:2核CPU、4GB内存、60GB SSD。注意,系统镜像一定要选 Windows Server,不要选Ubuntu或CentOS,否则装不了IIS。
2. 域名与网络规划
内部网站通常有两个选择:
- 纯内网访问:不需要公网IP,也不需要备案。直接在公司局域网内分配一个固定IP,比如
192.168.1.100,大家通过http://192.168.1.100访问。这是最安全、成本为零的方案。 - 公网访问:如果需要员工在家也能看,或者给客户演示,就需要公网IP和域名。这时候涉及ICP备案问题。国内服务器必须备案才能绑定域名解析。如果你不想备案,可以考虑海外服务器(如香港、新加坡节点),但速度会稍慢,且国内访问可能不稳定。
3. 环境安装
确保你的服务器已经安装了IIS。
- Windows Server:默认通常不装IIS。右键“此电脑” -> “管理” -> “服务器管理器” -> “添加角色和功能” -> 勾选“Web服务器(IIS)”。
- Windows 10/11 (测试用):设置 -> 应用 -> 可选功能 -> 添加功能 -> 勾选“IIS”。
安装过程中,IIS会提示你选择功能角色。建议勾选:
- 基本功能:静态内容、CGI、ISAPI扩展。
- 应用程序开发:ASP.NET、.NET Extensibility。
- 安全和性能:Windows身份验证(内部网站常用)。
核心实操:从零搭建网站步骤
环境就绪,开始干活。我们分两步走:先做一个静态页面测试,再部署一个简单的项目。
第一步:创建站点与目录结构
打开 IIS管理器(开始菜单搜索“Internet Information Services (IIS) Manager”)。
创建站点: 在右侧“操作”栏点击“添加网站”。
- 网站名称:
CompanyInternal(随便起,便于识别)。 - 物理路径:点击“浏览”,创建或选择一个文件夹,例如
D:\Web\Company。这是你存放网页文件的地方。 - 绑定:
- 如果内网IP是
192.168.1.100,类型选http,IP地址选“所有未分配”,端口填80。 - 如果有域名
internal.company.com,类型选http,主机名填域名。
- 如果内网IP是
- 网站名称:
权限设置(关键!) 很多人网站打不开,就是因为权限没给对。 进入
D:\Web\Company文件夹,右键属性 -> 安全 -> 编辑 -> 添加 -> 输入IIS_IUSRS和IIS AppPool\DefaultAppPool(如果用了应用池),确保它们拥有“读取”和“列出文件夹内容”的权限。
第二步:编写第一个页面
在 D:\Web\Company 文件夹下,新建一个文件,命名为 index.html。
用记事本打开,写入以下代码:
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>公司内部门户</title><style>body { font-family: "Microsoft YaHei", sans-serif; background-color: #f4f4f4; margin: 0; padding: 0; }.header { background-color: #2c3e50; color: white; padding: 20px; text-align: center; }.container { width: 80%; margin: 20px auto; background: white; padding: 20px; box-shadow: 0 0 10px rgba(0,0,0,0.1); }.card { display: inline-block; width: 30%; padding: 15px; text-align: center; border: 1px solid #ddd; margin: 5px; box-sizing: border-box; }.card:hover { background-color: #f0f0f0; cursor: pointer; }h1 { color: #2980b9; }</style>
</head>
<body><div class="header"><h1>XX公司 内部协作平台</h1></div><div class="container"><h2>快捷入口</h2><div class="card"><h3>📅 日程表</h3><p>查看团队日程</p></div><div class="card"><h3>📁 文档库</h3><p>共享文件下载</p></div><div class="card"><h3>📢 通知公告</h3><p>最新公司动态</p></div><hr><p style="color: #7f8c8d; font-size: 14px; text-align: center;">Powered by IIS | 仅限内部访问</p></div>
</body>
</html>
保存后,打开浏览器,输入 http://192.168.1.100(你的服务器IP)。如果看到上面那个漂亮的蓝色标题和三个卡片,恭喜你,你的内部网站已经跑起来了!
第三步:部署动态内容(进阶)
如果你想让网站有后台,能登录,能存数据,那就需要动态支持。对于不懂代码的人,推荐用 ASP.NET Core 或现成的 CMS系统(如WordPress,虽然它主要跑在Linux,但在IIS上也能通过配置运行,不过配置较繁琐,不推荐新手)。
更简单的方式是使用 ASP.NET Core Empty Project:
- 安装 .NET SDK。
- 在命令行创建项目:
dotnet new mvc -n CompanyPortal cd CompanyPortal dotnet publish -c Release -o D:\Web\CompanyPortal - 回到IIS管理器,添加一个新网站,物理路径指向
D:\Web\CompanyPortal。 - 确保IIS中勾选了“.NET 5/6/7/8 Extensibility”角色。
- 访问新站点,你会看到一个标准的MVVC框架首页。
这时候,你可以把这个模板交给前端同事,让他们美化,或者你自己用VS Code改改CSS。
常见问题排查与避坑指南
搭建过程中,90%的人都会遇到以下三个问题,提前告诉你怎么解决,省得你百度半天。
1. 404 Not Found
- 现象:访问主页正常,点某个链接报404。
- 原因:文件不存在,或者URL重写规则没配好。
- 解决:
- 检查物理路径下是否真的存在该文件。
- 如果是ASP.NET Core应用,确保
web.config文件存在且正确。 - 检查IIS中的“URL Rewrite”模块是否已安装。
2. 500 Internal Server Error
- 现象:页面空白,提示服务器内部错误。
- 原因:权限不足、程序崩溃、依赖缺失。
- 解决:
- 开启详细错误页:在IIS站点设置中,关闭“自定义错误”,让浏览器显示详细堆栈信息。
- 检查权限:再次确认
IIS_IUSRS是否有对该目录的读取和执行权限。 - 查看日志:去
C:\Windows\System32\LogFiles\W3SVC1\目录下查看最新的日志文件,里面会有具体的错误代码。
3. 外网无法访问,内网正常
- 原因:防火墙拦截、公网IP未映射、未备案。
- 解决:
- Windows防火墙:服务器本机防火墙必须放行80和443端口。
New-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -LocalPort 80 -Action Allow - 云厂商安全组:如果你用的是腾讯云/阿里云,记得在控制台的安全组规则里添加入方向规则,放行80端口。
- 备案:如果是国内IP且绑定域名,必须完成ICP备案,否则DNS解析会被运营商拦截。
- Windows防火墙:服务器本机防火墙必须放行80和443端口。
安全加固与长期运维建议
网站搭起来了,别高兴太早。内部网站虽然流量小,但一旦被黑,后果可能比公网网站更严重(因为往往存放敏感数据)。
1. 强制HTTPS
即使是内网,也建议配置SSL证书。
- 如果是内网,可以使用自签名证书(Self-Signed Certificate)。在IIS中绑定SSL,虽然浏览器会报“不安全”警告,但数据是加密传输的,防止局域网嗅探。
- 如果是公网,必须申请正规CA机构签发的证书(如Let's Encrypt免费证书,或购买云厂商的证书)。
2. 定期更新与补丁
Windows Server和IIS都会发布安全补丁。微软每月都会发布“补丁星期二”,务必保持系统更新。尤其是针对IIS的漏洞(如CVE-2022-30190),不更新可能导致远程代码执行。
3. 备份策略
- 文件备份:每天凌晨3点,使用
robocopy命令备份D:\Web目录到另一块硬盘或NAS。robocopy D:\Web E:\Backup\Web /MIR /LOG:C:\Logs\backup.log - 数据库备份:如果用了SQL Server,配置每日自动备份作业。
- 配置备份:定期导出IIS配置(
%windir%\system32\inetsrv\config\applicationHost.config)。
4. 访问控制
内部网站最好加上身份验证。
- Windows身份验证:利用公司域账号(Active Directory),只有公司域内的用户才能登录,无需记密码,安全又方便。在IIS站点设置中,禁用“匿名身份验证”,启用“Windows身份验证”。
- IP白名单:如果只允许特定部门访问,可以在IIS中配置IP地址和域名限制,或者在防火墙层面做限制。
5. 监控与告警
不要等到网站挂了才发现。
- 安装一个简单的监控脚本,每5分钟ping一下网站,如果超时3次,发邮件或钉钉通知管理员。
- 关注IIS管理器中的“性能”视图,监控CPU和内存使用率,防止资源耗尽。
写在最后:从工具到思维
用IIS搭建内部网站,本质上是一个“低代码”或“无代码”的集成过程。你不需要精通每一行代码,但你需要理解Web服务的基本逻辑:请求进来 -> 服务器处理 -> 返回页面。
这个过程看似简单,却涵盖了域名解析、服务器配置、文件权限、网络防火墙、安全认证等核心知识点。当你亲手把这个网站跑起来,并解决那些404、500错误时,你对“网站是怎么工作的”理解,会比看十篇教程都深刻。
对于运营和推广人员来说,掌握这项技能意味着你可以快速搭建落地页、活动页或内部知识库,不再完全依赖开发排期。这种技术自主权,是职场竞争力的重要加分项。
当然,IIS不是万能的。如果你的业务需要高并发、微服务架构或跨平台部署,Linux+Nginx+Docker才是未来方向。但对于中小企业的内部协作,IIS依然是那个“省心、稳当、好上手”的老伙计。
你的公司目前内部网站用的是IIS还是Linux?在运维过程中踩过什么奇葩的坑?或者你有什么独家的小技巧?评论区聊聊,咱们一起避坑!