Nginx针对指定路径和端口做反向代理

Nginx怎么针对指定路径和端口做反向代理?

比如Web Socket请求路径是/wswss,又或者是一个端口号8080,需要转发到另外的进程上,怎么通过Nginx来做反向代理呢?

可以使用Nginx的proxy_pass指令来实现反向代理,并使用location指令来限制代理的端口和路径。

以下是一个示例配置:

server {
    listen 80;
    listen 8080;

    # Only proxy requests on port 8080
    location / {
        if ($server_port = 8080) {
            proxy_pass http://localhost:8081;
        }
    }
}

该配置会同时监听80和8080端口,并且只会在8080端口上代理请求。如果请求的路径匹配了location指令中的"/"路径,则会使用proxy_pass指令将请求转发到本地的8081端口上。

如果有其他的路径需要代理可以添加多个location,例如:

location /api {
    if ($server_port = 8080) {
        proxy_pass http://localhost:8081;
    }
}

location /admin {
    if ($server_port = 8080) {
        proxy_pass http://localhost:8081;
    }
}

这样就可以只代理特定路径下的请求。

Leave a Comment

豫ICP备19001387号-1