tt版本1.1.41
by : Alex
查找
/* handle the HTTP GET command */
static void do_http_get(TTSOCK *sock, TASKARG *arg, TTREQ *req, int ver, const char *uri){
里面有:
int vsiz;
char *vbuf = tcadbget(adb, kbuf, ksiz, &vsiz);
if(vbuf){
tcxstrprintf(xstr, "HTTP/1.1 200 OK\r\n");
tcxstrprintf(xstr, "Content-Type: application/octet-stream\r\n");
tcxstrprintf(xstr, "Content-Length: %d\r\n", vsiz);
tcxstrprintf(xstr, "\r\n");
tcxstrcat(xstr, vbuf, vsiz);
tcfree(vbuf);
}else {
arg->counts[TTSEQNUM*req->idx+TTSEQGETMISS]++;
int len = sprintf(line, "Not Found\n");
tcxstrprintf(xstr, "HTTP/1.1 404 Not Found\r\n");
tcxstrprintf(xstr, "Content-Type: text/plain\r\n");
tcxstrprintf(xstr, "Content-Length: %d\r\n", len);
tcxstrprintf(xstr, "\r\n");
tcxstrcat(xstr, line, len);
}
修改为
int vsiz;
char *vbuf = tcadbget(adb, kbuf, ksiz, &vsiz);
if(vbuf){
tcxstrprintf(xstr, "HTTP/1.1 302 OK\r\n");
tcxstrprintf(xstr, "Content-Type: text/html; charaset=utf-8\r\n");
tcxstrprintf(xstr, "Location: %s\r\n", vbuf);
tcxstrprintf(xstr, "\r\n");
tcfree(vbuf);
}else {
//这个地方处理未找到值的情况,类似404,根据需要决定是否修改
arg->counts[TTSEQNUM*req->idx+TTSEQGETMISS]++;
int len = sprintf(line, "Not Found\n");
tcxstrprintf(xstr, "HTTP/1.1 404 Not Found\r\n");
tcxstrprintf(xstr, "Content-Type: text/plain\r\n");
tcxstrprintf(xstr, "Content-Length: %d\r\n", len);
tcxstrprintf(xstr, "\r\n");
tcxstrcat(xstr, line, len);
}
编译后安装
这样访问http://localhost:11211/thekey就会直接跳转到thekey在ttserver hashmap里对应的value这个location
用nginx过滤掉对http访问的put\update\delete等操作
location ~* /count(.*) {
if ($request_method = PUT ) {
return 403;
}
if ($request_method = DELETE ) {
return 403;
}
if ($request_method = POST ) {
return 403;
}
proxy_method GET;
}
或者注意在1051行开始的这段代码(ttserver.c)
if(!strcmp(cmd, "GET")){
do_http_get(sock, arg, req, ver, uri);
} else if(!strcmp(cmd, "HEAD")){
do_http_head(sock, arg, req, ver, uri);
} else if(!strcmp(cmd, "PUT")){
do_http_put(sock, arg, req, ver, uri);
} else if(!strcmp(cmd, "POST")){
do_http_post(sock, arg, req, ver, uri);
} else if(!strcmp(cmd, "DELETE")){
do_http_delete(sock, arg, req, ver, uri);
} else if(!strcmp(cmd, "OPTIONS")){
do_http_options(sock, arg, req, ver, uri);
}
可以把不需要的功能注释掉(这段未经过测试检验)
分享到:
相关推荐
### Nginx+Lua通过URL传参方式实现动态代理 #### 概述 在现代Web应用开发中,灵活地管理后端服务之间的通信是至关重要的。动态代理技术为这一需求提供了解决方案,使得前端可以方便地根据业务逻辑将请求转发至不同...
在构建高性能、高可用性的Web服务时,"Nginx+Tomcat+Redis"的组合是一种常见的架构模式。这个架构充分利用了每个组件的优势,以实现高效的数据处理、动态内容渲染和负载均衡。以下是对这套技术栈的详细解释: 1. **...
Nginx+Uwsgi+Django(python3)+Vue部署,一步步实现。网上找了N多篇文章都没成功,特意记录,以免其他同学踩坑
Nginx++Keepalived+Tomcat负载均衡&动静分离配置 本文主要介绍了Nginx、Keepalived和Tomcat的负载均衡和动静分离配置,旨在帮助读者了解如何搭建高可用、高性能的Web应用系统。 一、环境准备 在开始配置之前,...
CentOS7 自动化搭建Nginx+PHP7+Mysql+Docker+Docker-Compose Shell脚本,Docker version 18.06.1-ce,docker-compose version 1.22.0
Nginx+RTMP推拉流集群方案是一种流行的视频直播技术架构,它通过结合Nginx Web服务器和RTMP(Real Time Messaging Protocol)流媒体传输协议来实现网络视频直播的推送和接收功能。RTMP协议由Adobe公司开发,主要用于...
在IT行业中,构建高效、可扩展的Web服务是至关重要的,而"Nginx+Tomcat"的组合常被用于实现这一目标。本实例将详细阐述如何通过Nginx配置集群负载均衡,以实现动静分离,提升系统性能和稳定性。 首先,Nginx是一款...
详细说明了windows服务器nginx+tomcat+mysql部署及配置(配置阿里云后台安全组,配置域名)很适合新手学习 附件中包含: 1.操作说明文档 2.操作录屏 3.安装所用到的软件安装包 1)Windows Server 2019 数据中心版 ...
这个小例子"nginx+tomcat+redis完成session共享"旨在演示如何通过这三种技术实现跨服务器的用户会话共享,以提升用户体验并简化系统管理。以下是这些技术及其在会话共享中的作用: 1. **Nginx**:Nginx是一款高性能...
本资源包“nginx+lua+redis集群 连接插件和脚本”正是为了解决这三者之间的协同工作,特别是针对原插件没有密码功能的问题进行了改进,使得安全性得到了提升。 首先,Nginx是一款轻量级的Web服务器/反向代理服务器...
Nginx+Keepalived 组网主备集群网络拓扑图,欢迎下载
这个“Windows+Nginx+Tomcat做负载均衡同时实现session共享Demo”提供了一个具体的实现方案。 首先,Nginx是一款高性能的反向代理服务器,它可以通过配置将用户的HTTP请求分发到多个后端服务器,即Tomcat实例,从而...
在构建高性能、高可用性的Web服务时,使用Nginx+keepalived+tomcat的组合可以实现强大的负载均衡和故障转移功能。这个方案的核心思想是利用Nginx作为前端反向代理服务器,通过keepalived来确保服务的高可用性,并将...
最后,提供的压缩包文件`nginx+tomcat+memcached`可能包含了上述所有组件的配置文件、jar包和安装脚本,帮助用户快速搭建和测试这样的系统。在部署时,务必根据实际网络环境和服务器配置进行适当的调整,确保所有...
ffmpeg+nginx+nginx-rtmp-module搭建个人直播平台。 使用说明(ffmpeg+nginx+rtmp-module已经整合,支持HTTP,具体配置查看conf/nginx.conf): 1.解压后,运行nginx_start.bat。(查看监控状态 ...
1、基于vue+python+flask+uwsgi+nginx+mysql的外包项目网站项目源码.zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为...
Nginx+keepalived双机热备(主从模式) Nginx+keepalived双机热备(主从模式)是一种常见的负载均衡技术,用于实现高可用环境和故障转移。该技术通过将Nginx与keepalived结合,实现了前端负载均衡和高可用性。 ...
nginx+keepalived使用文档.nginx+keepalived使用文档.
"Linux+Nginx+PHP+MySQL环境配置指南" 本指南将指导您如何安装和配置 Linux+Nginx+PHP+MySQL 环境,以便于构建一个功能完善的 Web 服务器。 安装 Red Hat Linux 在开始安装 Linux 之前,需要选择语言和键盘布局。...
阿里云k8s 部署vue2+nginx+springboot2.5+nacos2.0.3