所谓端口代理本质还是把请求转发到其他指定server上,所以是基于反向代理(proxy_pass / fastcgi_pass两种协议)来实现,目的更易于做负载均衡和维护管理。

1 不做端口代理
一般是在conf文件里定义远程服务的ip或域名,比如

service => [
	'moc' => '123,1,2,3:9988',
]

调用是用client自动获取moc的配置,然后发送请求即可,没什么问题,也是常用的,但是有一个不好的地方,假如moc服务迁移,那么就需要修改当前服务的配置。

2 端口代理
端口代理本质是监听本机服务的一个端口,然后转发该端口的请求到目标服务上。

第一步:配置服务配置

service => [
	'moc' => '127,0。0.1:9988',
]

第二步:配置nginx

upstream backend {
	server a:9696 weight 2;
	server b:9696 weight 1;
	server c:9696 backup;
}

server {
	listen 9898;
	access_log logs/moc-access.log;
	error_log logs/moc-error.log;
	
	proxy_pass backend;
	proxy_timeout 30m;
}

这样迁移服务时,就只需调整nginx配置即可,无需修改服务的配置文件信息。而且,这样更好的实现了负载均衡。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐