【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端口即可访问刚才的项目:
作者:YanBigFeg —— 颜秉锋
出处:http://www.cnblogs.com/yanbigfeg
本文版权归作者和博客园共有,欢迎转载,转载请标明出处。如果您觉得本篇博文对您有所收获,觉得小弟还算用心,请点击右下角的 [推荐],谢谢!