一、安装JAVA环境(jdk)
1、安装tar命令
在Linux环境下,通过tar -zxvf 命令解压文件
yum install -y tar
2、配置Java环境,安装jdk
官网手动下载 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
此处提供个官方的账号:2696671285@qq.com 密码:Oracle123
3、解压文件
使用xftp将jdk源码包,上传到/usr/local(软件一般安装到这个目录)
tar -zxvf jdk-8u211-linux-x64.tar.gz
顺手删掉jdk源码包
rm -rf jdk-8u211-linux-x64.tar.gz
4、配置环境变量
/etc/profile文件的改变会涉及到系统的环境,也就是有关Linux环境变量的东西
vim /ect/profile
按i进入编辑,在profile文件尾部添加如下内容
export JAVA_HOME=/usr/local/jdk1.8.0_181 #jdk安装目录
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
Esc --> :wq
保存并退出编辑
通过命令source /etc/profile让profile文件立即生效
[root@localhost local]# source /etc/profile
5、检测jdk是否安装成功
java -version
二、安装nginx
Nginx是C语言开发,nginx安装前需具备gcc g++环境在安装时进行编译。可通过下面命令查看是否有这三个包
//一键安装上面四个依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
安装nginx
可在nginx官网http://nginx.org/download/查看最新版本
之后通过wget在线下载tar.gz压缩包安装
wget http://nginx.org/download/nginx-1.12.2.tar.gz
离线方式可在互联网环境进入上面的地址下载好后FTP到主机安装,压缩包安装方式如下
tar -zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure && make && make install
②nginx使用
常用命令
/usr/local/nginx/sbin/nginx -h 命令帮助
/usr/local/nginx/sbin/nginx 启动nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 配置文件方式启动
/usr/local/nginx/sbin/nginx -s stop (quit) 停止nginx
/usr/local/nginx/sbin/nginx -s reload 重启nginx
/usr/local/nginx/sbin/nginx -t 验证配置文件(检测是否安装成功)
ps -ef | grep nginx 查看nginx进程
netstat -tunlp 查看端口占用
netstat -tunlp |grep 查看指定端口
kill -QUIT Nginx主进程号 停止进程
kill -TERM Nginx主进程号 快速停止
kill -9 nginx 强制停止
kill -HUP Nginx主进程号 平滑重启
nginx的配置文件为安装目录下的nginx目录中的nginx.conf,默认端口为80,启动后出现如下页面即为启动成功
③nginx反向代理
nginx反向代理有两种配置方式,一种为直接在location的proxy_pass属性中指定跳转地址,另一种为指定upstream(upstream模块是命名一个后端服务器组),在proxy_pass处写上upstream名称即可
④nginx负载均衡
nginx负载均衡策略
(1)轮询:轮流处理请求,每个请求按时间顺序逐一分配到不同的应用服务器,如果应用服务器宕掉,自动剔除,剩下的继续轮询。
upstream myServer {
server 192.168.1.1:9090 down; //down表示此节点不参与负载
server 192.168.1.1:6060 fail_timeout=10s max_fails=2; //10S内连接失败2次就认为这个服务器工作不正常
server 192.168.1.1:7070 backup; //当其他所有的非backup机器宕机时,才会请求backup机器
}
down
表示服务器永久停机,不参与负载
bakcup
表示服务器为备用服务器,当其他服务器全部停机时,请求才会发送到这里
fail_time
服务器会被认为停机的时长,默认为10s
max_fails
允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
fail_timeout
fail_timeout与max_fails要关联使用,一台服务器在fail_timeout内出现了max_fails次失败,则认为这台服务器已经挂掉,然后在fail_timeout时间后会尝试重新连接。
nginx负载均衡的默认策略为轮询方式,在轮询中,如果服务器donw了,会自动剔除该服务器。
(2)权重:通过配置权重,指定轮询几率,权重和访问比率成正比,用于应用服务器性能不均的情况。
upstream myServer {
server localhost:8080 weight=2;
server localhost:8082 backup;
server localhost:8083 max_fails=3 fail_timeout=20s;
}
权重方式可以与ip_hash和 least_conn结合使用。
(3)IP地址哈希(ip_hash):每个请求按访问ip的hash结果分配,这样每个访客固定访问一个应用服务器,可以解决session共享的问题。
upstream myServer {
ip_hash;
server localhost:8080 weight=2;
server localhost:8081;
}
(4)最少连接(least_conn):web请求会被转发到连接数较少的服务器上,适合请求处理时间长短不一造成服务器过载的情况
upstream myServer {
least_conn;
server localhost:8080 weight=2;
server localhost:8081;
server localhost:8082 backup;
server localhost:8083 max_fails=3 fail_timeout=20s;
}
(5)最短响应时间(fair):按照服务器端的响应时间来分配请求,响应时间短的优先分配。
upstream myServer {
server localhost:8080;
server localhost:8081;
server localhost:8082;
server localhost:8083;
fair;
}
(6)URL地址哈希(url_hash):按访问的url进行分配,使每个url定向到同一个后端服务器,要配合缓存命中来使用。同一个资源多次请求,可能会到达不同的服务器上,造成不必要的多次下载。使用url_hash后同一url每次到达一台服务器,可以缓存资源,不会造成多次下载。
upstream myServer {
hash $request_uri;
server localhost:8080;
server localhost:8081;
server localhost:8082;
server localhost:8083;
}
【注】
Nginx proxy_pass后的url加不加/的区别
在nginx中配置proxy_pass时,若url中端口号后无内容,当在后面的url加上了/相当于是绝对根路径。则nginx不会把location中匹配的路径部分代理走;如果没有/,则会把匹配的路径部分也给代理走。若端口号后有内容,则无论后面是否有/,都不会把location中匹配的路径部分代理走。