目录
搭建域名访问环境一(反向代理配置)
反向代理:就是为了不让服务的地址暴露,通过访问nginx来访问服务

域名解析的规则:
①先解析本机是否有相应的映射规则


访问localhost即访问127.0.0.1
②DNS域名解析获取相应的ip地址
由于每次修改hosts文件太麻烦了,因此,安装SwitchHosts
下载地址:Releases · oldj/SwitchHosts · GitHub
必须以管理员的权限启动

如果无写入权限,参考:win10使用Switchhost显示无修改权限_牧码ya的博客-优快云博客

配置完成之后,我们访问gulimall.com就会访问虚拟机



让nginx帮我们进行反向代理,所有原来自gulimall.com的请求,都转发到商品服务的首页
nginx的全局配置文件已经被挂载到了/mydata/nginx/conf/nginx.conf



1是全局块,2是events块,3是http块,4是server块,server块的配置文件是conf.d文件夹下的所有配置文件
配置server块

重启nginx
docker restart nginx
出现错误:访问失败
查看错误原因:
docker logs nginx


出现问题的原因:缺少;

搭建域名访问环境二(负载均衡到网关)
存在问题随着服务的增多,每次都配置将会很麻烦,因此,需要将访问gulimall.com的请求转发给网关,由网关处理。
ngixn负载均衡配置文档:Using nginx as HTTP load balancer
①修改配置文件

修改nginx.conf配置

upstream gulimall{
server 192.168.56.1:88;
}
配置了上流服务的名称gulimall,服务块的地址为本机的网关地址
修改conf.d下的gulimall.conf配置

proxy_pass http:\\gulimall;
会自动去上游服务的组中查找
重启nginx
②修改网关配置文件
gateway host 路由规则配置文档:Spring Cloud Gateway

注意事项:host配置必须置于其它配置之后否则位于host配置之前的配置将不生效

- id: gulimall_host_route
uri: lb://gulimall-product # lb:负载均衡
predicates:
- Host=**.gulimall.com,gulimall.com # **.xxx 子域名
重启网关
出现问题:访问域名报错404,访问api接口可以访问成功


说明:nginx已经将请求反向代理给网关了但是网关的host路由断言未起作用
出现问题的原因:nginx将请求交由网关处理的时候会丢失host
解决方案如下:设置请求头

proxy_set_header Host $host # Host 请求头的名称 $host获取当前请求的host值
重启nginx,成功

本文介绍了如何使用Nginx搭建反向代理以隐藏服务真实地址,并通过SwitchHosts进行域名解析。然后,配置Nginx进行负载均衡,将请求转发至网关,同时解决因请求丢失Host导致的404问题。涉及到的工具有Nginx、SwitchHosts以及Spring Cloud Gateway。
1296





