Linux redis缓存服务器(Nginx+Tomcat+redis+MySQL实现session会话共享)

Linux命令

【grep -v  "^#" /etc/inittab | more】查看/etc/inittab文件,并过滤注释行

网址

http://tengine.taobao.org/book/index.html nginx

https://www.w3cschool.cn/timlc/timlc-kzje24yn.html

https://www.cnblogs.com/bluestorm/p/4574688.html

http://www.cnblogs.com/linjiqin/p/5491654.html

https://blog.csdn.net/a19860903/article/details/49890013 

https://blog.csdn.net/cheetahlover/article/details/78845553

https://blog.csdn.net/vanilla_he/article/details/79257884

https://blog.csdn.net/zll_0405/article/details/80501898

https://blog.csdn.net/u010921373/article/details/71038509

https://blog.csdn.net/kepoon/article/details/73253059

https://blog.csdn.net/m0_37681914/article/details/76599596 JDK安装

安装nginx

1.安装zlib-devel、pcre-devel等依赖包

# yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel

 

2.创建nginx程序用户

# useradd -s /sbin/nologin www

-s:指定用户登入后所使用的shell。默认值为/sbin/nologin。

语法 nologin 实例 Linux禁止用户登录: 禁止用户登录后,用户不能登录系统,但可以登录ftp、SAMBA等

 

3.安装nginx

下载命令:wget http://nginx.org/download/nginx-1.12.2.tar.gz

解压:# tar -zxf nginx-1.12.2.tar.gz

进入nginx:# cd nginx-1.12.2/

进行配置(在此将Nginx安装指向/usr/local/nginx/ 目录下):

./configure --prefix=/usr/local/nginx1.12 --user=www --group=www --with-http_sub_status_module --with-http_realip_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre --with-http_flv-Module

进行编译和安装:make && make install

优化nginx程序的执行路径,创建软链接:ln -s /usr/local/nginx1.12/sbin/nginx /usr/local/sbin/

检查是否安装成功:# /usr/local/nginx1.12/sbin/nginx -t 或 nginx -t

 

4.新建nginx服务脚本:# vim /etc/init.d/nginx

#!/bin/bash
# nginx Startup script for the Nginx HTTP Server
# chkconfig: - 85 15
# pidfile: /usr/local/nginx1.12/logs/nginx.pid
# config: /usr/local/nginx1.12/conf/nginx.conf
nginxd=/usr/local/nginx1.12/sbin/nginx
nginx_config=/usr/local/nginx1.12/conf/nginx.conf
nginx_pid=/usr/local/nginx1.12/logs/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Start nginx daemons functions.
start() {
if [ -f $nginx_pid ] ; then
echo "nginx already running...."
exit 1
fi
echo -n "Starting $prog: "
   $nginxd -c ${nginx_config}
   RETVAL=$?
[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
}
# Stop nginx daemons functions.
stop() {
echo -n "Stopping $prog: "
        $nginxd -s stop
        RETVAL=$?
[ $RETVAL = 0 ] &&rm -f /var/lock/subsys/nginx
}
# reloadnginx service functions.
reload() {
echo -n "Reloading $prog: "
    $nginxd -s reload
}
# statusngnx service functions
status() {
if [ -f $nginx_pid ] ; then
echo  "$prog is running"
else
echo  "$prog is stop"
fi
}
case "$1" in
start)
start
        ;;
stop)
stop
        ;;
reload)
reload
        ;;
restart)
stop
start
        ;;
status)
status
        ;;
*)
echo "Usage: $prog {start|stop|restart|reload|status}"
exit 1
        ;;
esac


# chmod +x /etc/init.d/nginx :添加可执行属性
# chkconfig --add nginx:
将nginx服务加入chkconfig管理列表
# chkconfig nginx on:设置终端模式开机启动
# systemctl daemon-reload:刚刚配置的服务需要让systemctl能识别,就必须刷新配置

5.配置nginx反向代理:反向代理+负载均衡+健康探测

nginx.conf文件内容:# cat /usr/local/nginx1.12/conf/nginx.conf

配置Nginx多核CPU:4核CPU,开户4个进程
worker_processes     4;  
worker_cpu_affinity 0001 0010 0100 1000;

worker_rlimit_nofile:为nginx工作进程改变打开最多文件描述符数目的限制。用来在不重启主进程的情况下增加限制。

use epoll;

#使用epoll的I/O 模型(值得注意的是如果你不知道Nginx该使用哪种轮询方法的话,它会选择一个最适合你操作系统的)

补充说明:

与apache相类,nginx针对不同的操作系统,有不同的事件模型
    A)标准事件模型
    Select、poll属于标准事件模型,如果当前系统不存在更有效的方法,nginx会选择select或poll
    B)高效事件模型
    Kqueue:使用于FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X.使用双处理器的MacOS X系统使用kqueue可能会造成内核崩溃。
    Epoll:使用于Linux内核2.6版本及以后的系统。
    /dev/poll:使用于Solaris 7 11/99+, HP/UX 11.22+ (eventport), IRIX 6.5.15+ 和 Tru64 UNIX 5.1A+。
    Eventport:使用于Solaris 10. 为了防止出现内核崩溃的问题, 有必要安装安全补丁server_tokens off;server_tokens默认值是on,表示显示版本信息,设置server_tokens值是off,就可以在所有地方隐藏nginx的版本信息。

6.重启nginx服务,使修改生效

# service  nginx restart

# systemctl start nginx.service          启动nginx服务

# systemctl stop nginx.service           停止服务

# systemctl restart nginx.service        重新启动服务

# systemctl list-units --type=service     查看所有已启动的服务

# systemctl status nginx.service          查看服务当前状态

# systemctl enable nginx.service          设置开机自启动

# systemctl disable nginx.service         停止开机自启动

Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

# systemctl status nginx.service:查看出错原因

# systemctl status nginx.service -l:查看错误的详情

# nginx -t :检查配置文件是否正确,并修改

# ./sbin/nginx -V : 可以看到编译选项

查看nginx进程命令:ps -ef | grep  nginx

# chmod +x /web:添加root目录的执行权限

7.安装jdk

下载:# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"

解压缩:# tar -zxf jdk-8u141-linux-x64.tar.gz

将解压的jdk-8u141-linux-x64目录移致动到/usr/local/下并重命名为java:# mv jdk1.8.141/ /usr/local/java

在/etc/profile文件中添加内容如下:

export JAVA_HOME=/usr/local/java

export PATH=$JAVA_HOME/bin:$PATH

通过source命令执行profile文件,使其生效:# source /etc/profile

检查路径:# echo $PATH

检查Java版本:# java -version

8.安装tomcat

下载:# wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz 

解压:# tar -zxf apache-tomcat-8.5.32.tar.gz 

将解压生成的文件夹移动到/usr/local/下,并改名为tomcat8:# mv apache-tomcat-8.5.32 /usr/local/tomcat8

配置tomcat环境变量/etc/profile文件内容如下:

export JAVA_HOME=/usr/local/java

export CATALINA_HOME=/usr/local/tomcat8

export PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$PATH

通过source命令执行profile文件,使其生效:# source /etc/profile

查看PATH路径:# echo $PATH

查看tomcat的版本信息:# catalina.sh version

启动tomcat:# /usr/local/tomcat8/bin/startup.sh关闭tomcat:# /usr/local/tomcat8/bin/shutdown.sh

修改配置文件# vim /usr/local/tomcat8/conf/server.xml

防火墙规则配置:# firewall-cmd --permanent --add-port=8080/tcp

9.在 /usr/local 下部署两个Tomcat

复制tomcat8,重命名为:tomcat8-1  

 

编辑环境变量:vi /etc/profile

加入以下代码(tomcat路径要配置自己实际的tomcat安装目录)

#tomcat

CATALINA_BASE=/usr/local/tomcat8

CATALINA_HOME=/usr/local/tomcat8

TOMCAT_HOME=/usr/local/tomcat8

export CATALINA_BASE CATALINA_HOME TOMCAT_HOME

#tomcat1

CATALINA_2_BASE=/usr/local/tomcat8_2

CATALINA_2_HOME=/usr/local/tomcat8_2

TOMCAT_2_HOME=/usr/local/tomcat8_2

export CATALINA_2_BASE CATALINA_2_HOME TOMCAT_2_HOME

使之生效:source /etc/profile

打开catalina.sh ,找到下面红字,

 # OS specific support.  $var _must_ be set to either true or false.

在下面增加如下代码

export CATALINA_BASE=$CATALINA_2_BASE
export CATALINA_HOME=$CATALINA_2_HOME

来到第二个tomcat的conf目录下

打开server.xml更改端口:

修改server.xml配置和第一个不同的启动、关闭监听端口。

修改后示例如下:

<Server port="9005" shutdown="SHUTDOWN">                端口:8005->9005

<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->

<Connector port="9080" maxHttpHeaderSize="8192"        端口:8080->9080

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

               enableLookups="false" redirectPort="8443" acceptCount="100"

               connectionTimeout="20000" disableUploadTimeout="true" />

<!-- Define an AJP 1.3 Connector on port 8009 -->

<Connector port="9009"                                  端口:8009->9009

               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

分别进入两个tomcat的bin目录,启动tomcat--./startup.sh

打开浏览器分别对tomcat和tomcat-2访问测试

192.168.6.22:8080192.168.6.22:8081

Tomcat默认运行在8080端口,运行netstat命令查看8080端口监听的信息:# netstat -anpt | grep java

# catalina.sh config test

用浏览器访问nginx主机,验证负载均衡:192.168.6.22

 

linux中查看IP命令:ifconfig -a

如何在Linux下查找文件内容包含某个特定字符串的文件

find ./ name "*.*" | xargs grep "要查询的特定字符串"

10.配置tomcat通过redis实现会话保持

下载redis源码:# wget http://download.redis.io/releases/redis-4.0.10.tar.gz

阿里redis连接不通:# wget -c http://download.redis.io/redis-stable.tar.gz redis-4.0.10.tar.gz

github:https://github.com/antirez/redis

解压安装redis:# tar zxf redis-4.0.10.tar.gz

开始安装:

# cd redis-4.0.10/

# make && make install

切换到utils目录下,执行redis初始化脚本install_server.sh:

# cd utils/

# ./install_server.sh

通过上面的安装过程,我们可以看出redis初始化后redis配置文件为/etc/redis/6379.conf,日志文件为/var/log/redis_6379.log,数据文件dump.rdb存放到/var/lib/redis/6379目录下,启动脚本为/etc/init.d/redis_6379

使用systemd,所以在 /etc/systemd/system 下创建一个单位文件名字为 redis_6379.service

# vi /etc/systemd/system/redis_6379.service

内容

[Unit]
Description=Redis on port 6379
[Service]
Type=forking
ExecStart=/etc/init.d/redis_6379 start
ExecStop=/etc/init.d/redis_6379 stop
[Install]
WantedBy=multi-user.target

启动redis

刷新配置:# systemctl daemon-reload,如果没有权限可以使用sudo:$ sudo systemctl daemon-reload

redis服务加入开机启动:$ systemctl enable redis

禁止开机启动:$ systemctl disable redis

启动redis:$ systemctl start redis
重启redis:$ systemctl restart redis
停止redis:$ systemctl stop redis

查看状态:# systemctl status redis_6379.service

查看redis版本:# redis-cli --version

配置redis

设置redis监听的地址,添加监听redis主机的ip

考虑到安全性,我们需要启用redis的密码验证功能requirepass参数

# grep -Ev '^#|^$' /etc/redis/6379.conf
bind 127.0.0.1 192.168.6.20
requirepass pwd@123

重新启动redis服务:# systemctl restart redis_6379.service

查看端口:# netstat -anpt | grep redis

启动redis并进行简单的操作

连接redis服务器:# redis-cli -h 192.168.6.20 -p 6379 -a pwd@123

查看redis所有的键值对:keys *

添加一个键值name:set name yn

查看name这个键值的内容:get name

配置tomcat session redis同步

下载tomcat-redis-session-manager相应的jar包,主要有三个

tomcat-redis-session-manage-tomcat8.jar
jedis-2.5.2.jar
commons-pool2-2.2.jar

参考下载地址:https://blog.csdn.net/lipc_/article/details/52766884

https://github.com/cc-chen/tomcat8.0-redis-session-manager

添加下面的配置到tomcat的context.xml中

<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve"/> 
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager" host="192.168.6.20" port="6379" database="0" password="pwd@123" maxInactiveInterval="60" /> 

tomcat8.0-redis-session-manager.jar:wget https://github.com/cc-chen/tomcat8.0-redis-session-manager/raw/master/output/tomcat8.0-redis-session-manager.jar

jedis-2.5.2.jar  :wget https://github.com/cc-chen/tomcat8.0-redis-session-manager/blob/master/lib/jedis-2.5.2.jar

commons-pool2-2.2.jar: wget https://github.com/cc-chen/tomcat8.0-redis-session-manager/blob/master/lib/commons-pool2-2.2.jar

11.Linux下mysql5.6.33安装配置教程

https://www.jb51.net/article/111401.htm

https://www.jb51.net/article/102621.htm 推荐

#mysql -u root -p未找到命令;#加入环境变量export PATH=$PATH:/usr/local/mysql//bin<br>source /etc/profile

access denied for user root @localhost 给mysql用户设置密码,输入命令:passwd mysql

linux mysql操作命令:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/18/2216279.html

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值