用nginx做springboot的路由

做好了各个服务,都一个服务一个端口,如果端口修改或者启用多实例,简单的调用满足不了服务消费。

想了一个简单取巧的办法,用nginx的代理,指向具体的服务,每一个服务的消费者只需要指向nginx就好了。

nginx的配置为,nginx.conf文件中添加下面的配置

location /leave/ {

   proxy_pass  http://127.0.0.1:10001;

 }

这样配置后,访问代理地址

http://127.0.0.1:8081/leave/isLeave?phone=15181253629

与直接访问真实服务相同

http://127.0.0.1:10001/leave/isLeave?phone=15181253629

(配置中的leave是我的一个请假的微服务地址)

另外,基于location的路径配置是参考的这篇文章

https://blog.csdn.net/zhongzh86/article/details/70173174

目前这样的配置只是简单的实现了服务的路由,下面是服务多实例支持的配置:

server节点之前配置

upstream service_leave {

    server 127.0.0.1:10011;

    server 127.0.0.1:10012;

}

proxy_pass  http://127.0.0.1:10001;修改为proxy_pass  http://service_leave;就是

location /leave/ {

    proxy_pass  http://service_leave;

}



nginx是一款轻量级的高性能HTTP服务器和反向代理服务器。它可以通过配置文件来实现各种功能,如反向代理、负载均衡、静态文件服务、缓存、SSL/TLS加密等。在与springboot的配合中,我们可以通过nginx来提供静态资源的服务,并将请求转发给springboot应用程序进行处理。 首先,我们需要在nginx配置文件中指定静态资源的路径。可以使用`root`或`alias`指令来设置静态资源所在的目录。例如,`root /var/www/html;`表示将静态资源存放在`/var/www/html`目录下。 接下来,我们可以使用`location`指令来配置请求的路由规则。可以使用正则表达式来匹配请求的路径,然后将请求转发至springboot应用程序的地址和端口。例如,`location /api/ { proxy_pass http://localhost:8080/; }`表示将以`/api/`开头的请求转发至`http://localhost:8080/`。 此外,我们还可以通过nginx的`proxy_set_header`指令来设置请求头部信息。这在需要将一些特定的请求头信息传递给springboot应用程序时很有用。例如,`proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;`表示将客户端的IP地址传递给springboot应用。 最后,在配置完成后,我们需要通过`nginx -t`命令来检查配置文件是否有语法错误,并且使用`nginx -s reload`来重载配置文件,以使修改生效。 总结一下,nginxspringboot的配合可以通过nginx提供静态资源服务,并将请求转发给springboot应用程序进行处理,而配置文件中的指令可以定制化这个过程,满足各种需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值