Windows Sever关于80端口之争
默认情况下安装了IIS服务器角色的Windows系统,其80端口就被占用了。但是占用80端口的进程却不是WWW Service更不是IIS Admin Sevice,而是处于kernel地位的Http.sys。通过命令netstat -ano可以轻易发现占用80端口的是PID为4的System进程。该进程是Winodws NT系统的内核进程的别名。硬件系统启动并完成引导后载入的Windows系统内核和其他重要的系统文件,其中包含http.sys。http.sys准确来说是实现http协议的组件,不是一个Windows服务,在系统进程中无法找到,在系统的服务中也无法找到,但却是IIS的重要组件WWW Service所依的关键组件。下图展示了IIS的Http的请求架构,更多关于IIS的架构可以查阅这里。

回到主题,http.sys作为kernel地位的组件可不是IIS专属的,许多面向Windows应用和服务都可以调用http.sys的API进行编程,带来了很多方便。但是对于诸如Apache和Nginx这些诞生于Linux的开源软件移植到Windows平台时,就不那么有趣了,他们不使用http.sys的API。那么问题来了,不使用共同的中间件,出现硬件资源冲突在所难免。如果可以确保改系统只用于运行Apache和Nginx这些软件,那可以简单的使用命令net stop http的停掉http.sys。但是依赖http.sys的应用和服务太多了,而且有时我们希望他们能够共存,并解决端口冲突的问题。
那么比较好的解决方案是:限制http.sys监听80端口的ip地址,让http.sys只监听在列表中的IP的80端口,而其他的IP地址的80端口给Apache和Nginx使用。如下:
PS C:\Users\administrator.cloud> netsh
netsh>http
netsh http>add iplisten 172.16.1.1 IP address successfully added netsh http>show iplisten IP addresses present in the IP listen list:
------------------------------------------- 172.16.1.1 netsh http>delete iplisten 172.16.1.1 IP address successfully deleted netsh http>quit
Windows Sever关于80端口之争的更多相关文章
- windows系统查看80端口被占用的程序并结束该程序运行
一.背景 最近系统更新以后,我在Idea中适用80端口启动项目的时候发现80端口被占用了,就查了资料看怎么找到占用80端口的程序并结束其运行,下面把解决方式共享给大家. 二.解决步骤 1.首先打开控制 ...
- tomcat7.0 windows部署使用80端口问题
如果安装有.net的IDE,那么80端口容易被IIS内的站点占用,如果不是则手动查找. 1:在命令行中输入netstat -ano,得到端口号对应的PID pid这么来显示
- windows下关闭80端口被system占用的情况
用管理员运行cmd然后用net stop http 停止pid 为4的进程
- Windows下80端口被pid为4的System进程占用解决方法
前言 之前是Windows 7系统,前段时间装了Windows 10,php环境还没来得及搭建.今天折腾了一下,是用nginx+php,端口是80(已经停止了iis服务),nginx就是起不来,十之八 ...
- 解决windows系统80端口被占用问题(转)
在windows下部署web应用(80端口),启动时提示bind 80端口失败 检查端口占用: netstat -ano | findstr 0.0.0.0:80 发现System进程 (pid=4) ...
- 在windows和linux下如何查看80端口占用情况?是被哪个进程占用?如何终止等
一.在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等 这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入&quo ...
- Windows Server 2012 R2下通过80端口访问Odoo ERP
背景 Odoo 9.0系统,安装于Windows Server 2012R2,同时与IIS并存.Odoo自带web服务器,使用端口8069.因客户需要用80端口访问,因此需要进一步设置,且8069端口 ...
- 解决windows系统80端口被占用问题
在windows下部署web应用(80端口),启动时提示bind 80端口失败 检查端口占用: netstat -ano | findstr 发现System进程 (pid=4) 占用了端口 然而本机 ...
- 【Windows 8】pid为4的system进程占用80端口的解决办法
因为Apache无法启动的原因,用netstat命令查看了一下80端口是否被占用了,如下: C:\Users\Maple>netstat -ano | findstr TCP LISTENING ...
随机推荐
- opencart 后台导航菜单添加步骤
1,找到在catalog\language\english\common\header.php // Text$_['text_affiliate'] = 'Affiliates';$_['text_ ...
- 关于线上的bug什么时候修复的思考
这里系统专门指的是那种用户量大的系统,比如有几百万或者上千万的注册会员.因为小系统因为用户量少,不存在这种思考,考虑有时候是多余的.另外还有内部系统,给自己公司内部人员使用的,即便是出现了问题,也不会 ...
- java内存模型-重排序
数据依赖性 如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性.数据依赖分下列三种类型: 名称 代码示例 说明 写后读 a = 1;b = a; 写一个变量之 ...
- PCL -语法错误:“::” error C2589: “(”:“::”右边的非法标记
1.错误原因:系统函数与pcl中的max函数冲突导致的 2.两种解决办法: 1)错误中max和min函数用括号括起来,例如"std::Max"修改为“(std::Max)”. 2) ...
- JavaScript 事件绑定及深入
一.传统事件绑定的问题 解决覆盖问题,我们可以这样去解决:window.onload = function () { //第一个要执行的事件,会被覆盖 alert(1);};if (typeof wi ...
- ABAP绘图功能模块概观(转)
ABAP Graphics FM OverviewABAP绘图功能模块概观 此处仅将功能模块及范例程序列出(若要列出详细参数篇幅过大) 2 Main Graphics Demo Program: GR ...
- AE选中要素
private void 选中要素ToolStripMenuItem_Click(object sender, EventArgs e) { if(axMapControl2.LayerCount&l ...
- android HorizontalScrollView
第一个控件,借鉴网上的资料,自己稍加修改,横向滑动图片浏览功能,纪念下 布局文件 <?xml version="1.0" encoding="utf-8" ...
- HTTPS学习总结
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 21.0px Verdana; color: #393939 } span.s1 { } HTTPS学习总结 ...
- xcode 删除文件后编译会出现*** is missing from working copy
删除文件后 工程中会出现如图所示 如果你使用了svn管理工具 你就会看到如图所示 然后 选中 删除 就可以了 好了 多了 不多说了 最近比较忙 博客写的比较 少 等闲了 一定会 ...