目录
1、nginx的使用 2、在linux下使用nginx 3、redis
在Linux中登录mysql的两种方式
@@@@@@@方式1: 1、首先输入 mysql -u root -p 回车 2、然后再输入密码 @@@@@@方式2: 1、输入 mysql -uroot -p123456 用户名与密码连接在一起
连接Linux在的mysql
windows中运行的程序如果要连接linux下的数据库, 连接的Url不能写localhost,也不能使用///,而是指定linux的Ip 将项目部署在linux下的tomcat,访问linux下的mysql @@@@@@@@linux的tomcat中运行的项目,要访问linux下的数据库,系统要求db.properties文件所有设置的连接属性必须要以jdbc.开头 1、修改db.properties jdbc.url=jdbc:mysql://192.168.47.128/d113?useUnicode=true&characterEncoding=UTF-8&useSSL=false jdbc.driver=com.mysql.jdbc.Driver jdbc.user=root jdbc.pwd=root 2、修改applicationContext.xml
答:nginx是一个反向代理服务器,它的作用主要是体现在三个方面: 1、反向代理 2、负载均衡 3、动静分离
正向代理:对客户端的代理就称为:正向代理 反向代理: 对服务器端的代理就称为:反向代理
通过nginx可以配置服务器集群,将原本应该由一台服务器处理的请求,分散到多台服务器共同处理 假设超市促销,有1000人买东西,他们到收银台买单,此时只有一个收银员。此时,超市可以多开放一些收银窗口,这样可以 共同处理请求,减少单个收银员的压力
负载均衡的好处
1、在高并发环境下,大量请求可以分散到多个服务器进行处理,减少单台服务器压力 @@@@@@@@@高并发:大量请求同时访问 2、配置服务器集群,可以实现高可用 @@@@@@@@高可用:在集群环境下,请求是由多台服务共同处理,即使某一些服务器出现问题,其他正常的服务器依然可以正常处理请求,不会影响用户体验
答:将静态资源(例如图片)放在静态资源服务器,将动态资源(例如:数据库的数据)放在web服务器中,数据从不同的服务器加载, 可以提高处理效率
1、将nginx解压缩到某一个目录(目录中不能有中文与空格) 2、进入nginx目录,启动nginx @@@@@@前提条件:要在环境变量中配置jdk以及JAVA_HOME 启动方式有两种: 方式1:直接双击nginx.exe文件启动(注意:启动后没有任何界面) @@@@启动成功后,直接访问localhost即可访问nginx,它的默认端口号是80,可以省略不写 @@@@如果采用这种方式启动nginx,停止时需要在进程中停止 方式2:使用命令启动 1、通过cmd进入当前nginx所在目录 2、执行下列命令 start nginx ------------启动nginx nginx -s stop-----------停止nginx nginx -s reload---------重新加载nginx
1、解压一台tomcat服务器(localhost:8080) 启动服务器 2、进入nginx/conf目录,修改Nginx.conf文件配置反向代理 location / { root html; index index.html index.htm; proxy_pass http://127.0.0.1:8080; } 3、重启nginx
如果我们希望通过域名访问指定服务器可以配置域名信息 域名解析的过程: www.baidu.com @@@@@@首先是本地解析域 当访问某一个域名时,系统会首先进行本地域名解析,将域名还原成ip地址,本地解析时,系统会查找一个系统文件 C:\Windows\System32\drivers\etc\hosts文件 如果在这个文件中可以找到对应的域名就会跳转到指定的Ip地址 @@@@@@远程域名解析 如果本地hosts文件中没有对应的域名信息,系统就会联网去查询dns服务器进行域名解析 DNS一般指域名系统。 域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务 通过dns解析,可以将域名转换成ip地址 如果要在DNS域名系统中注册,需要花钱购买域名
配置本地域名
@@@@@@在hosts文件中配置本地域名: 在windows10系统中修改Hosts文件不方便,需要权限,我们可以使用工具修改
@@@@@@@@@通过Nginx配置服务器集群,实现负载均衡 思路:配置多台tomcat服务器,在nginx中配置服务器集群,将java项目分别发布到每一台代理的服务器中,当访问项目时,请求会由每一台服务器轮流处理
步骤
1、创建一个tomcats文件夹,用于保存多台tomcat服务器 2、将tomcat解压到tomcats目录中,分别命名为: t1,t2 3、在同一台电脑中,由于多个tomcat的端口号不能冲突,所以,我们将t2的端口修改,t1不改变 @@@@在实际应用中,一台tomcat服务器,就是一台独立电脑 修改t2/conf/server.xml(需要修改5个位置) 4、修改nginx/conf/nginx.conf文件,配置服务器集群 upstream d113{ server 127.0.0.1:8080 weight=5; server 127.0.0.1:8081 weight=5; } location / { root html; index index.html index.htm; proxy_pass http://d113; } 5、创建同一个项目打包后分别部署到两台tomcat服务器中 首先将tomcat1的代码 打包后放到t1/webapps目录中 再将tomcat2的代码 打包后放到t2/webapps目录中 6、分别启动T1,T2服务器 进入bin执行 startup.bat 7、启动Ngin start nginx
修改tomcat/conf/server.xml的五处地方 1、----------------------+1 2-3、 -------------------------------两处+1 4-5、 ----两处+1
准备访问 localhost/nginx02
大家要注意下列信息: 1、请求会不会由多台服务器轮流处理,实现负载均衡? 答:请求会由多台服务器轮流处理,这样可以减少单台服务器的压力 2、当服务器切换时,session的id会不会改变? 答:sessionId变了同,但这样会导致一切换服务器,存储在session中的数据会全部丢失(这个问题需要解决) 3、当t2这台服务器挂了,请求是否还可以正常工作 答:如果集群中的一些主机挂了,请求将会由剩余的主机进行处理
@@@@@@@@@配置服务器集群后,session不能改变,否则会导致切换服务器时,存储在session中的数据丢失 解决方案有三种: 1、配置集群中的主机session共享 2、使用redis缓存 3、使用ip_hash绑定主机地址 @@@@@@@@@@@@@配置集群中的主机session共享 1、停止T1,T2服务器 2、分别修改t1,t2的conf/server.xml启用服务器集群 3、将t1,t2中的webapps下的项目移除 4、修改项目的web.xml文件,配置session共享 然后将项目打包分别发布到t1,t2的webapps目录下 5、分别启动t1,t2
1、在linux系统中部署nginx 2、在linux系统中通过nginx进行反向代理 3、在linux系统中通过nginx配置服务器集群 4、redis
安装步骤
1、下载linux版的nginx (*.tar, *.gz *.tar.gz) 2、将它发布到linux下的/d113目录 3、由于nginx是用c语言编写的,所以要先配置c语言运行环境(联网安装四个插件) yum install gcc-c++ yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum install -y openssl openssl-devel 4、将/d113目录的nginx压缩包解压缩到/usr/local/d113 tar -xvPf /d118/nginx-1.8.1.tar.gz -C /usr/local/d118 5、进入到 /usr/local/d113/nginx-1.8.1目录中,执行下列命令编译nginx ./configure 6、在当前目录中,执行命令构建nginx make 7、在当前目录中,执行命令安装nginx make install @@@@@@如果安装成功,在/usr/local目录下,会产生一个名为:nginx的目录
8、进入/usr/local/nginx/sbin目录中,执行命令启动nginx ./nginx 9、查看linux下的Nginx是否启动成功 ps -ef | grep nginx 10、在linux下的防火墙注册80端口 firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --reload 启动: systemctl start firewalld 关闭: systemctl stop firewalld ---------------------@@@@@@@@@@@@@@@@@@@@ 查看状态: systemctl status firewalld 开机禁用 : systemctl disable firewalld ----------------@@@@@@@@@@@@@@@@@@ 开机启用 : systemctl enable firewalld 11、通过nginx对tomcat服务器进行代理 代理情况分为两种: 1、linux中的nginx可以代理linux下的tomcat服务器 2、linux中的nginx可以代理windows下的tomcat服务器 修改/usr/local/nginx/conf/nginx.conf文件 @@@@@@代理linux下的tomcat location / { root html; index index.html index.htm; proxy_pass http://127.0.0.1:8080; } @@@@@@代理windows下的tomcat location / { root html; index index.html index.htm; proxy_pass http://windows系统下的主机ip:8080; } 12、重启nginx 进入/usr/local/nginx/sbin目录 ./nginx-------------启动nginx ./nginx -s stop------------停止nginx ./nginx -s reload----------重新启动nginx 13、启动linux下的tomcat 进入/usr/local/d113/tomcat/bin执行 ./startup.sh
@@@@@@@@@在linux中配置nginx代理服务器集群 在linux下配置代理集群的思路与windows中配置基本一样
步骤
1、在/usr/local/d113目录下,创建tomcats目录,用于放置多台tomcat服务器 mkdir /usr/local/d113/tomcats 2、将/d113目录中的tomcat解压缩到 /usr/local/d113/tomcats目录中 tar -xvPf /d113/apache-tomcat-7.0.57.tar.gz -C /usr/local/d113/tomcats 3、将tomcat的名称重命名为t1 mv apache-tomcat-7.0.57/ t1 4、将t1复制一份名为t2 cp t1 -r t2 @@@@@@@由于现在在一台主机中启动多台tomcat,它们的端口号不能冲突 5、修改t2的端口(t1不需要修改) 一共修改5个位置,每一个位置+1 1、进入t2/conf 2、编辑server.xml 6、修改/usr/local/nginx/conf/nginx.conf 1、vi /usr/local/nginx/conf/nginx.conf 2、在文件中新增如下配置 upstream d113{ server 127.0.0.1:8080 weight=5; server 127.0.0.1:8081 weight=5; ip_hash; } location / { root html; index index.html index.htm; proxy_pass http://d113; }
7、重启nginx 1、进入 cd /usr/local/nginx/sbin 2、执行 ./nginx -s reload 8、启动t1,t2两台服务器 cd /usr/local/d118/tomcats/t1/bin 1、进入t1或者t2下的bin目录,执行 ./startup.sh 9、创建项目,并且打包成war 10、将war包发布到t1,t2目录下的webapps目录 11、测试代码 注意:tomcat服务器的 8080,8081不需要在防火墙注册,因为我们是通过nginx进入访问 192.168.47.128/nginx04
@@@@@@@@@@@@@@@@@@大家要观察下列几个信息 1、请求会不会由多台服务器轮流留处理? 2、session的id会不会改变? 答:如果切换服务器,session的ID会改变 3、如果处理请求的服务器挂了,请求会不会被其他服务器处理?
@@@@@@@@@@@通过nginx配置服务器集群后,要解决sessionID改变的问题 windows下有三种解决方案: 1、配置集群中的主机session进行共享 这种方式只能在windows中使用,linux中无法使用 2、使用redis进行存放 3、使用ip_hash; 这种方式是将客户端的IP地址与某一台tomcat服务器进行绑定,不再切换服务器 当客户端请求,第1次到达nginx时,nginx会记录当前客户端的Ip地址,并且从集群中分配一台主机处理本次请求, 当后续该客户端请求再次到达Nginx,nginx会判断它的ip地址,然后找到之前绑定的服务器进行处理,不会切换到其他服务器。此时,由于服务器没有切换,session也不会改变 问题:如果处理请求的服务器挂了,只是nginx就会分配其他主机处理这个客户请求 linux中的解决方案: 1、使用redis进行存放 2、使用ip_hash;