热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

实战项目memcached+tomcat+session+nginx在工作中的应用和配置

环境介绍:公司根据实际需要搭建一个购物网站,当用户购物时可以将不同商品,放到同一个购物车中进行同时付款。环境的搭建:外网用户IP地址:1.1.1.1主机名:fanxiaohui用户

环境介绍:公司根据实际需要搭建一个购物网站,当用户购物时可以 将不同商品,放到同一个购物车中进行同时付款。

环境的搭建:

 外网用户  IP地址:1.1.1.1  主机名:fanxiaohui  用户访问网站http://www.taobao.com  

使用nginx实现负载均衡,由于网页是用JAVA开发的所以选用tomcat搭建网站服务,由于用户在购物时http是一个无状态的协议,不同的商品都是一个新的连接,默认不会把几个商品放到同一个购物车中,无法进行统一结账,为了能使服务器能够认识是同一个客户端发起的请求,公司有多台服务器,为了使所有服务器都认识同一客户端,所以用memcached+session做缓存服务器,同上为了memcached出现故障,所以使用memcached_bakup做备份,可以对访问的网页进行session_id进行标记,以保证用户在不同服务器或者在同一台服务器上都可以进行付款。

内部网站的构建:

nginx服务器IP地址:192.168.1.254  IP地址:1.1.1.254  主机名:localhost

tomcat1服务器IP:192.168.1.1 主机名:fanlj1

tomcat2服务器IP:192.168.1.2 主机名:fanlj2

memcached服务器IP:192.168.1.10 主机名localhost

memcached_backup服务器IP:192.168.1.20 主机名localhost


实验目的:memcached+tomcat+session+nginx在实际中的应用和配置。

实验(一)

搭建2台tomcat服务器

软件包:

memcached+session-package.zip

apache-tomcat-6.0.32.tar.gz  tomcat主包

jdk-6u27-linux-i586.bin    tomcat环境包

1。安装环境包,安装时出现一下错误显示安装./install.sfx.4606时没有 /lib/ld-linux.so2文件。

技术分享

解决的方案是首先查看是否有这个文件或者目录

技术分享

查看后 确实没有这个文件和目录,这个文件是有glibc软件提供的,查看glibc的包是否已安装,但是系统还是找不到这个文件,而系统的软件安装包中除了有一下的软件包外还有i686的软件包

技术分享

查看系统镜像中的glibc软件包,安装i686glibc软件包。

技术分享

安装 完毕后在执行jdk-6u27-linux-i586.bin 

技术分享

安装完成后会生成一个文件夹jdk1.6.0_27,把文件夹放到/usr/local/jdk.

技术分享

技术分享

查看jdk的版本信息

技术分享

定义系统环境变量,来调用安装目录下的内容,每打开一个终端都 可以调用目录下的内容。export定义关键字,JRE_HOME指定jdk的安装目录,JAVA_BIN指定jdk可执行命令存放的位置,PATH指定 系统环境变量,CLASSPATH类文件存放 的路径和名字,dt.jar和tools.jar是用JAVA写好的命令,是tomcat运行的要调用的程序,最后重新 定义全局变量。source为重新加载系统环境变量的文件。

技术分享

技术分享

2.安装tomcat主软件包,由于该软件包是免安装的,所以对解压/usr/local/目录下,使系统在启动时就可以加载。

技术分享

技术分享

webapps/ROOT/      网页目录
logs                          日志目录
conf                          配置文件存放目录
bin                            可以执行命令

bin/shutdown.sh      停止服务
bin/startup.sh          启动服务

3.启动tomcat服务

技术分享

4.在客户端进行测试,本实验在tomcat本机进行测试,在浏览器中输入http://localhost:8080  出现一下界面

技术分享点击Tomcat Manager可以对进行 管理,点击后要求输入用户名和密码才能进入。由于没有设置用户名和密码所以点击取消,会出现一下界面,根据提示进行操作,修改配置文件.

技术分享

技术分享 技术分享

配置文件修改后重新启动服务

技术分享

启动完成后重新刷新页面

技术分享

技术分享

建立测试页进行测试

技术分享

在浏览网页上进行测试,192.168.1.1为网页内容,上面的数字为seesion_id。

技术分享

tomcat2的搭建同上

检查测试页面内容如下:

技术分享

技术分享

实验(二)

搭建nginx服务器

实验目的:nginx用来实现tomcat的负载均衡

配置nginx反向代理,把用户的连接请求平均的分发给2台tomcat服务器

1.查看编译环境是否安装。

技术分享

技术分享

2.安装软件包,--with-http_ssl_module指定用户可以用https访问的模块,--with-http_stub_status_module指定通过web页面的方式查看nginx被访问的信息情况的模块

技术分享

技术分享

通过以上配置安装时出现以下错误http rewrite(地址重写模块需要pcre库,要求安装PCRE库),rewrite  地址重写   修改客户端访问自己的url 路径,使用perl风格正则表达式去匹配用户访问自己URL源路径 (PCRE library)。

技术分享

查看系统安装的pcre包有那些,软件包中有那些,如果没有全部安装用yum安装,pcre-devel软件包为pcre软件提供库文件。

技术分享

再次配置时又出现错误,错误如下

技术分享

安装openssl库文件

技术分享

安装make&make install

技术分享

启动nginx服务

技术分享

去除nginx主配置文件的空行和以#开头的行

技术分享

修改主配置文件,定义一个工作组,把用户的连接请求平均的分发给2台tomcat服务器

技术分享

技术分享

技术分享

测试主配置文件是否有错

技术分享

重启nginx服务

技术分享

在客户端进行测试,查看是否可以访问tomcat1和tomcat2的网页信息。

技术分享

实验(三)

搭建memcached服务器

实验目的:当用户访问tomcat服务器时,tomcat首先查看memcached服务器上有用户的session_id,如果有访问过,memcached服务器上就有用户的session_id.

使用memceached源码包:memceached-package.zip

技术分享

1.在192.168.1.10上安装memcached服务,检查编译环境是否安装

技术分享

技术分享

2.安装环境包libevent-2.0.15-stable.tar.gz,解压软件包。

技术分享

技术分享

技术分享

3.安装主包

技术分享

技术分享

4.查看memcached的帮助信息出现一下错误,没有加载libevent文件

技术分享

解决上述错误的方法写一个库文件所在位置配置文件放到系统的配置文件下/etc/ld.so.conf.d/

技术分享

技术分享

技术分享

5.启动memcached服务

技术分享

查看是否已启动

技术分享

在服务器上192.168.1.20上搭建memcached2的服务同上

查看memcached2的服务

技术分享

实验(四)

实验目的:在2台tomcat 服务器上安装连接memcached服务器的连接工具msm

1.复制连接工具的连接程序

技术分享

将连接程序放到/usr/local/apache-tomcat/lib/

技术分享

2.修改tomcat的配置文件告诉有几台memcached服务器,那台是访问的,那台是备份的,contest.xml为连接的配置文件,className定义连接时调用的类(就是刚才拷贝的东西),memcachedNodes定义memcached的节点(定义memcached服务器的IP和端口),failoverNodes定义的备用的那台,requestUrilgnorePattern定义后面的不往缓存里放,transcoderFactoryClass定义连接时调用的类名。

技术分享

技术分享

3.重新启动服务

技术分享

4.客户端测试

技术分享

技术分享

测试备用memcached服务器是否生效

停止192.168.1.10上的memcached服务

技术分享

测试

技术分享技术分享

总结:当用户访问tomcat网站web页面时出现的session_id不变而且页面在变,说明是用一个用户在访问。

本文出自 “脚踏实地向前行” 博客,请务必保留此出处http://343614597.blog.51cto.com/7056394/1694304

实战项目memcached+tomcat+session+nginx在工作中的应用和配置


推荐阅读
  • nginx+多个tomcat
    学习nginx的时候遇到的问题:nginx怎么部署两台tomcat?upstream在网上找的资源,我在nginx配置文件(nginx.conf)中添加了两个server。结果只显 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • 构建LNMP架构平台
    LNMP架构的组成:Linux、Nginx、MySQL、PHP关于NginxNginx与apache的作用一样,都是为了搭建网站服务器,由俄罗斯人lgorsysoev开发,其特点是 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了一种解析GRE报文长度的方法,通过分析GRE报文头中的标志位来计算报文长度。具体实现步骤包括获取GRE报文头指针、提取标志位、计算报文长度等。该方法可以帮助用户准确地获取GRE报文的长度信息。 ... [详细]
  • PDF内容编辑的两种小方法,你知道怎么操作吗?
    本文介绍了两种PDF内容编辑的方法:迅捷PDF编辑器和Adobe Acrobat DC。使用迅捷PDF编辑器,用户可以通过选择需要更改的文字内容并设置字体形式、大小和颜色来编辑PDF文件。而使用Adobe Acrobat DC,则可以通过在软件中点击编辑来编辑PDF文件。PDF文件的编辑可以帮助办公人员进行文件内容的修改和定制。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • Redis底层数据结构之压缩列表的介绍及实现原理
    本文介绍了Redis底层数据结构之压缩列表的概念、实现原理以及使用场景。压缩列表是Redis为了节约内存而开发的一种顺序数据结构,由特殊编码的连续内存块组成。文章详细解释了压缩列表的构成和各个属性的含义,以及如何通过指针来计算表尾节点的地址。压缩列表适用于列表键和哈希键中只包含少量小整数值和短字符串的情况。通过使用压缩列表,可以有效减少内存占用,提升Redis的性能。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
author-avatar
johnylulu2502904467
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有