Nginx - 反向代理将数据包传递到本地主机

Nginx - 反向代理将数据包传递到本地主机

比如说我有这样的 nginx 代理设置:

server {
    listen       443 ssl;
    server_name  foo.com;
    #SSL and logging settings omitted

    location /datapath1 {
        proxy_read_timeout      3500;
        proxy_connect_timeout   3250;

        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        Host $http_host;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-NginX-Proxy true;
        proxy_pass              http://localhost:12345/;
    }

    location /datapath2 {
        proxy_read_timeout      3500;
        proxy_connect_timeout   3250;

        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        Host $http_host;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-NginX-Proxy true;
        proxy_pass              http://localhost:23456/;
    }
}

其思想是,当该服务器接收到对不同数据路径的 POST 请求时,数据包将被解密并发送到在同一台机器上运行的程序,然后由程序生成响应,然后由 nginx 加密并发送回客户端。

我知道我可以将 HTTPS 数据包直接发送到程序正在监听的端口……但我更喜欢这种方法,因为它隐藏了端口,而且我不需要在程序中处理缓存和 SSL,只需让 nginx 处理它们。另外,我或多或少必须使用代理服务器……所以我想探索这种可能性。

这到底有没有用呢?

相关内容