1. 实现效果
www.123.com
,跳转到linux
系统tomcat
主页。2. 准备工作
(1)、在linux系统安装tomcat,使用默认端口 8080。
tomcat
安装文件放到linux
系统中的 /usr/src
目录下,解压。bin
目录中,./startup.sh
启动tomcat服务器。(2)、对外开放的端口
# 查看开放的端口号
firewall-cmd --list-all
# 设置开放的端口号
firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-port=8001/top --permanent
# 重启防火墙
firewall-cmd --reload
(3)、在windows系统中通过浏览器访问tomcat服务器。
3. 访问过程分析
ip
地址的映射,如果没有的话,才会将请求发送给DNS
进行域名解析。4. 具体配置
第一步:在windows系统的host文件进行域名和ip地址对应关系的配置。
C:\Windows\System32\drivers\etc
。192.168.123.129 www.123.com
。第二步:在nginx进行请求转发的配置(代理配置)
192.168.123.129:80
的话,它会把我们的请求转发到 http://127.0.0.1:8080
。5. 最终测试
www.123.com
,它会帮我们跳转到 192.168.123.129:8080
。1. 实现效果
nginx
监听端口为9001
。http://192.168.123.129:9001/edu/
直接跳转到127.0.0.1:8080
。http://192.168.123.129:9001/vod/
直接跳转到127.0.0.1:8081
。2. 准备工作
(1)、准备两个tomcat服务器,一个8080端口,一个8081端口。
(2)、创建文件夹和测试页面。项目默认部署在webapps文件夹下
3. 具体配置
(1)、在/usr/local/nginx/conf/目录下找到nginx配置文件,进行代理的相关配置。
server {
listen 9001;
server_name 192.168.123.129;
location ~/edu/ {
proxy_pass http://127.0.0.1:8080
}
location ~/vod/ {
proxy_pass http://127.0.0.1:8081
}
}
(2)、对nginx进行重启。
# 关闭nginx
./nginx -s stop
# 启动nginx
./nginx
(3)、开放对外访问的端口号 9001 8080 8081。
# 查看开放的端口号
firewall-cmd --list-all
# 设置开放的端口号
firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-port=8001/top --permanent
# 重启防火墙
firewall-cmd --reload
4. 最终测试
5. location指令说明
URL
# 语法如下
location [ = | ~ | ~* | ^~ ] url{
}
=
: 用于不含正则表达式的url前,要求请求字符串与url严格匹配,如果匹配成功,就停止继续向下搜索并立即处理请求。~
:用于表示url包含正则表达式,并且区分大小写。~*
:用于表示url包含正则表达式,并且不区分大小写。^~
:用于不含正则表达式的url前,要求Nginx服务器找到标识url和请求字符串匹配度最高的 location后,立即使用此location处理请求,而不再使用location块中的正则url和请求字符串做匹配。1. 实现效果
http://192.168.123.129/edu/a.html
,负载均衡效果,平均到8080
和8081
端口中。2. 准备工作
(1)、准备两台tomcat服务器,一台8080,一台8081。
(2)、在两台tomcat里面webapps目录下,创建名称是edu文件夹,在edu文件夹中创建页面a.html,用于测试。
3. 在nginx配置文件中进行负载均衡的配置
http
全局块添加以下代码upstream myserver{
server 192.168.123.129:8080;
server 192.168.123.129:8081;
}
监听80端口的server
中添加红线标注的代码server {
listen 80;
server_name 192.168.123.129;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
proxy_pass http://myserver;
index index.html index.htm;
}
}
nginx
进行重启。4. 最终测试
http://192.168.123.129/edu/a.html
进行访问的时候,页面显示8080
或者8081
。5. nginx分配服务器策略
第一种 轮询(默认)
down
掉,能够自动剔除。upstream myserver{
server 192.168.123.129:8080;
server 192.168.123.129:8081;
}
第二种 weight
weight
代表权重默认为1
,权重越高被分配的客户端越多。upstream myserver{
server 192.168.123.129:8080 weight=5;
server 192.168.123.129:8081 weight=10;
}
第三种 ip_hash
ip
的hash
结构分配,这样每个客户端固定访问一个后端服务器。upstream myserver{
ip_hash;
server 192.168.123.129:8080;
server 192.168.123.129:8081;
}
第四种 fair(第三方)
响应时间短的优先分配
。upstream myserver{
server 192.168.123.129:8080;
server 192.168.123.129:8081;
fair;
}
1. 什么是动静分离?
nginx
动静分离简单来说就是把动态和静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上应该是把动态请求和静态请求分开,可以理解成使用nginx
处理静态页面,tomcat
处理动态页面。2. 动静分离的实现方式
nginx
分开。3. 缓存
通过 location 指定不同的后缀名实现不同的请求转发。通过 expires
参数设置,可以使浏览器缓存过期时间,减少与服务器之前的请求和流量。具体 Expires
定义:是给一个资源设定一个过期时间,也就是说无需去服务端验证,直接通过浏览器自身确认是否过期即可,所以不会产生额外的流量。此种方法非常适合不经常变动的资源。(如果经常更新的文件,不建议使用 Expires 来缓存),我这里设置3d
,表示在这 3 天之内访问这个 URL,发送一个请求,比对服务器该文件最后更新时间没有变化,则不会从服务器抓取,返回状态码304,如果有修改,则直接从服务器重新下载,返回状态码 200。
1. 准备工作
(1)、在 linux 根目录下新建一个包含两个目录分别为 image 和 www 的 data 目录,它们用于存放静态资源,用于进行访问。
2. 具体配置
监听80端口的server
中添加红线标注的代码 server {
listen 80;
server_name 192.168.123.129;
#charset koi8-r;
#access_log logs/host.access.log main;
location /www/ {
root /data/;
index index.html index.htm;
}
location /image/ {
root /data/;
autoindex on;
}
}
nginx
进行重启。3. 最终测试
http://http://192.168.123.129/image/
autoindex on;
http://http://192.168.123.129/www/a.html
nginx
启动的时候,有master
和worker
进程分别启动。nginx -s reload
进行热部署,有利于nginx进行热部署操作。因为当worker进程没有请求转发的时候,它就会根据最新更改的配置文件进行重启,而有请求转发的则会等请求转发了之后再重启。nginx
和redis
都使用了io
多路复用机制。1. 发送请求,占用了worker的几个连接数?
2. nginx有一个master,有四个worker,每个worker支持最大的连接数为1024,支持的最大并发数是多少?