标签: moodle

Memcache+PHP 会话调优:memcache 如何使密钥过期?

我对此进行了一些研究,但没有找到明确的答案。

我们有一个使用 PHP+Memcache 会话处理程序的 Web 应用程序。

我有几个问题,都是相互关联的,但最终我的问题是,“为什么 PHP 会话在我们认为应该到期时显然没有到期?” 即最终用户应该在设定的时间后退出应用程序,但不是。

下面是点,请帮我把它们连接起来,并告诉我我错在哪里:

  • 我的理解是 Memcache 根据设置的时间使键过期,以秒为单位(或更大值的 unix 时间戳)。
  • 过期是懒惰的——即什么都没有被提前删除
  • PHP memecache session handler 使用sessions.gc_max_lifetime 来设置memcache key 过期时间。idk,也许不是?
  • Memcache 应该在提供请求的密钥并看到它已过期时不提供它(然后也可能删除它?)。但至少不会为它服务。
  • 对于 PHP 而言,这种不提供服务的行为应该等同于删除的会话和用户被注销。

用户没有被注销。

我怎么能调试呢?Memcache 并不完全透明。

没有工作的示例案例是会话超时设置为两小时的站点。示例用户会在晚上最后一次使用该站点,然后在 8 到 10 小时后返回该站点并仍处于登录状态。

php moodle memcache session

7
推荐指数
1
解决办法
1万
查看次数

需要有关为 Moodle 构建可扩展架构的建议

我正在研究为基于 Moodle 的教育网站设计一个架构,它最初将为数千名用户提供服务,但需要能够发展以支持多个国家/地区的数十万到数百万用户。

我正在考虑使用负载平衡器将请求分发到多个 Web 服务器。网络服务器可以被一些服务静态内容和一些服务动态内容分开。然后就是写入一个mysql master节点,从slave节点读取。

什么样的负载均衡器适合moodle,我应该从其中一家供应商那里获得硬件负载均衡器解决方案,还是自己使用LVS或反向代理等开源解决方案构建一个?

我最初计划使用 apache 服务器来为网页提供服务,然后随着负载的增加,分为用于静态内容的 lighttpd 网络服务器和用于动态内容的 apache 应用程序服务器。如果需要,也将部署 gzip 压缩、squid 缓存、memcache 等内容。

对于 web 服务器硬件,我应该使用 one-u 单插槽服务器还是刀片解决方案?哪一个最终的运行和扩展成本更低?Supermicro 有一个有趣的产品,1u 机箱中的双服务器和 2U 机箱中的 4 个服务器和 infiniband。这里有人试过这些服务器吗?

对于存储,我应该使用 SAN 或 Sun 统一存储 7000 之类的存储服务器就足够了。对于 mysql 集群设置,我应该有两个不同的存储系统,一个用于主节点写入访问,另一个用于从节点读取?还是所有节点都应该有单独的存储?

由于这个网站可能会比较重读操作,那么mysql集群和存储设置应该考虑什么?

对于管理部分,我计划使用 dsh、ganglia、nagios、splunk、kickstart。

对于备份,我计划使用 LTO 磁带自动加载机。该站点将主要用于亚洲地区,因此夜间会有几个小时的低流量。备份 mysql 集群的最佳方法是什么?我可以暂时禁用写入并取出 master 来执行备份吗?

请告知您是否有建立这种可扩展网站的经验,我的大部分经验都是在使用大型 unix 机器或较小的独立 unix/linux 机器方面。所以这种横向扩展的实现对我来说是第一次。

谢谢

罗伯特。

mysql scalability moodle architecture apache-2.2

5
推荐指数
1
解决办法
3181
查看次数

Linux 服务器被黑?

可能重复:
我的服务器被黑了 紧急情况

我正在尝试确定此 linex 网络服务器/openfire 服务器是否已被某种形式的恶意软件或黑客入侵。你能帮我确定这个服务器是否被黑了吗?

下面的日志片段来自运行 apache 的 linux 服务器。前几天安装在服务器上的moodle站点开始渲染apache默认页面。访问日志还显示了一些我不确定的活动。请参阅下面的日志。

85.190.0.3 - - [02/Apr/2012:13:31:01 -0600] "CONNECT 213.92.8.7:31204 HTTP/1.0" 405 303 "-" "-"
85.190.0.3 - - [02/Apr/2012:13:31:01 -0600] "CONNECT 213.92.8.7:31204 HTTP/1.0" 405 303 "-" "-"
99.41.69.92 - - [02/Apr/2012:13:33:35 -0600] "GET /files/externallibs.php HTTP/1.1" 404 306 "-" "curl/7.18.0 (x86_64-pc-linux-gnu) libcurl/7.18.0 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.1"
212.34.151.92 - - [02/Apr/2012:14:01:46 -0600] "GET /phpmyadmin/scripts/setup.php HTTP/1.1" 404 305 "-" "Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.1) Opera 7.01 [en]"
212.34.151.92 - - [02/Apr/2012:14:01:46 …
Run Code Online (Sandbox Code Playgroud)

linux hacking moodle apache-2.2

5
推荐指数
1
解决办法
3133
查看次数

Moodle 仅在 IP 上提供服务 - 不适用于 mod_proxy

我正在尝试在 Ubuntu 机器上设置一个 Moodle 服务器,该机器已经通过 Apache 为 Plone & Trac 提供服务。

在我的 Moodle 配置中,我有 $CFG->wwwroot = ' http://www.server-name.org/moodle '

下面的(复杂但有效的)配置适用于前两个,但是当我访问 www.server-name.com/moodle 时,我得到:

检测到访问错误,此服务器只能通过“ http://xxx.xxx.xxx.xxx:8888/moodle ”地址访问,抱歉

然后它转发到 IP 地址,在那里 Moodle 可以正常工作。

我缺少什么才能使服务器名称方法正常工作?


Apache 配置如下:

LoadModule transform_module /usr/lib/apache2/modules/mod_transform.so
Listen 8080
Listen 8888

Include /etc/phpmyadmin/apache.conf

<VirtualHost xxx.xxx.xxx.xxx:8080>

  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>

  ProxyPreserveHost On

  <Location />
    ProxyPass http://127.0.0.1:8082/
    ProxyPassReverse http://127.0.0.1:8082/
  </Location>

</VirtualHost>

<VirtualHost xxx.xxx.xxx.xxx:80>
  ServerName  www.server-name.org
  ServerAlias server-name.org

  ProxyRequests Off

  FilterDeclare MyStyle RESOURCE
  FilterProvider MyStyle XSLT resp=Content-Type $text/html
  TransformOptions +ApacheFS …
Run Code Online (Sandbox Code Playgroud)

moodle mod-proxy apache-2.2

1
推荐指数
1
解决办法
4596
查看次数