0aa8fe6
这次没有正文改动。
这是 windows/IIS 建站与绑定.md 的改动记录。后台每次保存都会留一份快照,
这里显示的是快照之间的差异,不会混入其他文章的改动。
还没有后台修改记录。
下面是 Git 里的提交,可能包含其他文章的改动(因为一次提交会带上工作区所有变化)。
0aa8fe6
这次没有正文改动。
be5956e
@@ -0,0 +1,59 @@ +--- +tags: [IIS, 站点, Windows Server] +order: 60 +--- + +# IIS 建站与绑定 + +## 场景 + +Windows 服务器上要挂一个内部站点,或者给某个应用做反向代理。 + +## 前置条件 + +- 服务器有固定 IP +- 防火墙放行 80/443 +- 站点文件放好,知道应用程序池要用的账号 + +## 配置 + +```powershell +# 1. 安装 +Install-WindowsFeature -Name Web-Server, Web-Asp-Net45, Web-Mgmt-Console -IncludeManagementTools + +# 2. 建目录和站点 +New-Item -ItemType Directory -Path C:\sites\kb -Force +New-WebAppPool -Name "kb-pool" +Set-ItemProperty IIS:\AppPools\kb-pool -Name managedRuntimeVersion -Value "" +New-Website -Name "kb" -PhysicalPath C:\sites\kb -Port 80 ` + -HostHeader kb.corp.local -ApplicationPool "kb-pool" + +# 3. 防火墙 +New-NetFirewallRule -DisplayName "HTTP-80" -Direction Inbound -Protocol TCP ` + -LocalPort 80 -Action Allow +``` + +## 验证 + +```powershell +Get-Website +Get-WebBinding -Name "kb" +Invoke-WebRequest http://kb.corp.local -UseBasicParsing | Select-Object StatusCode +Get-ChildItem C:\inetpub\logs\LogFiles\W3SVC1\ | Sort-Object LastWriteTime -Descending | Select-Object -First 3 +``` + +## 回滚 + +```powershell +Remove-Website -Name "kb" +Remove-WebAppPool -Name "kb-pool" +``` + +## 坑 + +- **应用程序池账号没有目录读权限**,站点起不来只报 401.3 或 500.19。 +- 绑定里填了主机名,用 IP 访问就会 404,需要再加一条绑定或改用 IP。 +- 80 端口被别的站点占着,`New-Website` 会提示端口冲突。 +- 默认文档没配,访问目录会 403。 +- 32 位应用要在应用程序池里开 `Enable 32-Bit Applications`。 +- 日志在 `C:\inetpub\logs`,别在系统盘写满前才发现。