Nginx 配置 —— 反向代理
反向代理相关概念
与反向代理所对应的是正向代理。正向代理中最为常见的例子就是vpn。当我们使用vpn访问其他网页时,我们的ip地址并不会暴露给我们直接连接的网站,而是vpn的代理ip。反向代理与正向代理的差异其实就是,当我们想要访问一个网站时,被访问的服务器的ip不会直接暴露在我们面前,而是反向代理服务器的ip地址。
反向代理
反向代理的配置示例1:
在这里,我们需要在准备一个 tomcat 服务器,tomcat 服务器的地址为 127.0.0.1:8080。 同时也要准备一个 Nginx服务器, Nginx 服务器的域名为 www.123.com. 最终实现效果,当我们在浏览器中访问 www.123.com:80 时会自动切换到 127.0.0.1:8080
代码语言:javascript复制server {
listen 80;
server_name www.123.com; # 一般是nginx所在的linux服务器的域名或者ip
location / {
proxy_pass http://127.0.0.1:8080;
index index.html index.htm index.jsp
}
}
反向代理的配置示例2:
在现实配置中,Nginx 不可能只反向代理一个 Tomcat 服务器,而是一个服务器集群。现实生活中,不同的请求可能被分发到不同服务器上进行处理。 我们准备两个 Tomcat 服务器,一个在 8081 端口,另一个个在 8002 端口。 使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中nginx 监听端口为 9001, 最终实现是: 访问 http://127.0.0.1:9001/edu/ 直接跳转到 127.0.0.1:8081 访问 http://127.0.0.1:9001/vod/ 直接跳转到 127.0.0.1:8082
代码语言:javascript复制server {
listen 9001;
server_name localhost;
location ~ /edu/ {
proxy_pass http://localhost:8001;
}
location ~ /vod/ {
proxy_pass http://localhost:8002;
}
}
PS: 在修改完相关配置文件后记得重启 Nginx