• 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"
      
  • 相关阅读:
    设计模式之工厂模式-抽象工厂(02)
    1036 跟奥巴马一起编程 (15 分)
    1034 有理数四则运算 (20 分)
    1033 旧键盘打字 (20 分)
    1031 查验身份证 (15 分)
    大学排名定向爬虫
    1030 完美数列 (25 分)二分
    1029 旧键盘 (20 分)
    1028 人口普查 (20 分)
    1026 程序运行时间 (15 分)四舍五入
  • 原文地址:https://www.cnblogs.com/223zhp/p/11663485.html
Copyright © 2020-2023  润新知