2013-04-13 3 views
4

나는 Go에 기존 웹 사이트를 대체 할 웹 서버를 작성 중입니다. 나는 여전히 오래된 PHP 스크립트가 필요하다. 지금 나는 lighttpd + fastcgi를 가지고있다. 따라서 FastCGI로 PHP를 호출하는 웹 서버를 원합니다.PHP in Go. FastCGI?

처리하는 가장 좋은 방법은 무엇입니까? Go FastCGI API가 필요합니다.

http://golang.org/pkg/net/http/fcgi/ - 서버 측이 아닌 클라이언트 만 지원하는 것처럼 보입니다.

+2

질문과 현재 답변이 모두 흥미롭고 유익한 것으로 밝혀졌습니다. 그 대답은 "특정 전문 지식"에 의해 뒷받침됩니다. 나는 "토론, 논쟁, 여론 조사, 또는 확장 토론"의 가능성을 보지 못합니다. –

답변

3

fastcgi 프로세스에 직접 연결하려면 직접 만들어야한다고 생각합니다. 어쨌든 여전히 프로세스 관리자/spawner를 실행해야하므로 nginx도 실행하는 큰 도약이 아니며 PHP 스크립트에 대한 Go 프로세스 프록시가 있어야합니다.

또한 합리적으로 돌아서 최종 사용자가 포트 80에서 nginx에 연결하고 적절한 경우 Go 프로세스 또는 fastcgi에 nginx 프록시 요청을 할 수 있습니다. 한 가지 이점은 Go 프로세스를 루트가 아닌 다른 사용자로 쉽게 실행할 수 있다는 점입니다.

+0

나는 루트 권한으로 실행하지 않습니다. 대신 iptables를 사용합니다. 긴 폴링을 사용하고 1000 또는 10000 이상의 동시 연결을 지원하는 시스템을 기대합니다. nginx를 앞에두면 연결 시간이 2 배 늘어납니다. 나는 그것이 비쌀 것이라고 생각한다. 이동 프로세스가 nginx (내 경우에는 lighttpd)에 연결하면 PHP 스크립트를 수정해야합니다. 그렇지 않으면 외부 IP를 127.0.0.1로 탐지합니다. – Max

+1

Go 프로세스가 PHP를 실행하려면 nginx와 대화하십시오. 이동 프로세스는 X-Forwarded-For 헤더를 추가 할 수 있으며 nginx는이를 사용하여 IP 주소를 설정할 수 있습니다. fcgi "클라이언트"를 구현할 수도 있습니다. 너무 어렵지는 않지만 더 많은 작업이 끝나고 버그가 없어집니다. –