windows服务器上用nginx转发到iis中的网站

2024-06-23 16:20

本文主要是介绍windows服务器上用nginx转发到iis中的网站,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

windows服务器上用nginx转发到iis中的网站

2024年6月23日 测试通过

前提:华为云1核心2G内存1M带宽 服务器 ¥40/年,还没有备案,80端口用不了,在安全组里把81端口打开了,同时记得登录云服务器里把WINDOWS的防火墙关闭或者放行81端口

想法:windows服务器里下载nginx windows版本,然后所有请求都通过nginx转发到IIS里部署的网站上,IIS上部署的网站不绑定80端口,每个IIS网站都绑定一个如8001,8002,8003 这样的端口一直下去。。。

看了一下以前的小目标,其实这个想法之前就已经自己测试实现过了,看记录是23年9月的时候就测试过了,不过那时没有做到记录,今天测试好了特此记录一下!!!

nginx版本:1.25.2

iis里部署netcore网站:绑定里的主机名是localhost,端口是8003

nginx里的server写法:

 

 server{listen    81;server_name tool.niunan.net; location / { proxy_redirect http://localhost:8003/ /;proxy_set_header Host localhost; #记得iis里的绑定的主机名也要是localhostproxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://localhost:8003/; }}

server_name是访问的域名,因为没有备案无法用80端口,访问只能是 http://tool.niunan.net:81来访问,如果没有server_name的话就可以直接用http://ip:81来访问了

然后命令行下:

 

//检测nginx配置文件是否有错误
nginx -t
//没有错误就可以运行了
nginx.exe
//修改配置文件后热重载nginx
nginx -s reload
//停止nginx
nginx -s stop
//如果错误信息里提示端口被占用什么的,可以先停掉w3c服务,启动得nginx了再开启w3c服务
net stop w3svc
net start w3svc
//cmd下查找端口占用情况
netstat -ano|findstr 80
//上面的命令查找出来最后一列是进程ID,再通过下面的CMD命令查找对应哪个程序
tasklist |findstr 25728

弄好后不出意外就可以在外网输入http://tool.niunan.net:81来访问部署在iis上的netcore网站了,nginx会转发到http://localhost:8003上,而且客户端IP也会一同提交过去

自己弄的时候先是怎么都访问不了,经检查发现是我华为云安全组是放开了81端口,但是WIN服务器上的防火墙没有放开81端口,改了以后就行了

然后就是会碰到

Bad Request Invalid HostnameHTTP Error 400. The request hostname is invalid

的错误,经查是配置文件里的

proxy_set_header Host localhost; #记得iis里的绑定的主机名也要是localhost

这一行里的localhost要和IIS绑定里的主机名对应上,如果IIS主机名写的是127.0.0.1,这里也要写上127.0.0.1

参考:Nginx 代理调用 IIS报错:Bad Request Invalid Hostname HTTP Error 400. The request hostname is invalid_iis bad request - invalid hostname-CSDN博客

这篇关于windows服务器上用nginx转发到iis中的网站的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1087661

相关文章

Nginx安全防护的多种方法

《Nginx安全防护的多种方法》在生产环境中,需要隐藏Nginx的版本号,以避免泄漏Nginx的版本,使攻击者不能针对特定版本进行攻击,下面就来介绍一下Nginx安全防护的方法,感兴趣的可以了解一下... 目录核心安全配置1.编译安装 Nginx2.隐藏版本号3.限制危险请求方法4.请求限制(CC攻击防御)

nginx中端口无权限的问题解决

《nginx中端口无权限的问题解决》当Nginx日志报错bind()to80failed(13:Permissiondenied)时,这通常是由于权限不足导致Nginx无法绑定到80端口,下面就来... 目录一、问题原因分析二、解决方案1. 以 root 权限运行 Nginx(不推荐)2. 为 Nginx

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

Nginx 重写与重定向配置方法

《Nginx重写与重定向配置方法》Nginx重写与重定向区别:重写修改路径(客户端无感知),重定向跳转新URL(客户端感知),try_files检查文件/目录存在性,return301直接返回永久重... 目录一.try_files指令二.return指令三.rewrite指令区分重写与重定向重写: 请求

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间