windows server 2012 反向代理修改默认80端口转向3000-爱代码爱编程
我们用npm start项目以后一般端口都是3000或者其他,这个方法可以直接80端口跳3000.
Nginx的方法:
修改配置文件
在 Nginx 配置文件中,您需要找到默认的 server block,并将其配置为监听 80 端口,并将请求代理到 3000 端口。以下是您应该添加或修改的内容:
server {
listen 80;
server_name your_domain_or_ip; # 可以是域名或服务器的 IP 地址
location / {
proxy_pass http://localhost:3000; # 将请求转发到本地 3000 端口
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;
}
}
方案一:使用 IIS URL 重写(推荐)
1. 安装必要的模块
1.1 安装 URL Rewrite 模块
- 下载地址:Microsoft URL Rewrite Module 2.0
- 下载后根据你的服务器选择 x64 或 x86 版本安装。
1.2 安装 Application Request Routing (ARR)
- 下载地址:Microsoft Application Request Routing
- 这是实现反向代理所必需的模块。
2. 配置 IIS
2.1 打开 IIS 管理器
- 按
Windows + R
,输入inetmgr
,然后回车。
2.2 启用代理功能
- 在 IIS 管理器中点击左侧的服务器名称。
- 双击中间窗格的 Application Request Routing Cache。
- 点击右侧的 Server Proxy Settings。
- 勾选 Enable proxy,然后点击 Apply 应用设置。
2.3 配置 URL 重写规则
- 在 IIS 管理器中选择默认网站。
- 双击中间窗格的 URL Rewrite。
- 在右侧点击 Add Rule(s),选择 Blank rule 在 Inbound Rules 下。
- 填写规则:
- Name: ReverseProxyToNode
- Pattern: (.*)
- Rewrite URL:
http://localhost:3000/{R:1}
- 勾选 Stop processing of subsequent rules。
- 点击 Apply 保存规则。
上面的方法由cursor提供,我是直接用的宝塔软件商店安装的IIS.然后直接走下面的步骤。
3. 创建 web.config
在 IIS 默认网站根目录(通常是 C:\inetpub\wwwroot
)创建或编辑 web.config
文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="ReverseProxyToNode" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://localhost:3000/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
4. 检查和测试
确保 React 应用正在运行
保持 React 应用在 3000 端口运行
检查防火墙设置
确保 80 端口已开放
Windows 防火墙允许 IIS 和 Node.js 的通信
测试访问
直接访问域名 xoxome.top
应该能够看到原本在 3000 端口的网站内容
4.1 确保 React 应用正在运行
- 保持 React 应用在 3000 端口运行。
4.2 检查防火墙设置
- 确保 80 端口已开放。
- 确保 Windows 防火墙允许 IIS 和 Node.js 的通信。
4.3 测试访问
- 直接访问域名
xoxome.top
,应该能够看到原本在 3000 端口的网站内容。
5. 常见问题解决
5.1 如果出现 502.3 错误
- 检查 React 应用是否正在运行。
- 检查 3000 端口是否可访问。
5.2 如果出现权限问题
- 确保 IIS 用户对网站目录有读写权限。
- 检查应用程序池的身份设置。
5.3 如果规则不生效
- 尝试重启 IIS。
这个格式已经简洁清晰,便于阅读。如果需要更详细的操作步骤或遇到具体问题,可以进一步讨论!