nginx学习
配置反向代理
本地域名映射配置
C:\Windows\System32\drivers\etc
以管理员身份打开hosts文件
添加域名映射
测试
ping gulimall.com
打开nginx配置目录
vim nginx.conf
可以看到会把conf.d下面的所有*.conf文件作为配置
然后在conf.d目录下面复制一份作为自定义的配置文件
cp default.conf gulimall.conf
修改配置
#注意;不要缺少分号,代理地址可以使虚拟网卡的ip也可以是本机ip
listen 80;
server_name gulimall.com;
location / {
proxy_pass http://192.168.75.2:8081; #这里使用的是虚拟网卡的ip
}
nginx会对host为gulimall.com的请求进行监听
配置成功后访问gulimall.com会被代理到http://192.168.75.2:8081
配置上游服务器。走网关,而不是直接走对应的微服务。
修改nginx.conf
upstream gulimall{
server 192.168.75.2:88; #使用的是虚拟网卡的ip
}
修改gulimall.conf
location / {
proxy_pass http://gulimall;
}
springCloudGateWay配置规则
- id: host_router
uri: lb://gulimall-product
predicates:
- Host=gulimall.com,item.gulimall.com
也就是请求host是这些的时候,网关会再把请求转发给对应的服务。注意这条规则写在下面,因为写在上面会过滤掉多数请求。
测试:
访问gulimall.com 失败
访问http://gulimall.com/api/product/attr/list 成功
原因是nginx转发到springgateway时漏了host
所以需要设置host
修改gulimall.conf
location / {
proxy_set_header Host $host;
proxy_pass http://gulimall;
}
修改过后,nginx转发会带上当前请求的host
客户端请求>nginx>gateway>service