NGINX Session

Session:存储在服务器端,保存用户名、登陆状态等信息。
Cookies:由服务器下发给客户端,保存在客户端的一个文件里。

	1,在web1与web2主机部署lnmp环境:
	yum -y install  mariadb  mariadb-server  mariadb-devel
	yum -y install  php  php-mysql  php-fpm
	[root@web1 ~]# systemctl start php-fpm
	[root@web1 ~]# systemctl start mariadb
	ss -ntulp | grep 3306
	ss -ntulp | grep 9000
	[root@proxy ~]# scp lnmp_soft.tar.gz 192.168.2.100:  //在proxy主机拷贝文件到web1
	[root@web1 ~]# tar -xf lnmp_soft.tar.gz   //回web1释放文件
	[root@web1 ~]# cd lnmp_soft/
	[root@web1 lnmp_soft]# tar -xf nginx-1.17.6.tar.gz   //之后进行nginx部署工作
	[root@web1 lnmp_soft]# cd nginx-1.17.6/
	yum -y install  gcc  pcre-devel  openssl-devel   //安装依赖包
	./configure
	make
	make install 
	
	2,修改nginx配置文件65~71行,实现动静分离,即可以解析php后缀名的文件
	        location ~ \.php$ {
	            root           html;
	            fastcgi_pass   127.0.0.1:9000;
	            fastcgi_index  index.php;
	        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
	            include        fastcgi.conf;
	        }
	
	3,在proxy主机配置集群,注意该主机不能有动静分离的配置
	upstream web {
	        server 192.168.2.100:80;
	        server 192.168.2.200:80;
	}
	
	location / {
	            proxy_pass http://web;
	            root   html;
	}
	http://192.168.2.5/index.php  //之后测试效果,不断刷新页面,会看到web1与web2的登录界面(需要提前在web1与web2的index.php与home.php页面进行标记)
	然后将web1与web2的/var/lib/php/session目录中的所有session文件删除,然后再删除浏览器的历史记录(Cookies),再次登录,发现必须登录两次才能成功。

考虑到企业级的访问量比较大,读取session的速度要跟得上。硬件的读取速度一般为 内存>缓存>磁盘,所以我们使用mem擦车高速缓存。

上述实验由于web1与web2都是在各自的/var/lib/php/session目录中存储session,所以造成客户需要重复登录,为了统一session存储的位置(该存储方式通常被称为session共享),需要安装专门的数据库工具(在另外一台机器上安装数据库,可以不是在proxy和web上)

	1,安装memcache数据库
	yum -y install memcached   //安装数据库工具
	systemctl start memcached   //启动服务
	yum -y install telnet   //安装远程登录工具,为了测试memcache
	
	2,连接测试
	telnet 127.0.0.1 11211     //使用远程工具连接到本机的11211端口,该端口就是memcached服务
	set abc 0 100 3   //测试创建或者覆盖abc变量,0是不压缩数据,数据存储时间是100秒,存储3个字符
	get abc   //获取变量abc的值
	add abc 0 100 3   //仅仅创建,如果已经有abc变量则
	无法覆盖
	replace abc 0 100 3   //覆盖现有变量的数据
	delete abc  //删除变量
	flush_all   //清空所有数据
	quit  //退出,通过以上命令可以证明memcached服务一切正常
	
	3,在web1与web2主机修改session存储的位置,实现session共享
	yum -y install php-pecl-memcache   //安装php与memcached服务关联的软件包
	vim /etc/php-fpm.d/www.conf   //修改配置
	php_value[session.save_handler] = memcache    //这里改成memcache
	php_value[session.save_path] = tcp://192.168.2.5:11211   //session存储位置
	systemctl  restart  php-fpm   //重启fpm服务,让上述配置生效
	所有服务器关闭selinux   
	
	最后清空浏览器的历史记录,再访问http://192.168.2.5/index.php仅仅登录一次即可成功

在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值