宝塔+fastadmin配置负载均衡


新建空白站点,将站点PHP的版本位置调整为静态模式

然后在站点设置->配置文件中 调整如下配置

# 服务器组
upstream yywkapp {
	server IP1:端口 max_fails=2 fail_timeout=1 weight=100;
	server IP2:端口 max_fails=2 fail_timeout=1 weight=100;
}
server
{
    listen 80;

    # 其他配置

    #禁止在证书验证目录放入敏感文件
    if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {
        return 403;
    }
    
    location / {
    	proxy_pass http://yywkapp/; # 负载均衡访问地址
    	proxy_http_version 1.1;
    	proxy_next_upstream_tries 3;
    	proxy_next_upstream error timeout invalid_header http_503 http_404;
    	proxy_set_header Connection "";
	    proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_connect_timeout 300;
      proxy_read_timeout 300;
      proxy_send_timeout 300;
      proxy_ignore_client_abort on;
    }

   # 下面这两项配置 需要注释掉
    # location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    # {
    #     expires      30d;
    #     error_log /dev/null;
    #     access_log /dev/null;
    # }

    # location ~ .*\.(js|css)?$
    # {
    #     expires      12h;
    #     error_log /dev/null;
    #     access_log /dev/null;
    # }
  

}

 

application目录下config.php文件中 loginip_check 设置为false

'loginip_check'         => false,

 

application目录下config.php文件中 session 的驱动方式设置为redis

 'session'                => [
        'id'             => '',
        // SESSION_ID的提交变量,解决flash上传跨域
        'var_session_id' => '',
        // SESSION 前缀
        'prefix'     => 'think',
        // 驱动方式 支持redis memcache memcached
        'type'           => 'redis',
        // redis主机
        'host'       => Env::get('redis.host', '127.0.0.1'),
        // redis端口
        'port'       => Env::get('redis.port', 6379),
        // 密码
        'password'   => Env::get('redis.password', ''),
        //  使用哪一个 db,默认为 db0
        'select'     => 3,
        // 是否自动开启 SESSION
        'auto_start'     => true,
        // 过期时间
        'expire'         => 86400 ,
        //'cache_limiter'=>''
    ],

 

application目录下config.php文件中 http_agent_ip 设置为  HTTP_X_REAL_IP

因为在ThinkPHP5框架中获取客户端IP是通过REMOTE_ADDR参数来获取的,如果此时我们使用了负载均衡或CDN后会造成客户端IP为负载均衡或CDN服务器的IP地址,此时我们可以咨询我们使用的云服务商或参考云服务商提供的相关文档,获取负载均衡或CDN传递真实IP的参数名,然后修改application/config.php中的http_agent_ip值即可。

 // 获取IP的变量
    'http_agent_ip'          => 'HTTP_X_REAL_IP',

发布时间 : 2025-01-05,阅读量:15 , 分类: PHP
本文链接:https://upwqy.com/details/972.html
数组合并