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.薪火相传,即集群中的 ...
随机推荐
- python将图片转base64,前端显示
https://blog.csdn.net/u013055678/article/details/71406746 <img src='xxxxxxx'> 跟这样的效果是一样的吧? ...
- rest_framework之url控制器详解
一 自定义路由(原始方式) from django.conf.urls import url from app01 import views urlpatterns = [ url(r'^books/ ...
- CDN 环境下获取用户IP方法
CDN 环境下获取用户IP方法 1 cdn 自定义header头的X-Real-IP,在后端使用$http_x_real_ip获得 proxy_set_header X-Real-IP $remote ...
- appium server日志分析
文章出处http://blog.csdn.net/yan1234abcd/article/details/60765295 每次运行测试,可以从Appium Server控制台看到有特别多的日志输出, ...
- python16_day04【编码、函数、装饰器、包】
一.编码总结 """python2 文件存储默认是ascii方式,启动加#coding:utf8就是文件以utf8方式打开.否则就是以ascii.变量则是str. 例子: ...
- react下将输入的汉字转化为拼音
1.首先需要一个简单的拼音和汉字对应的字典文件: /** * 收录常用汉字6763个,不支持声调,支持多音字,并按照汉字使用频率由低到高排序 */ var pinyin_dict_notone = { ...
- linux centos7 安装zookeeper
linux 系统下 zookeeper 安装教程 1.下载安装包 1)进入安装目录 cd /home/install/ 2)下载 wget http://mirror.bit.edu.cn/apach ...
- 数字图像处理,图像锐化算法的C++实现
http://blog.csdn.net/ebowtang/article/details/38961399 之前一段我们提到的算法都是和平滑有关, 经过平滑算法之后, 图像锐度降低, 降低到一定程度 ...
- GPU:并行计算利器
http://blog.jobbole.com/87849/ 首页 最新文章 IT 职场 前端 后端 移动端 数据库 运维 其他技术 - 导航条 - 首页 最新文章 IT 职场 前端 - Ja ...
- JMS、MQ、ActiveMQ
JMS 的一个标准或者说是一个协议. 通常用于企业级应用的消息传递. 主要有topic 消息(1 对多), queue 消息(1对1). ActiveMQ 是一个JMS 的实现, apache 出的. ...