go-fastcgi

授权协议 BSD
开发语言 Google Go
所属分类 服务器软件、 FastCGI 服务器
软件类型 开源软件
地区 不详
投 递 者 明越
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

go-fastcgi 是为 Go 语言实现的 fastcgi 应用库,简单易学。

示例代码:

package main

import (
       
"fmt"
       
"fastcgi"
       
"os"
)

type
Application struct {
}

func
(a *Application) Handle(r *fastcgi.Request) bool {
        fmt
.Fprintf(r.Stdout, "Content-type: text/html\r\n\r\n")
        fmt
.Fprintf(r.Stdout, "hello world!\n")
        fmt
.Fprintf(r.Stdout, "stdin: (")
       
for {
                s
, e := r.Stdin.ReadString('\n')
               
if e != nil {
                       
break
               
}
                fmt
.Fprintf(r.Stdout, "%s", s)
       
}
       
return true
}

func main
() {
        a
:= new(Application)
        err
:= fastcgi.RunStandalone(":12345", a)
       
if err != nil {
                fmt
.Fprintf(os.Stderr, "err in main: %s", err.String())
                os
.Exit(1)
       
}
}
  • func main() { reqParams := "name=value" env := make(map[string]string) env["REQUEST_METHOD"] = "GET" env["SCRIPT_FILENAME"] = "/Users/ivan/work/test/fcgi/test.php" env["SERVER_SOFTWARE"] = "go / fcgic

  • Golang中 怎么通过sock实现Nginx和golang程序的fastcgi通讯 type TestCgi struct { } //ServeHTTP xx func (this *MPLoginCgi) ServeHTTP(w http.ResponseWriter, r *http.Request) { ... } func main() { // sock目录 unixPa

  • 来自:Linux文档 现载:www.51dibs.com linux Abstract: 当网站日益走红,联机人数直线上升而心中暗自窃喜之时,突然客服中心涌来大批反应电话:『网站连不上去』、『按下去等好久画面才出来』、『一直出现 Server Too Busy...』...。看来又要把硬件升级了,但是再加更多的内存,更多 CPU、换更贵的机器真的能解决问题吗?有没有比较省钱的方法呢?本文将介绍如何

  • 麻省理工-协议文档 go的转发器实现 Go实现FastCgi Proxy Client 系列(四) Go实现FastCgi Proxy Client 系列(三) Go实现FastCgi Proxy Client 系列(二) Go实现FastCgi Proxy Client 系列(一) cgi CGI CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与

 相关资料
  • Go!

    Go! 是一个 PHP 5.4 库,让 PHP 支持 AOP 面向方面编程方法,无需 PECL 扩展、Runkit、evals 或者 DI 容器支持。可使用 XDebug 轻松调试。 示例代码: // Aspect/MonitorAspect.phpnamespace Aspect;use Go\Aop\Aspect;use Go\Aop\Intercept\FieldAccess;use Go\

  • 命令go vet是一个用于检查Go语言源码中静态错误的简单工具。与大多数Go命令一样,go vet命令可以接受-n标记和-x标记。-n标记用于只打印流程中执行的命令而不真正执行它们。-n标记也用于打印流程中执行的命令,但不会取消这些命令的执行。示例如下: hc@ubt:~$ go vet -n pkgtool /usr/local/go/pkg/tool/linux_386/vet golang/

  • 命令go fix会把指定代码包的所有Go语言源码文件中的旧版本代码修正为新版本的代码。这里所说的版本即Go语言的版本。代码包的所有Go语言源码文件不包括其子代码包(如果有的话)中的文件。修正操作包括把对旧程序调用的代码更换为对新程序调用的代码、把旧的语法更换为新的语法,等等。 这个工具其实非常有用。在编程语言的升级和演进的过程中,难免会对过时的和不够优秀的语法及标准库进行改进。这样的改进对于编程语

  • Pact Go的版本目前支持Pact v2规范,访问网站开始学习。 Go-Kit例子 Pact Go代码库中有一个详细的Go Kit 例子,介绍如何使用Pact去测试Go Kit微服务。 原生Go实现 还有一个Go版本的Pact(兼容pact v1.1),不需要运行一个守护进程。如果你不需要v2+的匹配以及运行守护进程,可以考虑使用或者为Pact Go贡献。

  • Panic表示的意思就是有些意想不到的错误发生了。通常我们用来表示程序正常运行过程中不应该出现的,或者我们没有处理好的错误。 package main import "os" func main() { // 我们使用panic来检查预期不到的错误 panic("a problem") // Panic的通常使用方法就是如果一个函数 // 返回一个我们不知道怎么处理

  • 使用os.Exit可以给定一个状态,然后立刻退出程序运行。 package main import "fmt" import "os" func main() { // 当使用`os.Exit`的时候defer操作不会被运行, // 所以这里的``fmt.Println`将不会被调用 defer fmt.Println("!") // 退出程序并设置退出状态值