Nginx+Tomcat+Redis实现集群搭建
背景: 最近几天一直在琢磨Nginx反向代理以及使用Redis保存session,因为本人对java开发比较熟悉,所以在闲暇之余将公司的一个系统在虚拟机上搭建一个集群。特此总结过程。
一.需要使用的一些Linux命令。
1.1. 查看端口占用程序
netstat -tunlp |grep 22
1.2. 查看服务的pid
ps -ef |grep tomcat
1.3. 根据对应端口杀死进程
kill pid(找到端口号信息后通过pid)
1.4. 查看防火墙的状态
service iptables status
1.5. 开启防火墙
chkconfig iptables on
/etc/init.d/iptables start
service iptables start
1.6. 关闭防火墙
chkconfig iptables off
/etc/init.d/iptables stop
service iptables stop
1.7. 开启80端口
vi /etc/sysconfig/iptables
添加
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
1.8. 禁止指定ip访问80端口
iptables -A INPUT -p tcp -s 192.168.1.2 -j DROP
1.9. 只打开22端口
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp –sport 22 -j ACCEPT
1.10 参数讲解:
–A 参数就看成是添加一条规则
–p 指定是什么协议,我们常用的tcp 协议,当然也有udp,例如53端 口的DNS
–dport 就是目标端口,当数据从外部进入服务器为目标端口
–sport 数据从服务器出去,则为数据源端口使用
–j 就是指定是 ACCEPT -接收 或者 DROP 不接收
二.需要安装的软件
Mysql5.1+JDK1.7+Tomcat7+Redis3.0.7+Nginx1.8.1
三.环境
Centos6.5
四.安装JDK1.7
4.1.1. 列出所有jdk版本
yum list java*
4.1.2. 安装
yum install java-1.7.0-openjdk.x86_64
4.2.1. 查看自带版本
rpm -qa|grep jdk
4.2.2. 安装
rpm -ivh jdk-7u40-linux-i586.rpm
4.3.1. 配置环境变量
vim ~/.bashrc;vim /etc/profile
配置过程略
五.安装Mysql
1.系统自带mysql版本过低
yum update 更新试试没有放弃吧
2.通过wget下载后rpm安装
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.11-1.el7.x86_64.rpm-bundle.tar(可以去官网下载)
tar -xvf 解压后rpm -ivh 安装
六. Mysql 初始化密码
My.cnf是mysql的配置文件可以配置mysql的字符集,大小写敏感等,还可以加入
[mysqld]
skip-grant-tables
重启服务进入无密码方式进入mysql
use user;
UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
FLUSH;
quit;
七. 安装Redis
1. 下载
wget http://download.redis.io/releases/redis-3.0.7.tar.gz
2. 解压
tar -zxvf redis-3.0.7.tar.gz
3. 安装
1. cd redis-3.0.7
2.ll
已经有Makefile,直接可以用make安装
make&&make install
再试试: make MALLOC=libc
redis-cli
八. 将Tomcat的session存储到redis中已达到在集群下用户session的数据一致性。
1. 将所需的jar导入tomcat7的bin中
commons-pool2-2.2.jar
jedis-2.5.2.jar
tomcat-redis-session-manager-2.0.0.jar
2. 在./conf/context.xml做以下配置
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- tomcat-redis-session共享配置 -->
<Valve className="com.orangefunction.tomcat.redissessions
.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions
.RedisSessionManager"
host="localhost"
port="6379"
database="0"
maxInactiveInterval="60" />
<!----------------------------- -->
</Context>
以上配置参数很容易明白什么意思。配置完成后最好重启tomcat7看看日志信息了解是否配置成功。
九. 下载安装nginx-1.8.1稳定版(可以去官网找到下载路径)
1.下载安装包
wget http://nginx.org/download/nginx-1.8.1.tar.gz
2. 解压
tar-zxvf nginx-1.8.1.tar.gz
3. 安装
可以看到里面有个configuer文件那么直接编译安装即可。
./configure
错误原因没有找到pcre-**需要指定pcre路径
查找:find/-name fileName没有找到需要安装
yum remove pcre*
yum list pcre*
yum install pcre*
make && make install
安装完成
十.配置启动
1. 启动nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
2.查看是否启动
ps -ef | grep nginx
或浏览器访问http://127.0.0.1
3. 关闭nginx
ps -ef |grep nginx
kll 5578(杀掉进程)
4. 配置nginx实现反向代理
vim /usr/local/nginx/conf/nginx.conf
下面是配置信息:
#Nginx所用用户和组,window下不指定
#user maybo maybo;
#工作的子进程数量(通常等于CPU数量或者2倍于CPU)
worker_processes 2;
#错误日志存放路径
#error_log logs/error.log;
#error_log logs/error.log notice;
error_log logs/error.log info;
#指定pid存放文件
pid logs/nginx.pid;
events {
#使用网络IO模型linux建议epoll,FreeBSD建议采用kqueue,window下不指定。
#use epoll;
#允许最大连接数
worker_connections 2048;
}
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 off;
access_log logs/access.log;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
#keepalive_timeout 75 20;
include gzip.conf;
upstream localhost {
#根据ip计算将请求分配各那个后端tomcat,许多人误认为可以解决session问题,其实并不能。
#同一机器在多网情况下,路由切换,ip可能不同
#ip_hash;
server localhost:8080;
server localhost:8088;
}
server {
listen 80;
server_name localhost;
location / {
proxy_connect_timeout 3;
proxy_send_timeout 30;
proxy_read_timeout 30;
proxy_pass http://localhost;
}
}
}
以上是配置文件内容
5. 测试文件的正确性
nginx -t -c /usr/local/nginx/conf/nginx.conf
6. 在重新启动
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
Nginx+Tomcat+Redis实现集群搭建的更多相关文章
- nginx+tomcat+redis的集群+session共享
nginx+tomcat+redis的集群+session共享 环境准备 1.tomcat版本:tomcat7 tomcat下载及安装,目前很多好的资源和步骤,此处省略. 2.jdk版本:jdk1.7 ...
- 同主机下Docker+nginx+tomcat负载均衡集群搭建
想用Docker模拟一下nginx+tomcat集群部署,今天折腾了一天,遇坑无数,终于在午夜即将到来之际将整个流程走通,借本文希望给同样遇到类似问题的小伙伴们留点线索. 主机环境是CentOS 7, ...
- Nginx+Tomcat+Memcached 实现集群部署时Session共享
Nginx+Tomcat+Memcached 实现集群部署时Session共享 一.简介 我们系统经常要保存用户登录信息,有Cookie和Session机制,Cookie客户端保存用户信息,Sessi ...
- Redis本地集群搭建(5版本以上)
Redis本地集群搭建(5版本以上) 2019年11月3日10:05:48 步骤 1.下载安装Redis的安装包 2.复制5份,一共6份Redis的解压安装版,修改每个Redis节点的端口并开启节点 ...
- redis的集群搭建(很详细很详细)
说在前面的话 之前有一节说了redis单机版的搭建和使用jedis管理redis单机版和集群版, 本节主要讲一下redis的集群搭建. 跳转到jedis管理redis的使用 认识redis集群 首先我 ...
- linux环境下redis安装(redis伪集群搭建)
redis在linux环境下搭建 1.创建目录 [root@192 local]# mkdir /usr/local/redis 2.下载redis,并解压 [root@192 local]# wge ...
- Redis Cluster集群搭建与配置
Redis Cluster是一种服务器sharding分片技术,关于Redis的集群方案应该怎么做,请参考我的另一篇博客http://www.cnblogs.com/xckk/p/6134655.ht ...
- Redis Cluster集群搭建与应用
1.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper,但从redis 3.0之后版本支持redis-cluster集群,redis-cluster采用无中心结 ...
- Redis笔记-集群搭建
Redis单机版搭建上一篇已经基本介绍了,下面讨论Redis集群搭建方案和示例. 1.关于Redis常用的集群方案(三种): a.一主多从,如一个Master.两个Slave b.薪火相传,即集群中的 ...
随机推荐
- 报错:PermissionError: [WinError 5] Access is denied: 'C:\\Program Files\\Anaconda3\\Lib\\site-packages\\pywebhdfs'
Outline 在本(Windows系统)地往 “PAI”(hdfs)上上传数据时,需要安装pywebhdfs包,然后就报错了: 报错信息: PermissionError: [WinError 5] ...
- 基于Requests和BeautifulSoup实现“自动登录”
基于Requests和BeautifulSoup实现“自动登录”实例 自动登录抽屉新热榜 #!/usr/bin/env python # -*- coding:utf-8 -*- import req ...
- MongoDB-3: 查询(一)
一.简介 MongoDB提供了db.collection.find() 方法可以实现根据条件查询和指定使用投影运算符返回的字段省略此参数返回匹配文档中的所有字段. 二.db.collection.fi ...
- 添加git忽略文件
把之前的文件添加作为忽略文件 先把本地缓存删除(改变成未track状态),然后再提交git rm -r --cached .git add .git commit -m 'commit log inf ...
- Web Service简单demo
最近开发因需求要求需要提供Web Service接口供外部调用,由于之前没有研究过该技术,故查阅资料研究了一番,所以写下来记录一下,方便后续使用. 这个demo采用CXF框架进行开发,后续所提到的We ...
- ajax请求真实服务器数据示例
// http://study.163.com/webDev/couresByCategory.htm // http://study.163.com/webDev/couresByCategory. ...
- JSP使用网站访问人数统计功能,方法与技巧
实现网站访问人数统计功能的步骤: 创建静态登录页面,并指定表单提交由登录处理页面进行处理. 创建登录处理页面获得登录信息,查询数据库,判断该用户是否注册,如果该用户已注册,把已登录用户的信息保存在一个 ...
- 用Maven构建Mahout项目实现协同过滤ItemCF--集群版
本文来自于:http://blog.fens.me/hadoop-mahout-mapreduce-itemcf/ 前言 Mahout是Hadoop家族一员,从血缘就继承了Hadoop程序的特点,支持 ...
- LINQ 获取当前数组中出现次数最多的元素
LINQ 获取当前数组中出现次数最多的元素 1 List<string> a = new List<string>(); a.Add( ...
- CNN学习笔记:线性回归
CNN学习笔记:Logistic回归 线性回归 二分类问题 Logistic回归是一个用于二分分类的算法,比如我们有一张图片,判断其是否为一张猫图,为猫输出1,否则输出0. 基本术语 进行机器学习,首 ...