linux下安装部署项目: jdk安装配置、tomcat配置、nginx负载均衡

JDK安装配置
TOMCAT安装
TOMCAT集群配置
NGINX负载均衡

一、安装jdk

先查看系统是否存在自带jdk,存在的话就删除,不存在就跳过(可以直接安装) ```shell rpm -qa | grep java #查看当前系统java有哪些文件 rpm -e --nodeps 文件名 #删除上一个命令查出来的文件 ``` ![卸载系统自带jdk](https://img-blog.csdn.net/20180725204950317?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTA3MzQyMTM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

我自己创建了个目录存放jdk、tomcat、nginx等

  1. 创建文件夹 : mkdir 文件名
mkdir chenlf

2 查看当前路径: pwd
3 复制: cp 要被复制的文件 目标文件夹

    cp /opt/jdk-8u11-linux-x64.tar.gz  /usr/chenlf/java/

4 解压: tar -zxvf 文件名

	tar -zxvf jdk-8u11-linux-x64.tar.gz 

解压后jdk路径如下 : /usr/chenlf/java/jdk1.8.0_11

5 编辑配置文件,配置环境变量 (添加在最前面就行了)

	vim /etc/profile

添加如下内容:JAVA_HOME根据实际目录来

export JAVA_HOME=/usr/chenlf/java/jdk1.8.0_11  
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export  PATH=${JAVA_HOME}/bin:$PATH

6 执行命令使环境变量文件生效 :source /etc/profile
7 执行命令查看版本以确保是否安装: java -version
linux下安装部署项目: jdk安装配置、tomcat配置、nginx负载均衡_第1张图片

二、安装tomcat

  1. 将压缩包复制到目标文件: cp /opt/apache-tomcat-8.5.31.tar.gz /usr/chenlf/
  2. 解压 : tar -zxvf apache-tomcat-8.5.31.tar.gz
  3. 重命名:mv apache-tomcat-8.5.31 tomcat8.5
  4. 启动测试
    关闭防火墙:service iptables stop

关闭防火墙

5 运行./startup.sh
然后就可以去访问 ip:8080 啦!
linux下安装部署项目: jdk安装配置、tomcat配置、nginx负载均衡_第2张图片

tomcat集群配置

1 复制几份tomcat

	cp -r tomcat8.5 tomcat8001
	cp -r tomcat8.5 tomcat8002
	cp -r tomcat8.5 tomcat8003

2 修改端口号
分别修改tomcat8001,tomcat8002,tomcat8003端口,需要修改3处)

#打开配置文件,8001、8002、8003
vi tomcat8001/conf/server.xml     

1)tomcat8001修改如下:
“8005” > 8006
“8080” > 8001
“8009” > 8010
2)tomcat8002修改如下:
“8005” > 8008
“8080” > 8002
“8009” > 8011
3)tomcat8003修改如下:
“8005” > 8012
“8080” > 8003
“8009” > 8099
保存退出

3 启动所有tomcat,测试是否正常

nginx安装配置

执行相关依赖(gcc、pcre、zlib、openssl)

yum install gcc
yum install pcre-devel
yum install zlib zlib-devel
yum install openssl openssl-devel

1.复制安装包到自己创建的目录: cp /opt/nginx-1.8.1.tar.gz /usr/chenlf/
2.解压nginx: tar -zxvf nginx-1.8.1.tar.gz (解压完后可以自己修改文件夹名称:mv nginx-1.8.1 nginx8)
3.解压完成后进入nginx目录进行配置

cd nginx8    #进入目录
#配置
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi

解释:
–prefix 为安装路径,
–with-为需要安装的模块,
具体可以运行./configure –help 查看有效模块

linux下安装部署项目: jdk安装配置、tomcat配置、nginx负载均衡_第3张图片

处理报错信息,是因为有些环境没安装,安装即可
./configure: error: the HTTP rewrite module requires the PCRE library.
./configure: error: the HTTP rewrite module requires the zlib library
需要安装pcre-devel、zlib zlib-devel (上面安装过了就不会报这个错)
yum -y install pcre-devel
yum -y install zlib zlib-devel

4.在/var下创建temp及nginx目录,配置的时候已经指定了这里

mkdir /var/temp/nginx -p

5 使用make 编译,make install 安装运行

make  # 编译命令
make install  # 安装命令

安装报错
cp: conf/koi-win' and/usr/local/nginx/conf/koi-win’ are the same file
将这一步改一下

./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf  

然后重新编译安装

6 在/usr/local目录下,可以看到Nginx目录,这个就是我们安装好了Nginx,接下来可以测试

[root@admin nginx8]# cd /usr/local/nginx/sbin/
[root@admin sbin]# ./nginx
#或者执行  /usr/local/nginx/sbin/nginx 启动

7 查看nginx是否正常启动

	ps -ef |grep nginx

或者访问IP地址: http://192.168.111.128/
linux下安装部署项目: jdk安装配置、tomcat配置、nginx负载均衡_第4张图片

8 配置负载均衡
编辑 vim /usr/local/nginx/conf/nginx.conf 路径下的nginx.conf

vim /usr/local/nginx/conf/nginx.conf

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       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  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
	
	 # 自己定义的几个tomcat 请求地址和端口 -- 需要配置的地方
	 upstream tomcatTest{
		server localhost:8001;
		server localhost:8002;
		server localhost:8003;
    }
	
	
     # 也就是当浏览器请求:tomcatTest 的时候从下面的tomcat 中去找一个进行转发
    server {
        listen       80;	
        server_name  tomcatTest;# 要与upstream一致 -- 需要配置的地方
        location / {
            root   html;
            index  index.html index.htm;
			proxy_pass http://tomcatTest; # -- 需要配置的地方
        }  
    }
}

配置部署成功后登陆系统,一登录就被踢出来(原因:系统不知反馈给哪个代理服务)
解决如下
9 反向代理实现会话(session)保持的两种方式
1)添加 自带的 ip_hash (根据客户端的IP,将请求分配到不同的服务器上;)

upstream tomcatTest{
        ip_hash; #添加在此处
        server localhost:8001;
        server localhost:8002;
        server localhost:8003;
    }

这个虽然访问正常,但是刷新几次,cookie会不同。来自局域网的客户端请求可能被发送到同一服务器上等…
具体的可以百度了解。

2) 添加 nginx-sticky-module模块

upstream tomcatTest{
        sticky;# 加在这里
        server localhost:8001;
        server localhost:8002;
        server localhost:8003;
    }

Sticky是nginx的一个模块,通过分发和识别cookie,来使同一个客户端的请求落在同一台服务器上。

10 重新编译nginx增加nginx-sticky-module模块

需要先安装(sticky依赖这个包)
yum install openssl
yum install openssl-devel

1). 查看当前的nginx编译参数

[root@admin sbin]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.8.1
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC) 
configure arguments: --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf

2).解压已下载的模块( /usr/chenlf/ 解压在此文件下)

unzip -D nginx-goodies-nginx-sticky-module-ng.zip
mv nginx-goodies-nginx-sticky-module-ng-08a395c66e42 nginx-sticky-module-ng
  1. 备份之前的nginx目录(注意:nginx日志可能很大)
    创建备份文件夹并进行备份
mkdir /usr/server/backup -p
cp -rf /usr/local/nginx/ /usr/server/backup/

4)进入之前编译好的nginx重新编译安装

cd chenlf/nginx8/
./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf --add-module=/usr/chenlf/nginx-sticky-module-ng
make 
make install #覆盖安装(最好不要覆盖安装,我是直接覆盖安装了)

【不覆盖安装的:
1.关闭 nginx进程
kill -QUIT cat /opt/icloudq/nginx/logs/nginx.pid
2.复制编译后的二进制文件到目录
cp /opt/icloudq/nginx/sbin/nginx /opt/icloudq/nginx/sbin/nginx.bak
cp /opt/icloudq/nginx_tar/nginx-1.4.7/objs/nginx /opt/icloudq/nginx/sbin/nginx
3.然后就是修改配置文件了 】

在conf下添加:

#添加sticky模块后加入此配置
upstream tomcatTest{
        # ip_hash;
        sticky;# 加在这里
        server localhost:8001;
        server localhost:8002;
        server localhost:8003;
    }

之后访问正常,尝试刷新几次,cookie仍然是同一个

你可能感兴趣的:(linux相关)