Windows下80端口被进程System占用的解决方法

前言

我是windows下配置Nginx监听80端口做代理转发至IIS,遇到的此问题。

思路

思路就是windows服务器装Nginx,监听80或者443端口,网络请求请求到目标服务器后,先走Nginx,转发到localhost:10200,nginx做代理和反向代理。

目的

为什么要这么做呢?IIS站点绑证书不是很好吗?也能实现正常网络请求和响应,加个nginx不是多此一举吗?nginx实现了代理转发,我认为最好的一点就是一个域名可以绑多个站点,以前IIS一个证书绑一个站点,想加站点只能做子站点,nginx解决了此问题,轻松实现独立站点,一个域名,转发到不同端口就可以了。另外nginx还可以做负载均衡(Load Balance),打比方一个域名绑定到负载服务器,分发网络请求到两台Web服务器。

解决端口占用问题

System 4号进程占用80端口,除了IIS服务外,还有SQLServer服务也会监听80端口,把IIS和SQLServer的服务都停掉就解决了。

以下是CMD下常用命令:

1. 查看哪一个程序占用了80端口:

netstat -ano "80"

Windows下80端口被进程System占用的解决方法_第1张图片

2. 查看一下当前的http服务状态:

netsh http show servicestate

Windows下80端口被进程System占用的解决方法_第2张图片

可以看到PID进程号为3828,队列名称为WeChat的东西,正是我发布的IIS站点名。

如果80端口被占用可以通过此定位到是什么服务,比如下图:

Windows下80端口被进程System占用的解决方法_第3张图片

上图是SQLServer的报告服务,可以去任务管理器>进程/服务里面定位到它,如图:

 Windows下80端口被进程System占用的解决方法_第4张图片

services.msc中可以把它设置成手动启动,免得重启都要重新停服务。我有这个主要是我本机安装了SQL Server。如图:

Windows下80端口被进程System占用的解决方法_第5张图片

 3. 查看80端口占用情况:

netstat  -ano | findstr 0.0.0.0:80

如图:

Windows下80端口被进程System占用的解决方法_第6张图片

 

停掉IIS

Windows下80端口被进程System占用的解决方法_第7张图片

 IIS也会占用80端口,停掉他。

注意还有两个IIS的服务也一并停掉,如图:

Windows下80端口被进程System占用的解决方法_第8张图片

 基本做了这些80端口就能监听上了,如果有其他程序占用就来一套,查进程,PID,停服务,

Nginx监听80端口

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://127.0.0.1:10200;
        }
		
		#location / {
        #    root   html;
        #    index  index.html index.htm;
        #}
		
		#location /WeChat/Index {
        #    proxy_pass   http://127.0.0.1:10200;
        #}


        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
     
    }

CMD下检验一下nginx.conf是否有有问题:

C:\wwwroot\nginx-1.21.1>nginx -t
nginx: the configuration file C:\wwwroot\nginx-1.21.1/conf/nginx.conf syntax is ok
nginx: configuration file C:\wwwroot\nginx-1.21.1/conf/nginx.conf test is successful

C:\wwwroot\nginx-1.21.1>

没毛病,reload一下,nginx.conf配置生效

C:\wwwroot\nginx-1.21.1>nginx -s reload

C:\wwwroot\nginx-1.21.1>

借鉴的原文地址:https://www.cnblogs.com/firstdream/p/8057646.html

这老哥和我遇到同样问题,都是除了IIS以外还有SQL Server Report占用80问题。网上还有说改注册表http 3改0也试了没解决。感谢这位老哥分享。

仅供学习参考,如有侵权联系我删除。

你可能感兴趣的:(.NET,nginx反向代理)