域名、IP、DNS、Hosts、Nginx-LMLPHP
先从最熟悉,也是最表层的域名ip说起:
比如你和我,你叫张三,我叫李四,名字类似于域名。你在网吧玩,很多太多台电脑各自都有个座位号,座位号就类似于ip,我想去网吧找你去玩电脑,光知道名字,但不知道你位置,所以,就需要DNS。

DNS
DNS就是说ip一长串,不好记啊,想个办法弄个简单名字,所以他的主要功能就是把域名转换成具体的ip地址,就是说找你位置,我光知道名字不行,我还得找到具体的座位ip才行。
域名系统作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网
注意:这域名可以和ip地址绑定,一个ip地址可以被多个域名绑定

HOSTS
再说hosts,这个是个本地域名解析文件,不管你是windwos还是linux,那都是有的,没有就自己建一个。

windows一般在:C:/Windows/System32/drivers/etc/hosts

Linux的hosts文件路径一般:/etc/hosts

范例:

127.0.0.1 localhost

127.0.0.1 www.test.com

这个文件其实也是配置了ip和域名之间的映射关系的数据库,有啥作用呢,就是说,本地要是有这个文件,就优先用这个文件中的配置去解析,如果没有,那就通过nds解析。

注意:hosts文件只能配置ip和域名的映射关系,但是不能配置端口号,默认访问80端口

Nginx
因为要解决端口问题,这里就得使用大名鼎鼎的反向代理软件:Ngin,至于Nginx是什么,怎么安装配置,可以在我以前的文章查看或者度娘搜索。

简单的范例:

//nginx.conf

server {

listen 80; //监听的端口

server_name test.com; //监听的域名

proxy_set_header Cookie $http_cookie; //头信息

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header REMOTE-HOST $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

location / {

proxy_pass http://localhost:8080; //代理转发,所有到test.com 80端口访问的请求,都会转发到本地8080端口处理

}

}

关于域名解析的顺序问题:

先查本地hosts文件,有则获取对应的ip,(nginx -t 会检测并缓存 proxy_pass 后的域名对应的 IP ,这里需要调用 DNS),之后再查DNS服务器。
04-13 03:48