nginx配置反向代理后端

1 环境

- 前端Vue项目,部署在服务器8088端口

- 后端Springboot项目,部署为8080端口

实现 后端接口/api/开头,前端访问本身ip+端口/api/xxx访问后端接口

2. 配置nginx

2.1 带/方式

shell
server {
    listen 8088;
    server_name your_domain.com;
	location / {
        root /path/to/your/vue/dist/;  # 静态资源目录
        try_files $uri $uri/ /index.html;
    }
    location /api/ {
        proxy_pass http://localhost:8080/api/;
        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-Forwarded-Proto $scheme;
    }

    # 其他 location 块或配置保持不变
}

解释: 访问http://localhost:8088/api/xxx 会请求到http://localhost:8080/api/xxx

2.2 不带/

server {
    listen 8088;
    server_name your_domain.com;
	location / {
        root /path/to/your/vue/dist/;  # 静态资源目录
        try_files $uri $uri/ /index.html;
    }
    location /api/ {
        proxy_pass http://localhost:8080;
        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-Forwarded-Proto $scheme;
    }

    # 其他 location 块或配置保持不变
}

解释: 访问http://localhost:8088/api/xxx 会请求到http://localhost:8080/api/xxx

总结

当配置proxy_pass不加/时, uri会追加到 proxy_pass后面
当配置proxy_pass加/时,不会在proxy_pass后添加uri

前端地址访问后端接口

在这里插入图片描述

后端地址访问接口

在这里插入图片描述

### 配置Nginx反向代理指定后端服务器访问地址 在Nginx配置反向代理并指定后端服务器的访问地址主要通过`upstream`指令定义一组服务器列表,或者直接在location块中使用`proxy_pass`指令指向特定的后端服务器。对于简单的单个后端服务器情况,可以在server块内的location部分直接利用`proxy_pass http://backend_address;`来实现请求转发[^1]。 当涉及到多台后端服务器时,则推荐采用`upstream`模块来进行管理: ```nginx upstream backend_servers { server 192.168.0.1:80; server 192.168.0.2:80; } server { listen 80; server_name example.com; location / { proxy_pass http://backend_servers; } } ``` 上述代码展示了如何创建一个名为`backend_servers`的上游组,并将其与某个路径下的所有请求关联起来。这样做的好处是可以轻松管理和扩展后端服务器池,而无需修改其他地方的配置[^4]。 如果希望基于客户端IP地址进行负载均衡以达到会话保持的效果,可在`upstream`区块加入`ip_hash;`语句: ```nginx upstream backend_server { ip_hash; server backend1.example.com; server backend2.example.com; server backend3.example.com; } ``` 此设置确保来自相同IP地址的请求会被定向至同一台后端服务器处理,在某些应用场景下非常有用。 完成配置更改之后,记得执行命令使新配置生效。可以通过`nginx -s reload`快速应用最新的配置文件而不中断现有连接;如果是首次启动或遇到无法热更新的情况,则可能需要用`systemctl restart nginx`重启整个服务进程[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值