个人博客原文链接

以在Linux上发布项目网上商城为例,主要详细介绍如何在Linux下搭建Nginx+TomCat集群,顺便介绍在window下搭建Nginx+TomCat集群,统一开发环境为32位避免发生不必要的错误。

准备工作

在Linux系统上安装JDK

a.检测是否安装了openjdk
运行java -version

b.若有需要将其卸载

c.查看安装了哪些jdk
rpm -qa | grep java

d.卸载
先卸载 openjdk 1.7(通过rpm命令-----软件包管理器)
rpm -e --nodeps (卸载的包)
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.i686
再卸载 openjdk 1.6
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.i686

e.安装jdk
上传jdk 通过ftp软件(FileZilla)上传(上传到root目录下)
在 /usr/local创建一个 java目录
mkdir java
将上传的jdk复制到 java目录下
cp /root/jdk.xxxxx.gz /usr/local/java
将其解压
tar -xvf jdk.xxx.gz

f.安装依赖(通过yum命令从指定服务器自动下载rpm包并安装------前端软件包管理器)
yum install glibc.i686

g.配置环境变量
编辑 vi /etc/profile
在文件最后添加一下信息
#set java environment
JAVA_HOME=/usr/local/java/jdk1.7.0_72
CLASSPATH=.: J A V A H O M E / l i b . t o o l s . j a r P A T H = JAVA_HOME/lib.tools.jar PATH= JAVAH​OME/lib.tools.jarPATH=JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
保存退出 wq
使更改的配置立即生效 source /etc/profile

h.检测是否安装成功
java -version

在Linux下安装MySQL

a.检测是否安装了mysql
rpm -qa | grep mysql

b.卸载系统自带的mysql
rpm -e --nodeps (卸载的包)
rpm -e --nodeps mysql-libs-5.1.73-8.el6_8.i686

c.上传mysql 通过ftp软件(FileZilla)上传(上传到root目录下)

d.在 /usr/local/ 创建一个mysql目录
mkdir mysql

e.复制mysql到mysql目录下
cp /root/MySQL-5.5.49-1.linux2.6.i386.rpm-bundle.tar /usr/local/mysql

f.解压MySQL-5.5.49-1.linux2.6.i386.rpm-bundle.tar (会有几个rpm文件)
tar -xvf MySQL-5.5.49-1.linux2.6.i386.rpm-bundle.tar

g.安装
安装mysql的服务器端
rpm -ivh MySQL-server-5.5.49-1.linux2.6.i386.rpm --force --nodeps
注意:第一次登录mysql的时候没有不需要密码的 以后都需要
安装mysql的客户端
rpm -ivh MySQL-client-5.5.49-1.linux2.6.i386.rpm --force --nodeps

h.查看mysql的服务状态
service mysql status
启动 mysql
service mysql start
停止mysql
service mysql stop

i.修改mysql的root的密码
登录:mysql -u root -p
修改密码:
use mysql;
update user set password = password('111111') where user = 'root';
flush privileges; (刷新)

j.开启远程访问
grant all privileges on *.* to 'root' @'%' identified by '111111';
flush privileges;

k.开启防火墙端口 3306 (先用exit命令退出mysql)
3306端口放行
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
将该设置添加到防火墙的规则中
/etc/rc.d/init.d/iptables save

l:设置mysql的服务随着系统的启动而启动
加入到系统服务:
chkconfig --add mysql
自动启动:
chkconfig mysql on

在Linux下安装TomCat

a.在/usr/local下 创建tomcat目录
mkdir tomcat

b.复制apache-tomcat-7.0.52.tar.gz到/usr/local/tomcat
cp apache-tomcat-7.0.52.tar.gz /usr/local/tomcat

c.解压tomcat
tar -xvf apache-tomcat-7.0.52.tar.gz

d.进入apache-tomcat-7.0.52/bin启动tomcat
方式1:
sh startup.sh
方式2:
./startup.sh

e.开启端口号8080
8080端口放行
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
将该设置添加到防火墙的规则中
/etc/rc.d/init.d/iptables save

注意:
查看日志文件
tail -f logs/catalina.out
退出 ctrl+c

发布项目

a.数据库和表
备份store28的数据库
在windows下
mysqldump -uroot -p1234 store28 > g:/1.sql
将1.sql上传 root目录
通过远程工具还原数据库
先登录mysql mysql -u lousen -p
创建数据库 create database productstore
进入productstore use productstore;
还原 source /root/1.sql;

b.项目
将项目打包war
war包的特点:
在tomcat/webapps目录下 只要tomcat启动 war会自动解压
将store.war上传到虚拟机的root目录下
将store.war移动到tomcat/webapps下即可
cp store.war /usr/local/tomcat/apache-tomcat-7.0.52/webapps

在Linux下安装Ngnix

a.先将 nginx上传到linux上

b.解压nginx
mkdir /usr/local/nginx
cp ngnxi /usr/local/nginx/
tar -xvf nginx

c.先编译nginx
安装依赖包
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
执行编译
先进入nginx-1.8.0的目录
执行
./configure

d.安装nginx
执行
make
make install

e.启动nginx
cd nginx-1.8.0目录下
配置文件在conf
进入sbin目录
启动nginx
./nginx
退出ngnix (等待程序执行后再关闭)
./nginx -s quit
关闭命令(直接关闭)
./nginx -s stop
动态加载配置文件
./nginx -s reload

f.将端口号80放行(可以更改端口号为8888)
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
将该设置添加到防火墙的规则中
/etc/rc.d/init.d/iptables save

在Linux下搭建集群

1.在/usr/local/目录下创建tomcat1
mkdir tomcat1
2.把tomcat复制到tomcat1解包并修改端口号为8090
cp apache-tomcat-7.0.52.tar.gz /usr/local/tomcat1
tar -xvf tomcat
vim server.xml

3.把测试项目上传到tomcat1的webapps目录下
cp test /usr/local/tomcat1/apache-tomcat-7.0.52/webapps

4.在webapps目录下创建test目录并解压项目到该目录
mkdir test
mv test.war test
jar -xvf test.war

5.复制tomcat1为tomcat2
cp -r tomcat1 tomcat2

6.修改tomcat2的端口号为8100
vim server.xml

7.修改测试项目文件
vim index.jsp

8.修改nginx配置文件
vim nginx.conf
需要在http节点上添加一个
upstream servlet_xujie{
server 127.0.0.1:8090;
server 127.0.0.1:8100;
ip_hash;
}
修改location /下的反向代理
proxy_pass http://servlet_xujie;

9.动态加载配置文件
进入sbin目录
./nginx -s reload

10.启动tomcat1和tomcat2和nginx

在Window下搭建集群

1.新建两个目录tomcat1 tomcat2

2.修改tomcat2的端口,在tomcat1的端口上+10

3.解压nginx
修改nginx的 nginx.conf文件
在locatioin / 下添加了反向代理
proxy_pass http://localhost:8080(代理服务器地址)
这是只是代理一台服务器

4.代理集群
需要在http节点上添加一个
upstream servlet_xujie{
server 127.0.0.1:8080;
server 127.0.0.1:8090;
}
修改location /下的反向代理
proxy_pass http://servlet_xujie;

5.session共享问题
解决方式1:只能在window下好使
web服务器解决(广播机制)
注意:tomcat下性能低
修改两个地方:
1.修改tomcat的server.xml 支持共享
将引擎标签下的

注释去掉
2.修改项目的配置文件web.xml节点中添加一个节点
<distributable/>
解决方式2:
可以将session的id放入redis中
解决方式3:
保证一个ip地址永远的访问一台web服务器,就不存在session共享问题了,在linux
在nginx的配置文件中
upstream中添加 ip_hash;

Nginx入门学习笔记相关推荐

  1. Nginx基础学习笔记(正向/反向代理,Nginx均衡负载和配置)

    目录 1. 正向代理和反向代理 1.1 正向代理 (1)什么是正向代理? (2)正向代理的特点 (3)正向代理的用途 1.2 反向代理 (1)什么是反向代理? (2)反向代理的特点 (3)反向代理的用 ...

  2. dubbo入门学习笔记之入门demo(基于普通maven项目)

    注:本笔记接dubbo入门学习笔记之环境准备继续记录; (四)开发服务提供者和消费者并让他们在启动时分别向注册中心注册和订阅服务 需求:订单服务中初始化订单功能需要调用用户服务的获取用户信息的接口(订 ...

  3. Crypto++入门学习笔记(DES、AES、RSA、SHA-256)

    Crypto++入门学习笔记(DES.AES.RSA.SHA-256) 背景(只是个人感想,技术上不对后面的内容构成知识性障碍,可以skip): 最近,基于某些原因和需要,笔者需要去了解一下Crypt ...

  4. 机器学习入门学习笔记:(4.2)SVM的核函数和软间隔

    前言 之前讲了有关基本的SVM的数学模型(机器学习入门学习笔记:(4.1)SVM算法).这次主要介绍介绍svm的核函数.软间隔等概念,并进行详细的数学推导.这里仅将自己的笔记记录下来,以便以后复习查看 ...

  5. 机器学习入门学习笔记:(3.2)ID3决策树程序实现

    前言 之前的博客中介绍了决策树算法的原理并进行了数学推导(机器学习入门学习笔记:(3.1)决策树算法).决策树的原理相对简单,决策树算法有:ID3,C4.5,CART等算法.接下来将对ID3决策树算法 ...

  6. 机器学习入门学习笔记:(2.3)对数几率回归推导

    理论推导   在以前的博客(机器学习入门学习笔记:(2.1)线性回归理论推导 )中推导了单元线性回归和多元线性回归的模型.   将线性回归模型简写为:y=ωTx+by = \omega^Tx+b:   ...

  7. 机器学习入门学习笔记:(2.2)线性回归python程序实现

      上一篇博客中,推导了线性回归的公式,这次试着编程来实现它.(机器学习入门学习笔记:(2.1)线性回归理论推导 )   我们求解线性回归的思路有两个:一个是直接套用上一篇博客最后推导出来的公式:另一 ...

  8. 汇编入门学习笔记 (十二)—— int指令、port

    疯狂的暑假学习之  汇编入门学习笔记 (十二)--  int指令.port 參考: <汇编语言> 王爽 第13.14章 一.int指令 1. int指令引发的中断 int n指令,相当于引 ...

  9. node入门-学习笔记

    文章目录 node入门-学习笔记 node 启动node服务 重构express-run node入门-学习笔记 node 为什么后端要用node, 因为它是js js运行时环境 主要使用expres ...

最新文章

  1. boost::ratio_multiply相关的测试程序
  2. vuecli打包后的dist目录无法访问_听说很多人都不会打包,教你Python实现前端自动化打包部署!...
  3. socket编程实例_NIO之网络编程源码阅读
  4. DDD 领域驱动设计-三个问题思考实体和值对象(续)
  5. 16.3.22-24(这几天借鉴了别人写的代码的整合,但是是beat的)
  6. 使用秀米编排点击展示H5
  7. HDU 4699(栈)
  8. 单模光纤和多模光纤的对比
  9. matlab rgb三维直方图,MATLAB小技巧之十:利用MATLAB绘制三维彩色柱状图[转载]
  10. FFmpeg创作GIF表情包教程来了!赶紧说声多谢乌蝇哥?
  11. SSH公钥秘钥git
  12. 修改登录页面Login
  13. GitHub 上受欢迎的 Android UI Library整理(part_two)
  14. Xilinx Zynq ZynqMP boot模式
  15. DM8:达梦数据库DEM--dmagent监控服务器代理部署(详细步骤)
  16. 【视频】谁说程序员无趣?这么多只有资深程序员才看懂的段子,会心一笑,深夜释放压力,随着视频哈哈哈哈哈笑出鹅声!
  17. 今天向大家推荐一批大数据书籍,大家可以在业余的时候阅读,加深对大数据的了解
  18. 二叉树家谱关系实验报告
  19. TLS1.3 协议的加密过程
  20. JAVA框架项目实战:系统公告设计及实现

热门文章

  1. 复制网页上不能复制的文章的方法
  2. 国产安路FPGA(一)-TD软件使用及问题记录
  3. matlab滤波器滤除低频直流信号,对低频信号的滤波的方法
  4. linux访问工具图标,linux上的编码转换工具iconv,enca,convmv
  5. PDF和CDF图的区别
  6. 现场安装连接器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  7. #华为模拟器eNSP
  8. PXC 配置笔记-从MySQL直接转成PXC集群
  9. AD快捷键、常见问题汇总
  10. 常年不卷,按时下班,工作能力强,同事求助知无不言,不扯皮,不拉帮结派,这样的职场清流竟然被裁掉了!...