• php语言搭建nginx反向代理,负载均衡常遇到的问题


    1、当配置好nginx配置,搭建好反向代理后,出现点击网站链接找不到路径404页面的情况

    把标出的这行给注释上就行了,因为这行会重定向以.php结尾的文件,所以不会走下面的location反向代理

    2、修改nginx配置,搭建负载均衡

    其实很简单,只需配置这两项就可以了,注意upstream是和server同级的,不是在server内配置的

     3、还有一步重要的,实现session共享,我是以redis实现session共享的

    首先在服务器里分别搭建redis服务器,原理是让每台网站服务器都redis远程链接让session存储在固定的一台redis服务器,来实现共享

    修改redis配置

    3.1、bind 127.0.0.1是只允许本机访问的,不允许redis远程访问,修改成0.0.0.0就可以访问了

    redis3.2版本后新增protected-mode配置,默认是yes,即开启。设置外部网络连接redis服务,设置方式如下:

       1、关闭protected-mode模式,此时外部网络可以直接访问

       2、开启protected-mode保护模式,需配置bind ip或者设置访问密码

    设置daemonize yes ,让redis在后台自启,不用每次手动启动

    设置密码

    以上是一些准备工作。

    4、修改一下我们服务器session存储方式,可以在php.ini里改,也可以用ini_set在页面里临时改。在这建议用ini_set修改,不影响其他的网站

    ini_set("session.save_handler", "redis");
        // ini_set("session.bind", '0.0.0.0');
    ini_set("session.save_path", "tcp://192.168.0.127:6379");
        // ini_set('default_socket_timeout', -1);
        session_start();//存入session
        $_SESSION['hu'] = '123';//连接redis
        $redis = new redis();
        $redis->connect('192.168.0.127', 6379);
        // $redis->auth('qw12!@');
        //检查session_idecho 
        echo 'session_id:' . session_id() . '<br/>';
        //redis存入的session(redis用session_id作为key,以string的形式存储)
        echo 'redis_session:' . $redis->get('PHPREDIS_SESSION:' . session_id()) . '<br/>';
    
        echo $_SESSION['name'];
        //php获取session值echo 'php_session:' . json_encode($_SESSION['class']); 

    注意session_start();不要放在ini_set的前面,不然会报错

    PHP Warning:  ini_set(): A session is active. You cannot change the session module's ini settings at this time in path ofile.php on line 79
    如果要在脚本中使用ini_set()更改PHP的session配置参数,需要在调用session_start()开会会话以前完成ini参数的修改工作,会话已经启动的时候再去修改SESSION运行时配置参数,将会触发一个警告级别的错误,并且对配置参数的修改也不会生效。
    PHP Warning并不会影响后续代码,可以在ini_set()前面添加一个 @ 符号来屏蔽错误信息。

    还有$_SESSION也需要在ini_set后边才能调用

  • 相关阅读:
    kubernetes 中遇见的一些坑(持续更新)
    Docker网络解决方案-Flannel部署记录
    理解Docker :Docker 网络
    全面剖析Redis Cluster原理和应用
    python发送钉钉机器人脚本
    centos 7 部署LDAP服务
    zabbix 同步ldap帐号脚本
    zabbix TCP 连接数监控
    WebDriver基本操作入门及UI自动化练手页面
    Jmeter使用入门
  • 原文地址:https://www.cnblogs.com/hualingyun/p/11243283.html
Copyright © 2020-2023  润新知