mod_fastcgi-2.4.2 릴리즈
http://www.fastcgi.com/dist/mod_fastcgi-2.4.2.tar.gz
최근 FastCGI가 PHP사이트에서도 가끔 화제가 되고 있고 펄에서도 mod_perl에서 FastCGI로 전향하는 사람들이 늘어 나고 있는 추세입니다. 가끔 FastCGI의 패치를 포스트하기도 하고 계속해서 테스트를 하고 있는데 아파치2에서도 어느정도 안정된 버전이 릴리즈되었습니다.
현재 PHP사이트에서 사용하고 있는 FastCGI라이브러리는 조금 변경된 라이브러리를 사용하고 있습니다. 가능하면 같은 통일화된 라이브러리로 하자고 양 사이트의 코어 담당자에게 권고를 하고 있지만 FastCGI 사이트측에서는 PHP사이트에서 수정된 코드에 대해서 코미트(commit)를 하지 않는 것 같습니다. 또 PHP에서는 500번의 억세스가 있으면 메모리 리크를 회피하기 위해서 FastCGI 프로세스를 죽이고 다시 리로드하는데 mod_fastcgi측의 프로세스 메니져에서 이것을 처리해 주지 못하는 버그도 아직 내재하고 있습니다. 다시 말해서 기본 디폴트로 3번 프로세스를 리로드하면 mod_fastcgi측의 프로세스 메니져에서 프로그램에 이상이 있는 것으로 인식해 그 이상 PHP의 FastCGI프로세스를 생성해내지 못합니다. 1501번째 리퀘스트부터 응답을 할수 없는 상태가 됩니다. 이것 역시 양쪽 사이트에 이야기를 했는데도 서로 미루는 것 같습니다. 이것은 사실 PHP사이트에서 받아 들여 수정을 해야한다는 생각도 합니다만 서로 고집들이 세군요....
그외 자바에서의 FastCGI는 제가 많이 매력을 느끼는 부분입니다. 서블렛 자체가 FastCGI와 같은 원리로 작동하기 때문입니다. 아무튼 시간이 되면 이 자바 버전을 왼성해서 릴리즈하고 싶은 생각입니다.
댓글
fastcgi는 어따 쓰는건가요?
fastcgi는 어따 쓰는건가요?
Re: fastcgi는 어따 쓰는건가요?
아파치의 모듈로 해당 언어를 지원할 수 있도록 만들면 아파치 크기가 커지게 되고..
그렇다고.. 그냥 그때 그때 파이프로 stdin,out 을 연결시키고... cgi 를 실행시키게 되면.. 프로세스를 만드는데 드는 오버헤드 등때문에 부하가 커지게 되니..
fastcgi 를 담당하는 프로세스가 미리 떠있고..
그 fastcgi 프로세스와.. 아파치가 통신을 해서.. cgi를 실행시키는 방식으로 알고 있습니다 :)
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
fastcgi는 cgi 후속판이라고나 할까요.cgi는 요청이 들어
fastcgi는 cgi 후속판이라고나 할까요.
cgi는 요청이 들어올 때마다 매번 프로세스가 떠서 초기화하고
실행하고 끝납니다.
fastcgi는 처리완료되도 계속 떠서 다음요청 기다리고 받아처리합니다.
프로세스 생성, 제거시간이 없어지니까 응답속도도 더 빨라지고요.
국내에서는 이거 관련된 책이 전무한거 같더군요. cgi는 간혹가다
구할수는 있지만.
경쟁상대인 scgi는 아예 우리말 자료가 하나도 없습니다. -_-;;
...
fastcgi+postgresql로 가동되는 게시판 하나 만드는중... :D
Written By the Black Knight of Destruction
저도 fast-cgi에 관심이 있는데 제가 주로 다루는 php에 관해서는
저도 fast-cgi에 관심이 있는데 제가 주로 다루는 php에 관해서는 자료가 별로 찾지 못하겠더군요..
apache에 mod_fastcgi를 설치하고, php설치시에 --enable-fast-cgi를 주는걸로는 달라진 점을 못 느끼겠던데..
몇일 전에 kldp wiki에 올라온 http://wiki.kldp.org/wiki.php/PHPWithFastCGI 페이지를 보더라도 그다지 눈에 띄는 성능향상은 없는것 같습니다. 제소견으로는 간단하고 excute time이 짧은 스크립트일수록 차이가 많이 날것 같은데 말이죠..
그리고 예전부터 RisaPapa님이 언급하신 fast-cgi를 이용한 분산환경에 대한 내용은 감도 못잡겠습니다 --;
혹시 경험있는 분들이 계시면 고견을 나눠주시면 감사하겠습니다 :)
[quote="bs0048"]저도 fast-cgi에 관심이 있는데 제가
모니위키 속도 테스트겸, mod_fastcgi,php+eAccelerator에서 속도가 얼마나 나오나 테스트해보았는데, mod_php보다 안정적인 것 같습니다. php의 경우는 속도향상은 많지는 않지만 분명이 있고요:)
조금 더 찾아보니, perl은 fastcgi로 엄청난 성능향상이 있다고 하는데, php의 경우는 그만큼의 향상을 기대할 수는 없는것 같더군요.
또, 시도해보진 않았지만 suEXEC를 같이 활용할수도 있다고 하는데, mod_fastcgi + php를 시도해보시는 분이 많이 늘어나고 know how도 많이 공유되었으면 좋겠습니다.
온갖 참된 삶은 만남이다 --Martin Buber
[quote="wkpark"]모니위키 속도 테스트겸, mod_fastcg
mod_php 를 사용하는 경우라면 그렇게 속도차가 안나는게 정상일 듯 싶은데요 +_+..
perl 의 경우 대부분.. mod_perl 을 사용하는 경우보단 대부분.. 그냥 해당 스크립을 실행시키는 것이기 때문에 fastcgi 모드일 때 fork,exec 에서 생기는 오버헤드가 줄어들기 때문에 훨씬 빨라지는게 아니던가요 :D
mod_php 는 빠르지만 대신 아파치가 커지는 부담이 있겠구요 ;)
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
[quote="정태영"][quote="wkpark"]모니위키 속도 테스트
아.. 제가 언급한 perl은 mod_perl입니다.
perl, python의 경우 mod_perl, mod_python보다 fastcgi를 이용하는것의 성능향상이 더 많다라고 본 것 같습니다.
(엊그제 읽었는데도 출처가 어딘지는 ㅡㅡ;;)
반면 php는 perl이나 python과는 다르게 성능향상을 많이 기대할 수 없다라고 본 듯..
종합해서, 속도면에서는 perl+fastcgi를 따라올것이 없다.. 그런 내용이었습니다.
온갖 참된 삶은 만남이다 --Martin Buber
제가 FastCGI 에 대해 개념이 잡히질 않아서 질문 좀 드리겠습니다.
제가 FastCGI 에 대해 개념이 잡히질 않아서 질문 좀 드리겠습니다.
보아하니 FastCGI 가 PHP,C,Perl,Java 등을 사용가능하다는데..
그럼 FastCGI 는 언어에 독립적인 것 입니까?
그리고 기존 mod_perl 로 운영중인 Perl script 를 mod_fastcgi 환경으로
이주해서 그대로 사용할 수 있는지요?
제가 사용하는 Perl Script 를 짜여진 MovableType 이란 설치형 블로그가 있습니다.
이것을 FastCGI 환경으로 바꾸어서 성능을 향상시키고 싶네요.
----------------------------------------
Nothing left after Nirvana.
Re: mod_fastcgi-2.4.2 릴리즈
이 부분에 대한 설명을 부탁드립니다.
JVM에서 다수의 thread이기는 하지만 하나의 Servlet을 통해서 다수의 Request를 처리하는 것이 FASTCGI에서 하나의 Child Process가 다수의 CGI Request를 처리하는 것과 같은 원리라는 뜻인가요?
그리고, 자바 버전을 완성한다는 뜻은 FCGIInterface().FCGIaccept()와 같은 API를 완성한다는 뜻인가요?
----
I paint objects as I think them, not as I see them.
atie's minipage
[quote="웃는 남자"]제가 FastCGI 에 대해 개념이 잡히질 않
그렇습니다. 언어 독립적입니다.
간단히 말하자면 http request가 들어올 때마다 매번 실행하고
처리하고 죽는 CGI가 아니라 평상시 떠 있다가 http request를
처리하고 또 계속 대기합니다. 보통 첫번째 request시에 실행되죠.
Written By the Black Knight of Destruction
제가 이해하고 있는것은 이렇습니다.apache에서 스크립트 언어를 사
제가 이해하고 있는것은 이렇습니다.
apache에서 스크립트 언어를 사용할때 mod_X 를 사용하는 것과 cgi를 사용하는 방법이 있다. 그 중 전통적인 cgi를 사용하는 방식은 새로운 프로세스를 생성하는 오버헤드가 많다. mod_X 방식은 apache데몬의 크기가 커지는 단점이 있다. 기존의 cgi가 stdin/out을 사용하는데 반해 fastcgi는 소켓을 통한 자체적 프로토콜을 사용해서 통신하므로 새로운 프로세스가 생성될 필요가 없다.
이런 정도입니다. 따라서 mod_php를 사용할때와 php를 fastcgi로 동작시킬때 속도면의 향상이 미미한것은 이해가 됩니다. 모듈로 동작한다는것 자체가 프로세스 생성에 대한 오버헤드가 없는것이니까요.. http://bbs.kldp.org/viewtopic.php?t=31681에 있는 RisaPapa님의 글을 읽어보더라도 아래와 같은 언급을 하셨네요.
다만 해당 글을 좀더 읽어보면 mod_X로 사용할 경우 불펼요한 모듈이 적재되기때문에 메모리 사용량 등에서 불리한데, cgi방식으로 사용할 경우 언어 자체의 수행부분만을 놓고 보면 장점이 많다는 뜻으로 이해됩니다..
사실 제가 가장 궁금한 부분은 "분산"에 관한 부분인데 이건 뭘 어떻게 해야할지 감이 안잡히네요..
그리고 perl등의 예제를 보면 accept등의 fastcgi api를 사용하고, 기존의 스크립트를 while 로 감싸는 등의 몇가지 수정사항이 있는데 php는 이런것들을 어떻게 반영하는것인지 -_- 감을 못잡겠네요...
분산이란게 여러대의 서버에 fastcgi를 올려놓고아파치에서 적절한
분산이란게 여러대의 서버에 fastcgi를 올려놓고
아파치에서 적절한 서버로 요청을 보내서 처리하는것을 말씀하시는것 같군요.
(적절한 서버로 요청을 분산하는것에 대해선 자료가 없으니 생략하더라도..)
사이트 규모가 커지면 분산환경은 필수가 되게 마련이죠... :)
fastCGI 강좌 있는곳 입니다.
아래 사이트에 FastCGI 강좌가 있더군요.
http://www.intertech.co.kr
윈도우 환경에서는 어떻게 하는지 궁금합니다.
울나라에는 너무 자료가 없어요. :cry:
FastCGI의 장점은 그러니까..1. 요청이 올때마다 새로운 프
FastCGI의 장점은 그러니까..
1. 요청이 올때마다 새로운 프로세스를 만들지 않는다
2. 분산환경을 제공한다.
라는 것이군요?
그렇다면, 분산환경이 필요없는 상황에서는
매번 새로운 프로세스를 만들지 않아도 된다는 것이 장점이 되겠군요.
FastCGI를 사용하기위해 기존의 CGI에서는 어떤 것들이 변경이 되어야
하는 것인가요?
별도의 Trade-off 가 없는 것인지 궁금하네요. :?
----------------------------------------------------------=>
Be supercalifragilisticexpialidocious, run for your life!
[quote="ByB"]FastCGI의 장점은 그러니까..1. 요
추가 질문 :)
C로 만들어진 CGI에는 별도의 잇점이 없는 것은 아닌가요?
----------------------------------------------------------=>
Be supercalifragilisticexpialidocious, run for your life!
c로 작성했을때의 장점은, c바이너리가 다른 언어로 작성한 스크립트보다
c로 작성했을때의 장점은, c바이너리가 다른 언어로 작성한 스크립트보다 실행속도가 빠를거라는거죠..
c의 경우 기존의 소스를 약간 수정하긴 해야되구요
c의 경우는 fastcgi.com 에서 예제를 찾으실수가 있을겁니다..
fastcgi suexec 에 대한 자료를 찾지 못하겠습니다.뭔가 아
fastcgi suexec 에 대한 자료를 찾지 못하겠습니다.
뭔가 아파치에 패치를 해야 하는것 같기도 한데,
온전한 링크가 살아있는 정보를 찾지 못했습니다.
아파치2 에서 fastcgi-php 를 suexec 로 구동할 방법을 찾고 싶습니다.
https://xenosi.de/
[url]http://www.t17.ds.pwr.wroc.pl/~misi
http://www.t17.ds.pwr.wroc.pl/~misiek/index.php/ApacheModFastcgiPHP
전에 링크를 한번 달았었는데, 패치 다운로드 링크는 좀 바꼈네요.
마침 백업해 두었던 패치를 가지고 있습니다.
ApacheSuEexecPatch
apache-2.0.48 을 기준으로 되어 있지만 2.0.52 버전에서도 사용가능 했습니다.
[quote="ByB"]C로 만들어진 CGI에는 별도의 잇점이 없는 것은
C로 짜여졌다고 해도 fork/exec 의 오버헤드가 줄어들게 되며... 디비 접속 등의 비용이 큰 작업들을 미리 해놓은 상태로 기다릴 수 있기 때문에 상황에 따라서는 충분히 이득을 얻을 수 있을거라고 생각합니다 :)
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
woonuk 님의 답변으로 패치는 잘 했습니다.그런데 무엇을 잘못
woonuk 님의 답변으로 패치는 잘 했습니다.
그런데 무엇을 잘못 했는지 모르겠습니다.
apache2ctl -t 결과는 Ok 입니다.
.php 파일을 php 에 연결하지 못하고 403 Forbidden 이 나옵니다.
그런데 설정이 제대로 되어 php 를 각 사용자 권한으로 실행 가능하게 되더라도,
.html, .jpg 등 suexec 를 거치지 않는것은 여전히 apache 권한이겠지요?
/home/shj 를 700 으로 운영할만한 방법은 아닌것입니까?
/home/fastcgi-bin/php
https://xenosi.de/
잘모르겠습니다..
fastcgi가 "일반적으로 만들어진" perl-cgi나 c-cgi를 개선할수
있는것은 이해가 갑니다만,,
fastcgi를 java 로 만들어진 cgi 에 적용하는것이 잘이해가 안갑니다.(servlet)
servlet 에서 user의 request를 처리하는 것자체가
servlet의 instance고 이것이 thread 단위로 수행되고
보통 그 thread가 pooling 되거나 하는데..
그리고 이러한 관리 메카니즘 자체가 분산환경을 지원해서
jvm instance를 여러개 만들어서 수행하는 엔진도
있는걸로 압니다.
여기에 fastcgi를 적용함으로써 얻는 이득이 무엇입니까?
1501번째 리퀘스트부터 응답이 없다는걸 어떻게 테스트 하나요?
현재 젠투 리눅스에 httpd-2.0.55, mod_fastcgi-2.4.2, php-4.4.1을 설치해서 다음처럼 간단한 페이지를 30000번 이상 호출해도 이상이 없기에 여쭈어 봅니다.
호출은 cli 용으로 따로 설치한 php의 socket 함수로 호출하고, 결과값에 출력 문자열을 체크해서 카운트 하였습니다.
음. 오래된 글에
음. 오래된 글에 댓글을 달아서 죄송하지만.. 그래도 나중에 fastcgi 검색시에 자료를 쉽게 찾기 위해서 댓글을 달아 놓습니다.
http://zites.net/devel/php-fcgi/
에 fastcgi/suexec 관련 patch 가 좀 있네요. 나중에 참고... :-)
fastcgi 아직 개발 하고 있나요?
예전에 trac 돌리는데 fastcgi 쓰다가 서버가 죽어나가는 바람에 cgi 로 돌아갔는데요.
더 이상 개발도 없고해서 다들 등 돌리는 분위기인듯 합니다.
쓰레드 처음이 2003년이니 벌써 4년이 지나긴 했네요.
댓글 달기