多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

3天搞定!用iis为公司做一个内部网站从零搭建全记录

3天搞定!用iis为公司做一个内部网站从零搭建全记录 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,主机名填域名。权限设置(关键!) 很多人网站打不开,就是因为权限没给对。 进入 D:\Web\Company 文件夹,右键属性 - 安全 - 编辑 - 添加 - 输入 IIS_IUSRS 和 IIS AppPool\DefaultAppPool(如果用了应用池),确保它们拥有“读取”和“列出文件夹内容”的权限。第二步:编写第一个页面 在 D:\Web\Company 文件夹下,新建一个文件,命名为 index.html。 用记事本打开,写入以下代码: !DOCTYPE html html lang=zh-CN headmeta charset=UTF-8title公司内部门户/titlestylebody { 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 bodydiv class=headerh1XX公司 内部协作平台/h1/divdiv class=containerh2快捷入口/h2div class=cardh3📅 日程表/h3p查看团队日程/p/divdiv class=cardh3📁 文档库/h3p共享文件下载/p/divdiv class=cardh3📢 通知公告/h3p最新公司动态/p/divhrp 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解析会被运营商拦截。安全加固与长期运维建议 网站搭起来了,别高兴太早。内部网站虽然流量小,但一旦被黑,后果可能比公网网站更严重(因为往往存放敏感数据)。 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?在运维过程中踩过什么奇葩的坑?或者你有什么独家的小技巧?评论区聊聊,咱们一起避坑!
返回列表