IIS发布.net网站(配置Nginx以及HTTP和HTTPS)

背景

    新闻发布系统运行之后,局域网内的机器是否可以访问呢?
    首先新闻发布系统是个.NET 项目,局域网内的机器是可以通过指定的网络地址或主机名来访问它的。那是不是这样呢,先来看看原理

    当在本地计算机上运行 .NET 项目时,默认情况下,该项目会绑定到本地回环地址(localhost 或 127.0.0.1)。这意味着只有本地计算机可以通过这些地址来访问项目。

    要让局域网内的其他机器能够访问该项目,就需要将项目绑定到计算机的真实 IP 地址或主机名。这将使其他机器能够通过网络连接到这台运行项目的计算机,并使用指定的 IP 地址或主机名来访问项目。

    注意,确保运行项目的计算机和其他机器在同一个局域网内,并且没有任何防火墙或网络配置阻止了对指定端口的访问。

测试过程

现象

    按照上面的分析,只要关闭防火墙或者开放端口号,局域网内的其他用户就可以通过IP地址加端口号的形式访问到它,但是,结果差强人意,完全访问不了,说无效的主机名。
在这里插入图片描述
    理论上说不通啊,但是无论怎么修改,都访问不了,这个时候,换了个思路,先看看**自己访问自己能不能行,**首先是通过localhost访问没问题,但是之后发现了问题,localhost前面的协议是https

使用localhost可以访问
在这里插入图片描述
使用ip访问不了
在这里插入图片描述

原因分析

    当使用 HTTPS 访问 localhost 时,浏览器可能会默认信任 localhost 上的证书,因为 localhost 在大多数情况下被视为安全的本地站点,即使它们没有经过有效的 SSL 证书颁发机构(CA)签名。这是因为 localhost 被认为是一个安全的本地站点,可以被用于开发和测试目的。在这种情况下,**浏览器可能会使用自签名的证书或生成的临时证书来对 localhost 进行加密通信。**这些临时证书通常只在特定的浏览器或操作系统中受信任,并且不适用于生产环境。
因此,当在浏览器中使用 https://localhost 访问时,浏览器可能会忽略证书的有效性问题,并允许建立加密连接。
然而,当使用本机 IP 地址来进行 HTTPS 访问时,浏览器对证书的要求就会更加严格,因为此时涉及到真实的网络通信。在这种情况下,如果没有正确配置有效的 SSL 证书,浏览器可能会发出警告或拒绝连接。

解决办法

1、更改项目发布为http协议访问
2、通过第三方转发
3、使用IIS发布

具体实施

更改项目发布为http协议访问

    在 Visual Studio 中运行项目时,如果使用的是 IIS Express 作为 Web 服务器,它会在任务栏的托盘区域显示一个图标。
在这里插入图片描述

    这个图标代表正在运行的 IIS Express 实例,它提供了对正在开发的 Web 应用程序的访问和控制。通过单击这个图标,可以打开 IIS Express 的管理界面,查看当前运行的站点、端口号、日志等信息,并且可以停止或重新启动 IIS Express 实例。

右击托盘中的IIS
在这里插入图片描述
可以看到绑定的url
在这里插入图片描述
项目下面的Properties,右键,找到web,红框中配置url,配置成http,但是这里只能配置成localhost,而不能设置成ip地址
在这里插入图片描述
在这里插入图片描述

    要想设置ip地址,可以去项目文件夹下,.有个隐藏的vs文件夹,里面有个applicationhost.config的配置文件,找到之后再配置文件中修改,直接绑定ip地址,就可以通过http协议,访问到ip地址了

通过第三方转发

修改nginx配置文件
在这里插入图片描述
配置好ngnix之后,再访问ip,可以看到这里的端口号是8001,是nginx监听的端口,其实这里是先找到nginx,nginx做了转发。
在这里插入图片描述

使用IIS发布

一般启动IIS服务的步骤

控制面板-程序-启动或关闭windows功能
在这里插入图片描述
在这里插入图片描述
重启电脑
打开IIS
在这里插入图片描述
搜不出来就回到控制面板-系统和安全-管理工具-iis管理器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
打开默认网址
在这里插入图片描述
但是就这样设置完成之后是不能成功访问到网页的。
下面重点来了

开启.net相关服务

win+R
在这里插入图片描述
把红框里的内容都勾上
在这里插入图片描述
添加之后再回到IIS,可以看到多了红框的内容
在这里插入图片描述

配置网站

1、添加网站,名称自己起,物理路径注意选择的是项目编译之后的文件夹,这里很重要
在这里插入图片描述
在这里插入图片描述

2、关于应用池,默认为(DefaultAppPool),哪个应用池都可以,但.net CLR的版本选择如下
在这里插入图片描述
3、绑定IP,本机IP,端口不要用默认80,选用一个不冲突的其他端口,如8003

4、修改默认界面
在这里插入图片描述
打开之后可以看到有很多的默认页,优先级从上到下,可以自己添加,下图中的第一个就是自己添加的,配置的login的页面所在的路径
在这里插入图片描述
可以看到上面配置的第一个路径,与项目文件夹的对应关系
在这里插入图片描述
下图是文件夹里的样子
在这里插入图片描述5、关于配置https证书的问题(这个如果没有需求,到这里就可以结束了)
在这里插入图片描述
名称随便起
在这里插入图片描述
重新编辑网址绑定
在这里插入图片描述
访问https的地址(记得重启一下服务)
在这里插入图片描述
这里只是提醒你不安全,点击高级
在这里插入图片描述
继续访问就可以了,成功访问
在这里插入图片描述

总结

    最后再对以上内容做一个总结:

1、准备.NET网站:
确保.NET应用程序已经编译完成,并且可以在本地机器上正常运行。
确保有源代码或编译后的文件,以便在服务器上进行部署。

2、配置IIS:
在服务器上安装IIS(Internet Information Services)角色和相关功能。
创建一个新的网站或虚拟目录,将其指向.NET应用程序的编译文件夹。
配置应用程序池,确保它与.NET版本兼容,并设置适当的身份验证和授权方式。
验证配置是否正确,确保.NET网站可以在IIS中正常运行。

3、配置Nginx转发:
在服务器上安装Nginx,并确保它正确配置和运行。
编辑Nginx配置文件,添加一个反向代理(Reverse Proxy)规则,将请求转发到IIS上运行的.NET网站。
配置Nginx的监听端口和域名,以便正确路由HTTP和HTTPS请求。

4、配置HTTP和HTTPS网页:

对于HTTP网页,确保IIS和Nginx的配置正确,以便接受和处理HTTP请求。
对于HTTPS网页,需要创建一个SSL证书,可以是自签名证书或通过CA机构获得的有效证书。将证书绑定到IIS上的网站,并确保Nginx也正确配置以处理HTTPS请求(这一步也不可以不做)。
验证HTTP和HTTPS网页是否能够通过浏览器访问,并确保安全性设置正确。

  • 21
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NginxIIS是两种常见的Web服务器软件。Nginx是一个高性能的HTTP和反向代理服务器,也可以作为IMAP/POP3/SMTP代理服务器使用。它以其稳定性、丰富的功能集、示例配置文件和低系统资源消耗而闻名。许多国内的门户网站和视频分享网站都已经部署了Nginx。\[2\]而IIS是微软开发的Web服务器软件,它在Windows系统下运行,并且在Windows系统中具有较高的优先级。\[3\]在Windows系统中,如果同时安装了NginxIIS,并且它们都监听了80端口,就会导致端口冲突。由于IIS的优先级较高,一般情况下Nginx代理的页面不会正常显示,而会显示IIS的index页。解决这个问题的方法是修改Nginx配置文件,将Nginx监听的端口改为其他未被占用的端口,例如8080。这样就可以避免端口冲突,使NginxIIS可以同时运行。 #### 引用[.reference_title] - *1* *2* [Nginx学习系列之-Nginx+IIs的简单部署](https://blog.csdn.net/huan13479195089/article/details/88925098)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [[Nginx]Windows IISNginx冲突问题解决方案(Nginx初学者向)](https://blog.csdn.net/Star_Wish0311/article/details/109112242)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值