Nginx作为反向代理

本文介绍了如何通过修改host文件将请求转发至虚拟机的Nginx,Nginx作为反向代理将请求转发至特定服务或通过网关实现负载均衡。提到了直接由Nginx转到微服务的配置示例以及通过Nginx到网关再到服务的负载均衡配置,并讨论了这种方式的优缺点。
摘要由CSDN通过智能技术生成

反向代理:nginx接受来自客户端(浏览器)的请求,并将其转发给后端服务器进行处理

修改host文件(C:\windows\system32\drivers\etc ),添加虚拟机地址,如下
192.168.56.10  mall.com

这样,访问mall.com[:80]就等同于访问192.168.56.10[:80]
虚拟机中的80端口是Nginx,所以上面两个url会访问到虚拟机的Nginx
同理,访问mall.com:9200(9200是ElasticSearch)会访问到虚拟机的ES

浏览器发送gulimall.com请求来到虚拟机的Nginx,Nginx再负载均衡给网关,网关再负载均衡给服务

不经过网关,由Nginx直接转到指定服务:

步骤:

  1. 使用SwitchHosts修改host文件,使得访问域名(如gulimall.com)时访问到虚拟机的Nginx

  2. Nginx作为反向代理,即 将来自gulimall.com的请求转给某个服务
    修改Nginx配置文件的server块,改完重启Nginx

下列是由Nginx直接转到windows(192.1668.56.1)的端口为10000的微服务的nginx的配置

server {
	listen          80;
	server_name     gulimall.com;
    .
    .
    .
	location / {
		proxy_pass http://192.168.56.1:10000;
	}   
}

解释:
在windows里指定了mall.com映射的是虚拟机ip,所以访问mall.com会来到虚拟机,虚拟机的Nginx监听了80端口,Nginx又将请求(mall.com)代理到windows(192.168.56.1)的10000端口,绕一圈又回到windows

缺点:
假设10000端口为商品服务,如果有多个商品微服务,且各个微服务的ip各不相同,xxxxxxxxx

由Nginx负载均衡到网关,再由网关转发到服务:

配置可以参考Using nginx as HTTP load balancer

  1. 修改http块、server块,重启Nginx

/mydata/nginx/conf/nginx.conf

http {
    upstream gulimall {
        server   192.168.56.1:88
    }   
}

/mydata/nginx/conf/conf.d/mall.conf

server {
	location / {
		proxy_set_header Host $host;
		proxy_pass http://gulimall;
	}   
}

//Nginx代理给网关的时候会丢失请求的host信息
  1. 网关处配置路由规则,重启网关
- id: gulimall_host_route
          uri: lb://gulimall-product
          predicates:
            - Host=**.gulimall.com,gulimall.com

我对ngixn流程的理解:

  • nginx处没新建任何配置文件的情况下,默认是conf.d/default.conf文件,这个配置文件里写的是nginx监听来自127.0.0.1的80端口的请求,如果本机(Linux)访问80端口那肯定被nginx监听了,如果windows配置了host文件,比如192.168.56.10 mall.conf,那么也是会被nginx监听到,默认是访问html下的index.html
  • 如果nginx处新建了配置文件,假设配置了监听哪个域名,实际上是对
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值