Articles of 会话

loggingDjango网站的在线用户快照(postgresql后端,nginxnetworking服务器)

在我的Django + postgresql网站上,我需要公开显示所有网站在某个时间点(这是一个社交网站)。 我该怎么做呢? 例如,是否有一种方法可以枚举在前10分钟内击中我的nginx web服务器的所有login用户? 像这样的东西可以工作。 我是一个初学者,现在正在寻找一个可行的解决scheme。 目前为了实现这一点,我将会话存储到数据库, 使用外部库来使会话可枚举。 这使我可以查询有多less唯一用户在某个时间点上线。 但是这个scheme造成了很多不必要的数据库stream量。 因此,日志和修剪日志变得无效。 此外pgFouine告诉我会话相关的数据库调用是我的网站目前最大的性能瓶颈。 这里有一个build议的解决scheme,但它使用数据库。

检查会话的存在(Nginx)

我在PHP中有两个会话: $_SESSION["session"]["key"] = md5 ($token . $userAgent . $ip); $_SESSION["session"]["timeout"] = time (); 只是想用nginx检查会话,试过这段代码没有成功: location / { if ($request_filename ~* "index.php") { break; } if ($http_cookie ~* "session") { break; } rewrite ^.+$ https://localhost/index.php last; } 任何线索? 谢谢。

cookies不工作,Apache到Nginx

我已经把我的网站从apache移动到了nginx,但是现在我遇到了这样的问题:当我们的网站尝试login网站时,我的网站不想向用户发送cookie(或者开始一个会话)。 这是我的login脚本: <?php session_start(); include("includes/config.php"); $naam = mysql_real_escape_string($_POST["naam"]); $wachtwoord = md5(mysql_real_escape_string($_POST["wachtwoord"])); if (strlen($naam) > 0) { if (strlen($wachtwoord) > 0) { $uQuery = mysql_query("SELECT * FROM users WHERE username = '".$naam."' AND password = '".$wachtwoord."' LIMIT 1"); if (mysql_num_rows($uQuery)) { while($lid = mysql_fetch_array($uQuery)) { $id = $lid["id"]; } $_SESSION["lid"] = $id; header("Location: me.php"); } else […]

在防火墙后面如何处理与Socket.io 1.0的粘连会话?

我正在尝试使用Nginx,Node.js和Socket.io 1.0在Rackspace上使用群集设置自己的POC。 我假设我需要使用集群,因为如果需要,我希望这可以跨多个服务器进行扩展。 我希望每个节点都有自己的实例,而且现在我看不到每个实例都需要为了任何原因彼此交谈。 现在再说一遍,我相信我需要使用集群,因为我可能有很多客户端连接到这个服务器,我希望它能够相应地增长和缩小。 我的最终目标是构build一个类似于此处显示的POC: https : //cloud.google.com/developers/articles/real-time-gaming-with-node-js-websocket-on-gcp 我刚刚得到了我认为是build立的新的Socket.io 1.0的有效设置,但是当从我的路由器后面的不同设备连接时,它们在我的日志logging中都显示相同的PID,并且我认为这是由于所需的粘性 – 通过Socket.io进行访问。 我不确定这是否与我们曾经用集群获得的工作stream程相同,但是我仍然试图让我的脑袋缠住这一切。 首先,我想知道是否需要使用集群和粘滞会话,因为只有一个PID是针对同一个外部IP发布的,那么是否有将每台计算机视为自己的实例呢? 我不想发回一个更新IP后面所有人的回复。 我的第二个问题是这个,这可能是一个愚蠢的问题,但我问无论如何:)在阅读有关如何获得粘滞会话工作,我不断看到人们说“使用粘滞会话,如通过IP地址”。 “喜欢”这个词是什么让我。 我似乎已经发现人们提到使用IP和cookie的粘性会话。 你可以做任何其他事情,如用户名,签发令牌或任何东西? 我担心的是,如果有人在移动设备上玩这个游戏,并且他们换了塔,那么塔会发出一个新的IP,这样就会发出一个新的PID,实质上就是玩家的游戏丢失了。 我理解这个权利吗? 请原谅我,因为我是Node.js的新手,但认为这将是学习node.js和云中的群集的一种很酷的方式。 任何人都可以提供的信息或方向将是非常有帮助的。 许多tuts似乎都向大家播放活动,但我正在寻找一个可扩展的解决scheme,其中每个连接可以发送事件个别时间。 当服务器与它们通信时,我还需要解决同一个防火墙后面的许多人被当作单独的连接。 再次,如果有任何阅读或教程,你可以帮我使用socket.io 1.0和我想做的,请回复。 谢谢!

Symfony 3 TokenAuthenticator结束会话

我正在用Symfony3,Nginx,PHP7构build一个Web应用程序。 对于授权,我创build了一个扩展AbstractGuardAuthenticator的TokenAuthenticator类。 我可以使用令牌进行身份validation并手动注销。 如果我不手动注销会话似乎永远持续下去。 我希望应用程序在浏览器closures时使任何会话无效。 所有用户都应该重新进行身份validation,如果这是一个新的浏览器会话。 会话持续存在,即使当我重新启动nginx,php fpm并从cmd行中清除caching时,我也不会被要求重新进行身份validation。 我的TokenAuthenticator有这个方法 : public function supportsRememberMe() { return false; } config.yml: session: handler_id: session.handler.native_file save_path: "/var/lib/php/sessions/%kernel.environment%" cookie_lifetime: 0 security.yml: main: guard: authenticators: – app.token_authenticator logout: path: logout target: / invalidate_session: true anonymous: false php.ini中: session.cookie_httponly On On session.cookie_lifetime 0 0 session.cookie_path / / 浏览器closures时,如何删除/销毁会话/ cookie(PHPSESSID)? 必须有一个简单的伎俩来做到这一点。 编辑: 在这个答案有一个很好的解释,为什么在开发服务器上的会话大多永远不会过期https://stackoverflow.com/a/1505596/1249820

通过nginx使用redis作为会话存储,在Nodejs中加载平衡

我尝试通过nginx使用redis作为会话存储来在Nodejs中加载Balance。 我正在使用3台机器 机器A(192.168.14.65) – Nginx,Redis安装 机器B(192.168.14.92) – 安装了nodejs 机器C(192.168.9.9) – 安装了nodejs 我在机器B中设置了一个会话variables,而且我试图通过机器C访问相同的会话variables。 我使用redis作为会话存储,所以我应该访问Machine B中的variables。 机器B的编码是(文件名称为app.js) var express = require('express'); var redis = require("redis"); var session = require('express-session'); var redisStore = require('connect-redis')(session); var bodyParser = require('body-parser'); var client = redis.createClient(); var app = express(); app.use(session({ secret: 'ssshhhhh', // create new redis store. store: new redisStore({ host: […]

反向代理与连接池使用自定义会话端点?

我目前正在使用nginx作为代理来提供连接池到后端数据库服务,在连接上使用基本的HTTP身份validation: user www-data; worker_processes 4; pid /var/run/nginx.pid; events { worker_connections 10000; } http { client_max_body_size 0; sendfile on; upstream cloudant_backend { server <hostname>.cloudant.com:443; keepalive 64; } server { listen 5984; server_name localhost; location / { proxy_pass https://cloudant_backend; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Connection ""; proxy_set_header Host <hostname>.cloudant.com; proxy_set_header Authorization "Basic <base64encodedusernamepassword>"; } } } nginx.conf的源代码: […]

NGINX + phpFPM负载均衡器和会话

我有一个问题,我正在使用nginx和PHPFPM 。 我使用2个phpfpm服务器的负载均衡器 。 为了保持两个phpfpm服务器的会话,我使用了memcached。 但是,当我使用memcached我看到该页面正在放缓 。 当我使用文件作为会话保存types Web运行速度更快,但会议不立即同步(我猜文件是function)。 我正在使用NFS共享会话。 任何想法请使用nginx loadbalancer为phpfpm服务器如何同步会话?

Nginx的服务基于用户login不同的文件?

我正在使用nginx的Node.js。 我的节点应用程序build立在快车上,并使用护照进行身份validation,并使用会话。 我的节点应用程序正在响应所有/api url上的JSON请求,nginx正在从公共目录中提供静态文件。 我希望nginx在用户没有login的时候/在用户login时提供app.html 。 这是我目前的nginxconfiguration。 upstream app_upstream { server 127.0.0.1:3000; keepalive 64; } server { listen 0.0.0.0:80; server_name app.com default; access_log /var/log/nginx/app.com.access.log; error_log /var/log/nginx/app.com.error.log debug; root /home/app/app/public; location /api { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarder-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_cache_bypass 1; proxy_no_cache 1; expires off; if_modified_since off; add_header Last-Modified ""; […]

nginx / php / php-fpm | 存储Cookie的问题

问候。 我现在正在重新安装我的整个专用服务器。 我去了 – Ubuntu服务器10.10 -PHP 5.3.3.1 -php-FPM –nginx 现在,几乎所有的事情似乎都行得通,虽然会议中仍然存在一个问题。 不pipe我做什么,会议似乎都没有妥善保存自己(他们在以前的设置上做过)。 基本的应用程序是phpBB板。 当我login时,没关系 – 尽pipe它将附加的SID参数附加到所有的URL。 论坛/的index.php?SID = f506ccd42065322f61cb56fc6df6557a 你可以毫无问题地浏览论坛,但是如果你删除SID参数,你会注销。 我想,也许这些会议不存储在cookie中,但在URL中,但PHPconfiguration似乎很好。 phpMyAdmin发生同样的情况 – 当我删除token参数时,我也会注销。 与此同时,似乎cookies正在创build,就像他们没有使用,或立即被删除。 我越来越沮丧,也许有人有一个想法,如何解决这个问题? 我将发布必要的任何configuration文件。 我想也许这是suhosin的问题(它没有安装在以前的设置),但我不知道。 PHPconfiguration是开箱即用的,我只修改了nginxconfiguration。