Nginx
1、什么是Nginx
? Nginx 是?款?性能的 http 服务器/反向代理服务器及电?邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师伊?尔·?索夫(Igor Sysoev)所开发,官?测试 nginx 能够?撑 5 万并发(但实际上达到 3 万已经很好了),并且 cpu、内存等资源消耗却?常低,运行非常稳定。
?1.1、Nginx的应用场景
Nginx 是?个 http 服务可以独?提供 http 服务。可以做网页静态服务器。
可以实现在?台服务器虚拟出多个虚拟主机。
当?站的访问量达到?定程度后,单台服务器不能满??户的请求时,需要?多台服务器集群可时以使? nginx 做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载?宕机?某台服务器闲置的情况(也可以配置某台主机承受较大的访问)。
?1.2、安装Nginx
?为了环境兼容方便,我们这里采用 docker 来安装镜像使用,前提已安装并启动 docker 的服务。
docker search nginx
docker pull nginx
mkdir ~/nginx
cd ~/nginx
mkdir conf
cd conf
vim nginx.conf
-
填充配置信息 user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
include /etc/nginx/conf.d/*.conf;
}
-
开启容器 docker run -id --name=c_nginx \
-p 80:80 \
-p 81:81 \
-p 82:82 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/conf.d:/etc/nginx/conf.d \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
nginx
?1.3、配置一个服务映射测试nginx
-
在 conf.d 文件夹下添加 80.conf 配置文件 server {
listen 80; # 监听的端?
server_name localhost; # 域名或ip
location / { # 访问路径配置
root /usr/share/nginx/html;# 根?录,这个目录已经和html目录进行了数据绑定
index index.html; # 默认??,在html目录下创建一个index.html文件即可
}
error_page 500 502 503 504 /50x.html; # 错误??
location = /50x.html {
root html;
}
}
-
重启 nginx 的服务,加载当前的服务文件
? 服务启动完毕之后在浏览器中进行数据访问即可完成端口的映射。
2、静态网站的部署
? 静态页面只需要配置在 html 目录下即可,因为已经和容器完成了数据卷绑定,会自动的同步到容器中进行部署。
?2.1、配置虚拟主机
? 虚拟主机,也叫“?站空间”,就是把?台运?在互联?上的物理服务器划分成多个“虚拟”服务器。虚拟主机技术极?的促进了?络技术的应?和普及。同时虚拟主机的租?服务也成了?络时代的?种新型经济形式。
地址栏输? http://虚拟机的IP地址/:81 可以看到首页面的信息。
地址栏输? http://虚拟机的IP地址/:82 可以看到注册页面的信息。
?2.2、域名绑定
-
什么是域名 域名(Domain Name),是由?串?“点”分隔的字符组成的Internet上某?台计算机或计算机组的名称,?于在数据传输时标识计算机的电??位(有时也指地理位置,地理上的域名,指代有?政?主权的?个地?区域)。 域名是?个IP地址上有“?具” 。域名的?的是便于记忆和沟通的?组服务器的地址 (?站,电?邮件,FTP等)。域名作为?所能及难忘的互联?参与者的名称。域名按域名系统(DNS)的规则流程组成。在DNS中注册的任何名称都是域名。 域名?于各种?络环境和应?程序特定的命名和寻址?的。通常,域名表示互联?协议(IP)资源,例如?于访问因特?的个?计算机,托管?站的服务器计算机,或?站本身或通过因特?传送的任何其他服务。世界上第?个注册的域名是在 1985年1? 注册的。 -
域名级别 -
顶级域名
?是国家顶级域名(national top-level domainnames,简称nTLDs),200多个国家都按照ISO3166国 家代码分配了顶级域名,例如中国是cn,美国是us,?本是jp等;
?是国际顶级域名(international top-level domain names,简称iTDs),例如表示?商企业的 .Com .Top,表示?络提供商的.net,表示?盈利组织的.org,表示教育的.edu,以及没有限制的中性域名等。但因为?2014年以来新顶级域名的发展,域名争议案件数量增?幅度越来越? 。为加强域名管理,解决 域名资源的紧张,Internet协会、Internet分址机构及世界知识产权组织(WIPO)等国际组织经过?泛 协商, 在原来三个国际通?顶级域名:(com)的基础上,新增加了 `7`个国际通?顶级域名:**firm(公 司企业)**、**store(销售公司或企业)**、**Web(突出WWW活动的单位)**、**arts(突出?化、娱乐活动的 单位)**、**rec (突出消遣、娱乐活动的单位)**、**info(提供信息服务的单位)**、**nom(个?)**,并在世界范围 内选择新的注册机构来受理域名注册申请。
?级域名是指顶级域名之下的域名,简单点来说就是加了一个分支, 例如:map.baidu.com
三级域名?字?( A~Z,a~z,??写等)、数字(0~9)和连接符(-)组成, 各级域名之间?实点(.)连接,三级域名的?度不能超过20个字符。如?特殊原因,建议采?申请?的英?名(或者缩 写)或者汉语拼?名 (或者缩写) 作为三级域名,以保持域名的清晰性和简洁性。
简单说就是在二级域名的基础上再加一个分支进入, 例如: item.map.baidu.com
?个域名对应?个 ip 地址,?个 ip 地址可以被多个域名绑定。
?2.3、本地域名解析
? 本地测试可以修改 hosts ?件(C:\Windows\System32\drivers\etc) 可以配置域名和 ip 的映射关系,如果 hosts ?件中配置了域名和 ip 的对应关系,不需要? dns 服务器。
?在 hosts 文件中添加域名绑定信息,访问下面两个域名就会解析到虚拟机的IP地址,从而找到相应的服务映射。
192.168.188.128 www.beordie.com
192.168.188.128 www.yishun.com
3、 反向代理和负载均衡
?3.1、反向代理
?3.2、配置 tomcat
?在 docker 中完成tomcat容器的配置
docker search tomcat
?3.3、配置反向代理
?在 nginx 的配置文件夹下面创建 tomcat.conf 配置文件并填充信息。
-
tomcat.conf upstream tomcat-beordie{
server 192.168.188.128:8080;
}
server {
listen 80; # 监听的端?
server_name www.beordie.com; # 域名或ip
location / { # 访问路径配置
# root index;# 根?录
proxy_pass http://tomcat-beordie;
index index.html index.htm; # 默认??
}
}
当浏览器访问 www.beordie.com 域名时会被解析到虚拟机,然后又被代理到 192.168.188.128:8080 也就是tomcat的启动端口,从而实现反向代理。
?3.4、 负载均衡
-
什么是负载均衡 负载均衡是建?在现有?络结构之上,它提供了?种廉价有效透明的?法扩展?络设备和服务器的带宽、 增加吞吐量、加强?络数据处理能?、提??络的灵活性和可?性。 负载均衡,英?名称为Load Balance,其意思就是分摊到多个操作单元上进?执?,例如Web服务器、 FTP服务器、企业关键应?服务器和其它关键任务服务器等,从?共同完成?作任务。 -
配置负载均衡 nginx 配置负载均衡很简单,只需要将要均衡的地址通过分号隔开的形式写在一起就可以了,会自动完成轮询的负载均衡。如果需要将某台主机的访问加大,可在后面添加 weight=2 来增大访问的频率。 upstream tomcat-beordie {
server 192.168.220.12:8080;
server 192.168.220.12:8081 eight=2;
server 192.168.220.12:8082;
}
例如Web服务器、 FTP服务器、企业关键应?服务器和其它关键任务服务器等,从?共同完成?作任务。
|