总结:
知识点:
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器
内存: 不到2M
并发能力强: 3-5万次/秒 理想环境下 /tomcat服务器 150-220/秒
https://jingyan.baidu.com/article/b7001fe1d6e9370e7382dd43.html
Nginx每次启动时会生成2个进程项
如果需要关闭nginx,则应该先关闭守护进程,再关闭主进程.
命令的运行
(1) 启动nginx start nginx 即使启动不成功,也不会报错!!!!所以通过重启检查是否异常
(2)重启nginx nginx -s reload 如果配置文件编辑异常,则会显示报错信息
(3)停止nginx nginx -s stop
http {
server {
listen 80; # 监听端口号
server_name localhost; # 监听的服务名称
#反向代理的配置,获取用户指定的请求之后,将请求转向到什么位置
# / 请求访问的根目录
location / {
# root关键字 反向代理文件目录
root html;
# index关键字 默认跳转页面
index index.html index.htm;
}
}
}
url地址: http://image.jt.com/2020/07/11/39ff8758-57bb-4452-bf29-db6061fff24a.jpg
磁盘地址: D:\JT-SOFT\images/2020/07/11/39ff8758-57bb-4452-bf29-db6061fff24a.jpg
利用nginx服务器实现反向代理机制, 当用户访问http://image.jt.com时 要求跳转到路径 D:\JT-SOFT\images\
a.文件位置(nginx-1.19.1/conf/nginx.conf)
b.文件编辑
/ 和 root 关键字
# 配置图片服务器代理 个别windows中"_-"字符可能不识别
server {
listen 80;
server_name image.jt.com;
location / {
#映射到目录中
root D:\JT-SOFT\images;
}
}
c.编辑完之后重启 nginx -s reload
# 京淘环境配置
127.0.0.1 image.jt.com
127.0.0.1 manage.jt.com
127.0.0.1 www.jt.com
127.0.0.1sso.jt.com
要求: 用户通过http://manage.jt.com:80 访问localhost:8091服务器.
# 配置域名代理
server {
listen 80;
server_name manage.jt.com;
location / {
#代理的是服务器地址
proxy_pass http://localhost:8091;
}
}
说明:在分布式条件下,为了提高用户请求的响应能力,准备多台服务器.一起抗击高并发.需要用户通过同一个网址访问不同服务器的技术称之为负载均衡机制.
需求:准备3台tomcat服务器,并且端口号依次为8081/8082/8083,之后完成项目Windows部署.
在sts软件中右键jt目录,run as ->maven install,后两次直接右键jt-manage目录,run as ->maven install。
在target目录下找到打好的war包,复制走并改名。
在3个war包所在目录下3次进入cmd窗口,依次执行java -jar 808X.war指令。
发布后在浏览器中依次访问localhost:8081、localhost:8082、localhost:8083。
如果浏览器访问速度较慢(不正常),直接关闭当前dos命令窗口,或者 ctrl + c 方式 释放资源.
说明: 根据配置文件的顺序,依次访问tomcat服务器.
# 配置域名代理
server {
listen 80;
server_name manage.jt.com;
location / {
#代理的是服务器地址
#proxy_pass http://localhost:8091;
proxy_pass http://jtW;
}
}
#定义多台tomcat服务器 1.轮询策略
upstream jtW {
server localhost:8081;
server localhost:8082;
server localhost:8083;
}
权重策略: 让性能更优的服务器更多的处理请求.
#定义多台tomcat服务器 1.轮询策略 2.权重策略
upstream jtW {
server localhost:8081 weight=6;
server localhost:8082 weight=3;
server localhost:8083 weight=1;
}
说明: 如果需要用户与后端服务器进行绑定时,可以使用IPhash策略.
案例A: 有时用户可能做登录操作,可能将用户信息保存到session对象 中,如果这时采用轮询/权重的策略,可能访问其他的业务服务器.导致用户频繁的登录.
#定义多台tomcat服务器 1.轮询策略 2.权重策略
upstream jtW {
ip_hash;
server localhost:8081 weight=6;
server localhost:8082 weight=3;
server localhost:8083 weight=1;
}
补充知识:
(1)IPHASH一般只做测试时用.
(2)使用IPHASH可能造成负载不均的现象. 某些服务器负载压力过高.有宕机的风险.
(3)使用IPHASH时,如果后端服务器宕机,则直接影响用户的使用.
(4)工作中如果需要实现用户信息的共享,一般采用SSO的方式进行.
用户只需一次登录就可以访问所有相互信任的应用系统
#定义多台tomcat服务器 1.轮询策略 2.权重策略 3.ip_hash策略
upstream jtW {
server localhost:8081 weight=6 down;
server localhost:8082 weight=3;
server localhost:8083 weight=1;
}
#定义多台tomcat服务器 1.轮询策略 2.权重策略 3.ip_hash策略
upstream jtW {
server localhost:8081 weight=6 down;
server localhost:8082 weight=3 down;
server localhost:8083 weight=1 backup;
}
属性说明:
(1)max_fails=1 允许访问失败的最多次数
(2)fail_timeout=60s 失败的超时时间(理解为时间区间)
当服务器宕机时,这时配置文件还没有被标识为down时.开启了高可用的机制. 只要失败的次数超过最大失败次数,则在指定的时间周期之内,不会再次访问故障机.
#定义多台tomcat服务器 1.轮询策略 2.权重策略 3.ip_hash策略
upstream jtW {
#ip_hash;
server localhost:8081 max_fails=1 fail_timeout=60s;
server localhost:8082 max_fails=1 fail_timeout=60s;
server localhost:8083 max_fails=1 fail_timeout=60s;
}
说明:
a.使用桥接模式相当于虚拟机直接接入当前局域网.并且独占IP
b.如果采用桥接模式,则必须有第三方的设备进行支持.
c.凡是在局域网中的设备,都可以与虚拟机进行通讯.
说明:
(1)NAT模式相当于在本机开辟一块网络空间地址.
(2)只有本机能够访问,其他服务器不能访问
在Linux系统中输入ip addr,其中ens33之后没有IP地址展现,需要重启网卡配置.
命令方式:
a. systemctl restart NetworkManager
b. service network restart
c. ip addr
ping 192.168.126.129 (设置的IP地址从128开始,这里ping个129)
tar命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。
一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件,再以gzip压缩命令压缩成name.tar.gz的文件。
-c 创建一个新的tar文件
-v 显示运行过程的信息
-f 指定文件名
-z 调用gzip压缩命令进行压缩
-t 查看压缩文件的内容
-x 解开tar文件
tar –cvf n.tar ./* 压缩当前目录下的所有文件和目录,文件名为n.tar
tar –xvf n.tar 解压压缩包中的文件到当前目录(如果长时间未解压成功 Ctrl+C退出)
tar –cvzf m.tar.gz ./* 压缩文件
tar -zxvf m.tar.gz 解压m.tar文件到当前目录
tar -zxvf jdk-8u51-linux-x64.tar.gz
命令: vim /etc/profile,加入如下配置,设定jdk环境
修改之后任意的IP地址可以访问数据库,但是要求用户名和密码正确.
说明:一般防火墙只拦截远程请求本服务器的请求
该配置控制了防火墙 以后的操作状态信息
systemctl stop firewalld.service
systemctl start firewalld.service
#image.localDir=D:/JT-SOFT/images
image.localDir=/usr/local/src/images
image.imageUrl=http://image.jt.com
image.imageTypes=.jpg,.png,.gif,.jpeg
java -jar 8081.war & java -jar 8082.war & java -jar 8083.war & 该操作是前台启动的方式.会占用当前的控制台.
ps -ef | grep java* #查询java相关进程的状态
kill -9 4379 #杀死进程
java -jar 8081.war & java -jar 8082.war & java -jar 8083.war &
说明: 通过java -jar xxxx.war 方式表示前台运行,该方式不允许控制台关闭,如果控制台关闭之后,所有的服务都将停止,所以需要开启后台运行的方式。
nohup java -jar 8081.war -> 8081.log & nohup java -jar 8082.war -> 8082.log & nohup java -jar 8083.war -> 8083.log &
在tomcats文件夹中进入脚本文件编辑页面:vim start.sh
#!/bin/sh
nohup java -jar 8081.war -> 8081.log &
nohup java -jar 8082.war -> 8082.log &
nohup java -jar 8083.war -> 8083.log &
运行脚本业面:sh start.sh
说明: nginx的环境配置有2个环境.
环境1: /usr/local/src/nginx 该路径是nginx的源文件路径 主要负责编译/安装等工作 (安装)
环境2: /usr/local/nginx 该路径是nginx的工作路径 主要实现反向代理配置工作 (工作)
命令1: ./configure 执行nginx目录下configure文件
命令2: make 编译
命令3: make install 安装nginx
命令4: whereis nginx 检查nginx是否安装成功
a.启动nginx ./nginx
b.重启nginx ./nginx -s reload
c.关闭nginx ./nginx -s stop
#配置图片服务器
server {
listen 80;
server_name image.jt.com;
location / {
#配置反向代理的路径
root /usr/local/src/images;
}
}
#配置域名代理
server {
listen 80;
server_name manage.jt.com;
location / {
#代理tomcat服务器
proxy_pass http://tomcats;
}
}
#配置tomcat集群 默认是轮询策略
upstream tomcats {
server localhost:8081;
server localhost:8082;
server localhost:8083;
}
修改完成之后,进入/usr/local/nginx/sbin目录中,重启nginx服务器,命令:./nginx -s reload
# 京淘环境配置
#127.0.0.1 image.jt.com
#127.0.0.1 manage.jt.com
#测试inux项目发布
192.168.126.129 image.jt.com
192.168.126.129 manage.jt.com
127.0.0.1 www.jt.com
127.0.0.1 sso.jt.com
工作原理说明:
1.数据库主库将更新的数据信息写入到二进制日志文件binary log中.
2.数据库从库通过IO线程去主库中获取二进制文件修改内容. 之后写入到中继日志relay log中
3.数据库从库中的Sql线程读取中继日志中的信息,实现数据的同步。并且为了降低组件之间的耦合性,采用异步的方式处理.
规定: 主机IP地址 192.168.126.129
从机IP地址 192.168.126.130
说明:默认条件下 数据库二进制文件是关闭的.如果需要开启,则必须手动配置. 之后重启数据库.
修改配置文件, vim /etc/my.cnf,添加server-id=1 log-bin=mysql-bin ,保存后退出
修改之后cd /var/lib/mysql/ 进入数据库工作目录,重启数据库 ,命令:systemctl restart mariadb。然后通过 ls 指令检查二进制文件(mysql-bin.000001和mysql-bin.index)是否生成
/*130是从机 实现主从的挂载 host/port/user/password/二进制文件/位置*/
change MASTER to MASTER_HOST="192.168.126.129",
MASTER_PORT=3306,
MASTER_USER="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=245;
/*开启主从服务*/
start slave;
/*检查主从同步状态*/
show SLAVE status;
(1)先查询日志信息
(2)修改数据库配置之后重启
(3)停止主从服务 STOP SLAVE;
(4)重新挂载数据库
root
jtdb
user
jtdb
true
/*我之前是主库 现在是从库*/
CHANGE MASTER TO
MASTER_HOST="192.168.126.130",
MASTER_PORT=3306,
MASTER_user="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=482;
/* 启动主从服务*/
start slave
show SLAVE status;
说明: 当其中有一台数据库宕机之后,用户依然可以正确的访问数据库不受任何影响,(实现了故障迁移).主要数据库能够正常的工作,则重新启动数据库之后则可以实现自动的数据的同步.
select 1
-