六、Nginx针对URI接口进行请求转发

本文介绍了如何配置Nginx将客户端访问的URI请求转发到127.0.0.1和10.211.55.5两台服务器上的Tomcat服务。通过编辑nginx.conf文件,设置location和proxy_pass,实现负载均衡。当后端只有一台服务器时,可简化配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、配置nginx.conf

2、在127.0.0.1和10.211.55.5服务器将项目war包放入Tomcat,并启动。

3、nginx -s reload 重新启动Nginx

当后台不是多台服务器时,那么不需要负载均衡


需求:客户端访问URI o2oDemo/frontend/index,Nginx将该请求转发到后台服务器

127.0.0.1:8080和10.211.55.5:8080

1、配置nginx.conf

在location中指定请求的URL规则

proxy_pass指定反向代理的服务器组

location /o2oDemo/frontend {

    proxy_pass http://index;

    default_type text/html;

    proxy_set_header Host $http_host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

由于nginx在本机上,server_name localhost为本机IP

upstream配置如下

upstream index{
    server 127.0.0.1:8080 weight=1;
    server 10.211.55.5:8080 weight=1;
 }

nginx.conf代码如下

worker_processes  1;
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    upstream index{
        server 127.0.0.1:8080 weight
### Nginx 配置 HTTP 地址重定向和反向代理 #### 反向代理配置 Nginx 的 `ngx_http_proxy_module` 模块负责处理反向代理功能,此模块默认已集成于 Nginx 中[^1]。通过使用 `proxy_pass` 指令来指定目标服务器地址以及可选的 URI 映射部分。 对于简单的 URL 转发场景,比如将 `/reserve/h5` 下的内容指向特定域名下的资源: ```nginx server { listen 80; server_name dev.park.com; location /reserve/h5/ { proxy_pass http://localhost/path/to/static/files/; } } ``` 上述配置会使得任何针对 `http://dev.park.com/reserve/h5/*` 的请求都被转发至本地文件系统的相应位置并返回给客户端[^2]。 #### 客户端真实 IP 获取 当 Nginx 作为前端代理时,为了能够获取到原始客户端的真实 IP 地址而不是最后一个代理服务器的 IP,在配置中应加入如下设置以确保正确传递真实的客户 IP: ```nginx set_real_ip_from 172.25.136.1; # 设置可信的上游代理列表 real_ip_header X-Forwarded-For; # 使用XFF头中的第一个IP作为远程地址 real_ip_recursive on; # 启用递归查找最远端的真实IP ``` 这些指令允许管理员定义哪些网络范围内的设备是可以信任的中间件,并从中提取出最终用户的实际 IP 地址用于日志记录或其他用途[^3]。 #### 动态内容反向代理示例 如果需要将某些动态服务(如 API 请求)路由到不同的后端应用服务器上,则可以按照下面的方式来进行配置: ```nginx location /api/v1/ { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Proto $scheme; proxy_pass http://backend_api_server:port/api/v1/; } ``` 这段代码片段展示了如何为 RESTful API 接口创建一个安全可靠的入口点,同时保持原有协议方案不变,并且保留了来自客户的原始头部信息以便下游应用程序能正常工作[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值