zoukankan      html  css  js  c++  java
  • nginx的会话共享

    1.nginx负载均衡会话保持

    1.配置Nginx

    [root@web01 conf.d]# cat php.conf
    server {
        listen 80;
        server_name php.drz.com;
        root /code/phpMyAdmin-4.9.0.1-all-languages;
    
        location / {
            index index.php index.html;
        }
    
        location ~ .php$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }
    [root@web01 conf.d]# systemctl restart nginx
    

    2.安装phpmyadmin (web01和web02上都装)

    [root@web01 conf.d]# cd /code
    [root@web01 code]# wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.zip
    [root@web01 code]# unzip phpMyAdmin-4.9.0.1-all-languages.zip
    

    3.配置phpmyadmin连接远程的数据库

    [root@web01 code]# cd phpMyAdmin-4.9.0.1-all-languages/
    [root@web01 phpMyAdmin-4.9.0.1-all-languages]# cp config.sample.inc.php config.inc.php
    [root@web01 phpMyAdmin-4.9.0.1-all-languages]# vim config.inc.php
    /* Server parameters */
    $cfg['Servers'][$i]['host'] = '172.16.1.51';
    

    4.配置授权

    [root@web01 conf.d]# chown -R www.www /var/lib/php/
    

    img

    1569424263699

    [root@web01 phpMyAdmin-4.8.4-all-languages]# ll /var/lib/php/session/
    总用量 4
    -rw-------. 1 www www 2424 8月  21 18:41 sess_e96b27a6a628be47745a10a36e2fcd5a
    

    1569424405751

    5.将web01上配置好的phpMyAdmin以及nginx配置文件推送web02主机上

    [root@web01 code]# scp -rp  phpMyAdmin-4.8.4-all-languages root@172.16.1.8:/code/
    [root@web01 code]# scp /etc/nginx/conf.d/php.conf  root@172.16.1.8:/etc/nginx/conf.d/
    

    6.在web02上重载nginx服务

    [root@web02 code]# systemctl restart nginx
    

    7.授权

    [root@web02 code]# chown -R www.www /var/lib/php/
    

    8.接入负载均衡

    [root@lb01 conf.d]# vim proxy_php.com.conf 
    upstream php {
            server 172.16.1.7:80;
            server 172.16.1.8:80;
    }
    server {
            listen 80;
            server_name php.drz.com;
            location / {
                    proxy_pass http://php;
                    include proxy_params;
            }
    }
    
    [root@lb01 conf.d]# nginx -t
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    [root@lb01 conf.d]# systemctl restart nginx
    

    使用负载均衡的轮询功能之后,会发现,如果将session保存在本地文件的话,永远都登不上去

    使用redis解决会话登录问题

    1.安装redis内存数据库

    [root@db01 ~]# yum install redis -y
    

    2.配置resis监听在172.16.1.0网段上

    [root@db01 ~]# sed  -i '/^bind/c bind 127.0.0.1 172.16.1.51' /etc/redis.conf
    
    1. 启动redis

      [root@db01 ~]# systemctl start redis
      [root@db01 ~]# systemctl enable redis
      

      4.php配置session连接redis

      #1.修改/etc/php.ini文件
      [root@web ~]# vim /etc/php.ini
      session.save_handler = redis
      session.save_path = "tcp://172.16.1.51:6379"
      ;session.save_path = "tcp://172.16.1.51:6379?auth=123" #如果redis存在密码,则使用该方式
      session.auto_start = 0
      
      #2.注释php-fpm.d/www.conf里面的两条内容,否则session内容会一直写入/var/lib/php/session目录中
      ;php_value[session.save_handler] = files
      ;php_value[session.save_path]    = /var/lib/php/session
      

      5.重启php-fpm

      [root@web01 code]# systemctl restart php-fpm
      

      6.将web01上的配置好的文件推到web02

      [root@web01 code]# scp /etc/php.ini root@172.16.1.8:/etc/php.ini  
      [root@web01 code]# scp /etc/php-fpm.d/www.conf root@172.16.1.8:/etc/php-fpm.d/www.conf 
      

      7.web02重启php-fpm

      [root@web02 code]# systemctl restart php-fpm
      

      8.redis 查看数据

      [root@db01 redis]# redis-cli
      127.0.0.1:6379> keys *
      1) "PHPREDIS_SESSION:1365eaf0490be9315496cb7382965954"
      
  • 相关阅读:
    ASP.NET之电子商务系统开发1(数据列表)
    ASP.NET之电子商务系统开发2(购物车功能)
    MFC之列表控件
    自己动手写操作系统(二)一个最小的“操作系统”
    自己动手写操作系统(一)环境准备
    windows常用快捷键
    MFC之下拉框
    链表反转&交换链表结点
    TinyHttp前置知识
    单链表基本操作总结
  • 原文地址:https://www.cnblogs.com/223zhp/p/11663485.html
Copyright © 2011-2022 走看看