Nginx_关于Ngxin和hosts

本文介绍了域名解析过程,包括hosts文件与DNS服务器的作用。详细解释了如何通过配置hosts文件直接解析特定域名到本地地址,并通过nginx进行反向代理,最终实现对上游服务器的访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

浏览器访问的URL会根据两种方式去进行域名解析:
1、hosts
2、DNS
如果本地配置了hosts就不会去访问DNS了

举例:
访问jisumall.com这个域名,会先到hosts中去地址解析,hosts中有配置的话,那么根据hosts中的配置进行解析。
hosts配置文件
在这里插入图片描述
我们这里hosts文件有配置,所以这个域名访问的地址会被转发到本地的127.0.0.1(默认80端口)。(如果hosts没有配置,那么就会到网上的DNS服务器上面找域名)。

由于本地开启了nginx,本地的80端口被nginx接管了,所以这个域名(jisumall.com)又会被nginx接管。
在nginx中可以配置多个80的端口的,在不同的server里面配置
在这里插入图片描述
访问到nginx的80端口之后,nginx会根据80端口下面配置的server_name去进行域名解析,比如 jiusmall.com ,刚好一个80端口下面有配置了 server_name 为 jisumall.com 的域名,所以说 jisumall.com这个域名 会落在这个server上。

然后再去读取这个server配置的location配置
location配置如下
在这里插入图片描述
可以看到,这里有 jisumall.com/ 的配置,

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

配置的就是域名后面的根目录 jisumall.com/
这里进行host进行host请求头重写

proxy_set_header Host $host

(这条配置没有修改host请求头,上面的

 proxy_set_header Host order.jisumall.com 

就是修改了host请求头,上面配置的意思是将含有/payed/的路径,重写为

order.jisumall.com/payed/*  )

proxy_pass的意思是去访问http://jisumall 这个上游服务器。

而我们配置文件里面配置的上游服务器是
在这里插入图片描述
即jisumall这个服务器(和proxy_pass一一对应),里面配置的server,就是我们反向代理到的路径,即127.0.0.1:88 ,如果像上面一样配置了两条server,就是实现nginx的负载均衡。

统一一下走过的路径:
jisumall.com -> hosts(被解析到本地的127.0.0.1) -> nginx(ngxin的80端口,再根据server_name去选择哪个server) -> location(根据location的配置看是否有重写请求头,寻找到配置的上游服务器) -> upstream(根据里面配置的server 去访问 IP:端口)

所以说,最后jisumall.com访问的就是 127.0.0.1:88 端口

感谢农信互联刘宗宁老师耐心教导~~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值