必备知识
DNS域名解析
hostName主机名称其实就是我们的域名
www.baidu.com是一个域名
www.taobao.com也是一个域名
localhost也是一个域名
我们可以根据域名dns解析成ip地址
域名的存在就是为了方便我们的记忆,最终访问的时候还是要转换成服务器的IP地址进行访问。我们可以再C:\Windows\System32\drivers\etc中的hosts中配置我们的本地dns域名解析
一个域名后只能绑定一个IP吗?
我们在一个浏览器上输入域名后进行访问,我们首先会去主机里面在本地(C:\Windows\System32\drivers\etc)查找有没有对应的ip是这个域名,如果本地有这个域名,就返回对应的ip地址进行访问,如果没有就取电信运营商那里查询域名对应的ip
InetAddress
在JDK中提供了一个与IP地址相关的InetAddress类,该类用于封装一个IP地址,并提供了一系列与IP地址相关的方法。
InetAddress类的常用方法
方法声明 |
功能描述 |
InetAddress getByName(String host) |
获取给定主机名的的IP地址,host参数表示指定主机 |
InetAddress getLocalHost() |
获取本地主机地址 |
String getHostName() |
获取本地IP地址的主机名 |
boolean isReachable(int timeout) |
判断在限定时间内指定的IP地址是否可以访问 |
String getHostAddress() |
获取字符串格式的原始IP地址 |
通过InetAddress中的方法就能展现通过ip找到域名这么一个过程
首先我们先去C:\Windows\System32\drivers\etc下的hosts文件中加入
127.0.0.1 www.qcby.com
注意:必须以管理员的身份进行编辑并保存不然无法保存
然后打开idea创建一个类写入以下代码
import java.net.InetAddress;
import java.net.UnknownHostException;
public class Test01 {
public static void main(String[] args) throws UnknownHostException {
// 获取给定主机名的的IP地址,host参数表示指定主机
InetAddress inetAddress = InetAddress.getByName("127.0.0.1");
// 获取获取本地IP地址的主机名
String hostName = inetAddress.getHostName();
// 获取IP地址
String address = inetAddress.getHostAddress();
System.out.println("hostName:" + hostName);
System.out.println("address:" + address);
}
}
Nginx概述
1.ngnix是一个高性能的HTTP和反向代理web服务器,同时提供了IMAP/POP3/SMTP服务。IMAP/POP3/SMTP介绍
2.其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
3.Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
4.OpenResty(又称:ngx_openresty) 是一个基于 Nginx 的可伸缩的 Web 平台,由中国人章亦春发起,提供了很多高质量的第三方模块。
OpenResty ---nginx
Ngnix实际应用场景
1.反向代理 客户端发送请求达到Nginx服务器,Nginx转发到真实服务器访问,从而保证真实服务安全性;
2.负载均衡 能够对集群的节点实现负载均衡和故障转移,负载均衡算法:(轮询、权重、随机、hash等);
3.微服务网关入口 ,可以对微服务网关实现集群;
4.静态服务器 比Tomcat性能高很多,可以存放静态资源;-----推荐以后将静态资源存放到CDN
5.保护网站 使用nginx+lua 实现对请求实现服务限流;
Ngnix的下载与安装
安装方式:
1.Windows安装
2.linux 安装nginx(纯原生方式非常麻烦)提前下载很多依赖 10分钟---不推荐
3.使用docker安装nginx 1分钟
4.使用宝塔可视化界面安装nginx 5s
Windows安装
1.下载完成后解压当前目录
文件说明
1.conf 配置文件 (nginx核心配置文件 nginx.conf)
2.contrib 存放一些实用工具
3.docs 存放文档
4.html 存放Html 存放静态资源 5.logs 存放日志文件
6.temp 临时文件
2.双击ngnix.exe
3.Ngnix默认端口号80
4.浏览器中输入localhost:80
成功启动Ngnix
关闭Ngnix
关闭Ngnix比较麻烦这是因为:nginx在启动后,会有一个master进程和多个worker进程 需要将所有的nginx进程杀死才可以。
1..C:\javacode\nginx-1.0.2>nginx.exe -s stop或
C:\javacode\nginx-1.0.2>nginx.exe -s quit
注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。
其他命令:
2、启动:
C:\javacode\nginx-1.0.2>start nginx或
C:\javacode\nginx-1.0.2>nginx.exe
3、停止:
C:\javacode\nginx-1.0.2>nginx.exe -s stop或
C:\javacode\nginx-1.0.2>nginx.exe -s quit
注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。
4、重新载入Nginx:
C:\javacode\nginx-1.0.2>nginx.exe -s reload
当配置信息修改,需要重新载入这些配置时使用此命令。
5、重新打开日志文件:
C:\javacode\nginx-1.0.2>nginx.exe -s reopen
6、查看Nginx版本:
C:\javacode\nginx-1.0.2>nginx -v
软负载与硬负载的区别
1.软负载是基于服务器上安装的特定的软件,比如Nginx实现负载均衡
2.硬负载均衡是基于固定的硬件实现负载均衡比如F5