http-server icon indicating copy to clipboard operation
http-server copied to clipboard

http-server can be configured with more flexible settings, especially regarding proxy functionality

Open JiayangShen opened this issue 1 year ago • 2 comments

What's the problem this feature will solve?

http-server now has the capability to configure proxy functions; however, this feature is quite basic and can only forward all unhandled HTTP requests to a single address. Often, we want to be able to configure multiple proxies or have more flexible and complex proxy settings. For example, requests to /api/xxx should be proxied to http://192.168.6.8:8080, and requests to /api2/xxx should be proxied to http://192.168.6.8:8082.

Describe the solution you'd like

Configuring multiple and complex proxies with http-server using command-line options can be challenging. We can conveniently achieve this functionality by using a configuration file (such as http-server.json or http-server.config.js).

For example, an http-server.json configuration file might look like this:

{
    "port": 8092,
    "proxy": {
        "/api/": {
            "target": "http://192.168.6.8:8080",
            "changeOrigin": true
        },
        "/api2/": {
            "target": "http://192.168.6.8:8082",
            "changeOrigin": false
        }
    }
}

When http-server runs, it checks for the presence of this default-named configuration file in the current directory. If it exists, http-server reads the configuration and performs the corresponding functions based on the settings.

JiayangShen avatar Nov 08 '24 13:11 JiayangShen

It would be nice if the configuration could be specified with --proxy-config <path/to/my-http-config>.json.

i3ene avatar Nov 14 '24 09:11 i3ene

This issue has been inactive for 180 days

github-actions[bot] avatar May 13 '25 12:05 github-actions[bot]