nginx iis占用80端口

2025-03-26 0 11

nginx iis占用80端口

当在一台服务器上同时需要使用Nginx和IIS时,可能会遇到80端口被其中一个服务占用的问题。下面提供几种解决方案来解决这个问题。

一、调整监听端口

(一)Nginx调整

最简单的办法是让其中一个软件不在80端口监听。对于Nginx来说,可以修改其配置文件(一般位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf),将监听端口改为其他未被占用的端口,例如8080。修改如下:
```bash
server {
listen 8080; # 原本为listen 80;
servername yourdomain.com;

location / {
    root   html;
    index  index.html index.htm;
}

}
``
然后重启Nginx服务:
sudo systemctl restart nginx`(如果是Linux系统,Windows下根据安装方式不同有不同的启动命令)。

(二)IIS调整

如果选择让IIS不监听80端口,在IIS管理器中,找到对应的网站,点击“绑定”,将端口修改为其他端口如8081等,最后点击确定并重新启动IIS服务(iisreset)。

二、反向代理

(一)Nginx作为IIS的反向代理

假设IIS已经占用了80端口并且有正常运行的站点。可以在Nginx中设置反向代理,使请求先到达Nginx再转发给IIS。Nginx配置如下:
```bash
server {
listen 80;
servername yourdomain.com;

location / {
    proxy_pass http://127.0.0.1:8081; # IIS实际监听的端口
    proxy_set_header Host $host;
    proxy_set_header X - Real - IP $remote_addr;
    proxy_set_header X - Forwarded - For $proxy_add_x_forwarded_for;
    proxy_set_header X - Forwarded - Proto $scheme;
}

}
```
这样,外部访问your_domain.com时,Nginx会把请求转发给IIS处理,而用户无感知地获取到IIS上的内容。

三、通过防火墙规则控制

还可以借助防火墙来实现端口转发。以Linux下的iptables为例,将发往80端口的数据转发给8080端口(假设Nginx监听8080端口)。
bash
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to -ports 8080

不过这种方式相对较为底层,不如前两种方法直观且容易维护,而且需要确保防火墙相关服务正常工作。

以上就是在同一台服务器上解决Nginx和IIS共存于80端口问题的方法,可以根据实际需求和环境特点选择合适的方式。

Image

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!cheeksyu@vip.qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有积分奖励和额外收入!
5.严禁将资源用于任何违法犯罪行为,不得违反国家法律,否则责任自负,一切法律责任与本站无关

源码下载