> 文章列表 > nginx proxy_pass

nginx proxy_pass

nginx proxy_pass

什么是nginx proxy_pass

nginx是一款高性能的Web服务器,同时也是一个反向代理服务器。反向代理是指客户端向代理服务器发送请求,代理服务器再将请求转发给真正的目标服务器。nginx中的proxy_pass指令就用于配置反向代理的目标地址。

使用proxy_pass实现请求转发

在nginx的配置文件中,将proxy_pass指令设置为目标服务器的IP地址或域名即可实现请求转发。例如:

location /api {
    proxy_pass http://123.456.789.10;
}

这样,当客户端通过Nginx访问/api接口时,Nginx会将请求转发到http://123.456.789.10服务器上

使用proxy_pass实现负载均衡

除了将请求转发到单一的目标服务器上,nginx还可以将请求转发到多个服务器上,从而实现负载均衡。例如:

upstream app {
    server 192.168.1.1;
    server 192.168.1.2;
}

location /api {
    proxy_pass http://app;
}

这样,当客户端通过Nginx访问/api接口时,Nginx会将请求平均分配到192.168.1.1和192.168.1.2两台服务器上。

使用proxy_pass实现缓存加速

在Nginx中,可以通过代理缓存的方式来加速静态文件的访问速度。例如,将/favicon.ico的访问结果缓存一分钟:

location /favicon.ico {
    proxy_pass http://backend;
    proxy_cache cache_one;
    proxy_cache_valid 200 302 1m;
}

这样,第一次请求/favicon.ico的结果会被缓存下来,接下来一分钟之内的请求都可以直接从缓存中获取,加快了访问的速度。

使用proxy_pass实现反向代理

除了上述常见的应用场景外,proxy_pass还可用于企业内部网络中的应用访问。例如,将访问/intranet的请求转发到内部网络中的应用服务器上:

location /intranet {
    proxy_pass http://192.168.1.1;
}

这样,公司内部的员工就可以通过公网访问到内部网络的应用了。

敦实网