-
Nginx如何设置COOKIE?3
现在有一个需求,如http://www.test.com/aaa_1001.exe 现在需要取出1001并写到用户cookie中。先谢过各位大牛了!
过了好几天了,没人有这方面的经验吗?继续等。。。^_^
问题补充:你好,非常感谢你详细的回复,之前没做过NGINX模块的开发,所以有些不懂的地方,你给我的是直接放到.conf文件里的吗?server块中?
自己也在尝试也COOKIE,也找到了些方法,在cofnig 用
add_header "Set-Cookie" "rec_id=$rec_id;domain=.test1.com;path=/;expires=Mon, 29-Jun-2015 06:11:17 GMT";
但现在有个问题,expires我需要设置成48小时后的时间,请教一下我有什么办法获得我想设置的expires时间吗?
aileqiang 写道1 分析uri 请求 , 截取request参数 , 取到cookie
2 分析后写入到 response header
ngx_cookie_pass_set_cookie(ngx_str_t * cookie_key_value,
ngx_str_t * domain,
ngx_http_request_t *r) {
ngx_table_elt_t *set_cookie;
set_cookie = ngx_list_push(&r->headers_out.headers);
if (set_cookie == NULL) {
return set_cookie;
}
set_cookie->hash = 1;
ngx_string_ex(set_cookie->key, "Set-Cookie");
ngx_str_t token = ngx_string(";domain=");
size_t size = token.len + key_value->len + domain->len;
u_char * data = ngx_palloc(r->pool, size);
u_char * startpos = data;
startpos = ngx_cpymem(startpos, key_value->data, key_value->len);
startpos = ngx_cpymem(startpos, token.data, token.len);
memcpy(startpos, domain->data, domain->len);
set_cookie->value.len = size;
set_cookie->value.data = data;
return set_cookie;
}
2011年3月02日 16:35
2个答案 按时间排序 按投票排序
-
1 分析uri 请求 , 截取request参数 , 取到cookie
2 分析后写入到 response header
ngx_cookie_pass_set_cookie(ngx_str_t * cookie_key_value,
ngx_str_t * domain,
ngx_http_request_t *r) {
ngx_table_elt_t *set_cookie;
set_cookie = ngx_list_push(&r->headers_out.headers);
if (set_cookie == NULL) {
return set_cookie;
}
set_cookie->hash = 1;
ngx_string_ex(set_cookie->key, "Set-Cookie");
ngx_str_t token = ngx_string(";domain=");
size_t size = token.len + key_value->len + domain->len;
u_char * data = ngx_palloc(r->pool, size);
u_char * startpos = data;
startpos = ngx_cpymem(startpos, key_value->data, key_value->len);
startpos = ngx_cpymem(startpos, token.data, token.len);
memcpy(startpos, domain->data, domain->len);
set_cookie->value.len = size;
set_cookie->value.data = data;
return set_cookie;
}2011年3月09日 17:15
相关推荐
通过OpenResty,我们可以直接在Nginx中处理Cookie,比如使用`resty.cookie`库来设置Cookie的属性,包括有效期。 例如,要设置Cookie的有效期为24小时,可以使用以下代码: ```lua local cookie = resty_cookie:new...
cookie和session区别? 为什么Nginx不使用多线程?nainx和apache的区别 什么是动态资源、静态资源分离?为什么要做动、静分离? 什么叫CDN服务? Nginx怎么做的动静分离? 限流怎么做的? 漏桶流算法和令牌桶算法知道?Nginx...
其他系统可以共享这个cookie。但是新的四台服务器中并没有申请域名,只有四个ip: 192.168.0.1 单点登录服务器 192.168.0.2 192.168.0.3 192.168.0.4 因为每台服务器有两个项目,都用到单点登录,所以通过修改新的...
### Cookie设置httpOnly和secure属性实现及问题 #### 一、引言 在现代Web开发中,保护用户的隐私和数据安全至关重要。其中一种常见的做法就是通过设置Cookie的`httpOnly`和`secure`属性来增强安全性。这两个属性...
Nginx-sticky模块(基于cookie的负载均衡实现)及追加安装注意事项
`nginx-sticky-module-ng`是一个第三方模块,由Maxim Dounin开发,它增强了Nginx对Cookie处理的能力,支持基于Cookie值进行负载均衡策略的设置。这个模块的主要功能包括: 1. **会话粘滞(Session Stickiness)**:...
Sticky是nginx的一个模块,它是基于cookie的一种nginx的负载均衡解决方案,通过分发和识别cookie,来使同一个客户端的请求落在同一台服务器上,默认标识名为route (a)客户端首次发起访问请求,nginx接收后,发现...
此外,memory buffer 的大小默认设置为两个内存页,对于 64 位系统,默认为 16K。 #### 四、示例分析 从给出的部分内容中,可以看到一个通过 curl 发送 POST 请求的示例: ```shell [root@CentOS1614/usr]# curl ...
例如,假设我们想在请求头中添加一个名为`X-Api-Version`的字段,其值为`v1`,可以在Nginx的配置文件中这样设置: ```nginx location / { # 其他配置... proxy_set_header X-Api-Version v1; } ``` 这段配置会让...
在解析请求行后,Nginx 会解析请求头,以获取更多的请求信息,如 Cookie、User-Agent 等。 Nginx 中 HTTP 请求处理过程是一个复杂的过程,涉及到多个阶段和机制。理解这些机制对于提高网站性能和可靠性至关重要。
3. **会话保持**:通过设置 cookie 或者 IP哈希策略,Nginx 可以保证用户在集群中的会话一致性,避免会话丢失。 **三、Nginx 配置** 1. **基本配置文件**:Nginx 的配置主要在 `nginx.conf` 文件中进行,包括全局...
超实用的cookie设置案例,说明,编辑cookie,删除cookie方法
3. **配置cookie-based负载均衡**: 上述配置中,`proxy_set_header Set-Cookie "route=$cookie_route"`会设置一个名为`route`的cookie。如果这个cookie不存在,Nginx将根据默认的负载均衡策略(例如轮询)选择服务器...
这里,`sticky cookie`指令用于设置基于cookie的会话持久化。`name`参数定义cookie的名称,`expires`定义其有效期,`domain`则指定cookie的作用域。 启动Nginx服务: ```bash sudo /usr/local/nginx/sbin/nginx ``...
nginx sticky是nginx的module,可以实现基于cookie的负载均衡。 下载后,在编译安装nginx时,用--add-module选项,指到sticky所在目录。类似命令如下: ./configure --prefix=/usr/local/nginx-1.6.0 --add-module=...
在 Nginx 配置文件中,我们需要引入 sticky 模块并设置相应的参数。例如: ```nginx http { upstream backend { server backend1.example.com; server backend2.example.com; sticky cookie sess_name expires=...
`,并将session ID设置为cookie值。 2. 使用 Sticky Session(粘滞会话):配置Nginx根据特定cookie或IP地址将请求始终路由到同一后端服务器。 3. 使用第三方库如JSESSIONID同步:在Nginx配置中添加`proxy_set_...