【Nginx】使用nginx反向代理IIS实现80端口的解放

下载版本:

   官网地址:http://nginx.org/en/download.html

 

我使用了稳定版本。

下载完成之后进行目录解压,解压之后大概就是这个样子:

网上很多人写这些了想了解概念的百度一下一搜一大把,所以就不唠叨了。只是记录一片windows中的使用,也是亲身体验,配置因为window可能有点坑所以记录以便查阅很分享。

了解nginx的功能推荐:https://blog.csdn.net/csdn265/article/details/58693594

开启服务

在当前目录运行nginx,第一种可以直接点击exe文件运行,第二种就是在当前目录启动shell命令行start nginx。

无论使用那种都是没有成功窗口的,当时我因为一闪而过的现象纠结了一大会,老以为没有成功,哈哈。所以我们可以去任务管理的进程下查看是否开启成功:

当然还有nginx告诉我们的成功信息,可以去日志文件夹下查看是否生成nginx.pid文件,此文件代表生成的线程pid值:

最后在浏览器里访问127.0.0.1看到欢迎界面:

 

然后记录下nginx的命令:

  • nginx -s stop:快速关机
  • nginx -s quit:退出
  • nginx -s reload:更改配置,使用新配置启动新工作进程,正常关闭旧工作进程
  • nginx -s reopen:重新打开日志文件

开启不成功解决

在这里有可能会不成功。出现问题我们就去解压目录下的logs文件夹下查看错误日志:

 

大概的意思就是80端口绑定失败了,意思说白可能就是80端口被占用了。

可通过以下代码查看是否某个端口被占用:

netstat -an | find "0.0.0.0:80"

 

然后在通过以下命令查看占用的pid:

netstat –ano

 

通过以上我们知道了pid=4的占用了,然后我们打开任务管理器=>详细信息:

 

发现被一个 NT Kernael &System 占用。然后我就去查这个东西的资料。说是和IIS服务相关的。然后就是关闭这个服务。

命令行关闭:

使用如下命令关闭iis相关服务(管理员身份进入cmd)

net stop http

 

然后选择Y。

 

然后继续运行以下命令,记得运行命令后重启电脑相当关键(可坑死我了)

sc config http start= disabled

 

若需要还原http服务使用以下命令即可(在管理员下):

sc config http start= demand & net start http

net start http

nginx设置代理

刚才我们已经成功开启了nginx服务,那么我们就可以使用它了,现在我用一个示例说明一下代理。毕竟我也是学习,可能这个配置也有说的不全以后在补充更详细的,这里只做一个简单的使用。

我们的示例总体效果是这样的,假如我们有一个网站可以挂在80端口下然后直接访问127.0.0.1这样就可以了,我们现在做到挂到其他端口下还可以这样访问到。

有些人会产生疑问,为什么要这样?其实很简单因为我又有了第二个网站我还想这样访问怎么办,所以我们分别把网站挂在801,802下然后nginx根据不同的访问域名代理到个字端口下。

我在这里已经有了一个弄好的网站,已经挂在了8080端口,

 

访问一下,这里如果你是本机就是127.0.0.1跟上面说的不冲突,因为我是这阿里云服务器下分配到的内网ip就是这个就当127.0.0.1来看就好了。

 

现在我们有了一个挂到8080端口下的网站,然后我们使用nginx进行80端口的反向代理配置:

首先找到nginx的文件目录:nginx根目录/conf/nginx.comfig文件

 打开文件找到HTTP节点下的server节点,配置listen 为80,server_name  为域名或者ip+端口如果是本机也可以填写localhost,

因为我又域名所以我填写了域名,但是这里我为了给大家说明白还是改成了ip:172.16.104.184。

然后在配置location 节点配置转发地址:http://172.16.104.184:8080;

然后大致的nginx.config文件内容如下:

 

配置好了以后打开命令行输入:nginx -s reload 重新加载配置文件即可生效。

然后看我在浏览器输入:172.16.104.184不需要输入8080端口即可访问刚才的项目:

 

posted @ 2018-09-18 17:13  YanBigFeg  阅读(2924)  评论(2编辑  收藏  举报