使用http-proxy替代nginx实现反向代理

本文介绍了一个使用Node.js实现的简单HTTP代理服务器配置方法。该代理服务器可以根据不同的主机名将请求转发到不同的本地服务端口,并对无法匹配的情况提供默认响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var proxy = require('http-proxy').createProxyServer({});
proxy.on(function(err, req, res) {
    res.writeHead(500, {
        'Content-Type': 'text/plain'
    });
});
var server = require('http').createServer(function(req, res) {
    var host = req.headers.host;
    switch (host) {
    case 'demo.maomao.gift':
        proxy.web(req, res, {
            target: 'http://localhost:3000'
        });
        break;
    case 'famanoder.com':
        proxy.web(req, res, {
            target: 'http://localhost:4030'
        });
        break;
    default:
        res.writeHead(200, {
            'Content-Type': 'text/plain'
        });
        res.end('Welcome to my server!');
    }
});
console.log("listening on port 80") server.listen(80);

  

转载于:https://www.cnblogs.com/delicious28/p/5619941.html

### 宝塔面板 Nginx 反向代理配置 #### 配置反向代理的基础流程 在宝塔面板中通过Nginx实现反向代理,能够有效地解决跨域访问等问题。具体操作如下: 对于希望设置反向代理的目标站点,在宝塔面板首页点击右侧的“网站”,随后针对指定站点点击“设置”。进入设置界面后,选择左侧菜单中的“反向代理”选项卡并点击右上角的“添加反向代理”。 在此过程中需完成几个重要参数设定:开启高级模式以便获得更多自定义权限;输入易于识别的代理名称用于后续管理和维护;指明代理目录作为API请求路径前缀替代原有的baseURL部分;以及最关键的一环—填写实际调用的服务端接口基础地址即目标URL[^2]。 #### 编辑详细的Nginx配置文件 除了上述图形化界面的操作之外,有时还需要深入到具体的Nginx配置层面做进一步调整。这通常涉及到编辑位于`/www/server/nginx/conf/vhost/`目录下对应域名的`.conf`文件或者是在该位置创建新的配置片段来满足特定需求。 一个典型的反向代理配置实例可能看起来像这样: ```nginx server { listen 80; server_name api.example.com; location /apis/ { rewrite ^/apis/(.*)$ /$1 break; proxy_pass http://backend_server_ip:port/; 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; } # 其他location块... } ``` 这段代码展示了如何将来自客户端对`http://api.example.com/apis/*`形式的HTTP GET请求转发给后台服务器处理,并保持原始主机头信息不变的同时附加一些额外头部字段以供内部路由决策使用[^3]。 #### 注意事项与常见问题排查 当涉及HTTPS协议时,务必提前准备好SSL/TLS证书并将它们正确应用至相应的虚拟主机配置之中。另外值得注意的是,如果计划让外部网络访问被代理的服务,则应确保防火墙规则允许必要的出入站流量通行无阻。同时也要确认所使用的本地或远程云服务商处已开放相应端口号[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值