Go! Bbuwoo: IE7 과 mod_url 문제 수정 2번째에 달린 최근 댓글/트랙백 목록https://my.oops.org/뭘 이런걸..2024-03-29T20:46:25+09:00Textcube 1.10.10 : Tempo primo김정균님의 댓글김정균https://my.oops.org/104#comment3742007-06-01T00:50:18+09:00apache 2 용은 1.10 이 아니라 1.12 입니다. 현재 2.0.52 와 2.2.3 에서 정상 작동 하는 것을 확인했습니다.LeCieL님의 댓글LeCieLhttps://my.oops.org/104#comment3772007-06-03T22:16:58+09:00네 제가 써논 문서에도있다시피;; utf8 인코딩에 대한 단점이 있지요 ^^
참고로 redurl 을 위 형식대로 수정하였다가 스레드가 줄사망한것으로 기억합니다.. 커넥션이 엄청나게 많은 서버라 그래서 그런지;;
초반엔 멀쩡하다가 6시간정도 지나면 스레드가 덜렁 하나 남아있는 사태가 몇번 있었죠..
그래서 다른 소스로 변환했습니다.LeCieL님의 댓글LeCieLhttps://my.oops.org/104#comment3792007-06-04T13:05:35+09:00수정하지 않은 modurl의 문제입니다.
worker 에 그냥 기존에 있던거 올리고나서 돌린게 답니다;;
apache php 가 아닙니다. 미디어 전송 전용서버이므로
apache만 달랑 올라가있습니다.
돌고있는 모듈은 몇안되고 redurl이 여기에 있다가 부하 폭주시 워커의 줄사망이 있었습니다.
전송트래픽은 초당 400메가정도 됩니다. 커넥션은 폴링되고 있지만 약 4만개정도 사용하고 있구요
워커모듈에 별도로 돌고있는것은 메모리 캐시 모듈입니다.
지금버전을 테스트하기에는 실제 서버라 힘들듯합니다.김정균님의 댓글김정균https://my.oops.org/104#comment3802007-06-06T21:40:17+09:00kldp.net 버전과 oops.org 버전이 merge 가 되었습니다. 제가 kldp.net 의 mod_url 의 개발자로 등록이 되어 정식 배포처는 http://modurl.kldp.net 을 이용하세요.강분도님의 댓글강분도https://my.oops.org/104#comment3812007-06-25T08:25:41+09:00Mod_url.c 감사 드립니다.LeCieL님의 댓글LeCieLhttps://my.oops.org/104#comment3752007-06-02T14:15:36+09:00수고가 많으시네요 ;;
그런데 redurl (modurl) 말고 일본에서 사용하던 뭐더라;; 저는 그걸 기반으로 작업했답니다.
일단 패치할 시간이 거의 없었고;; ie7 나온지 하루이틀안에 해결봐야해서 ㅎㅎ;;
그런데 성능적인 문제 (1대의 미디어 서버)를 감안한 경우 first hook 에 charset detection 이 들어가는것이
압도적인 차이를 준다고 생각합니다.
(물론 last 로 후킹하여 전처리 다 하고 매 컨버저닝마다 파일이 있는지 체크하는것도 좋습니다
그러나 워커모듈에서는 요러다 에러하나 나면 줄사탕인지라 ;;)
제가 패치한건 일반서버는 아예 이 모듈을 내려버렸고 (급한관계로),
컨텐츠 전송서버만 first hook 으로 강제 변환하도록 설정하였습니다. 아마도 그 일본에서 만든 modurl같은녀석을
여기저기 뜯어고쳤던듯합니다;;김정균님의 댓글김정균https://my.oops.org/104#comment3762007-06-03T14:04:35+09:00redurl(mod_url) 은 요청하신 페이지가 존재하면 작동하지 않습니다. 즉, 해당 페이지가 존재하지 않을 경우에만 작동합니다. 이는 httpd.conf 에서 error log level 을 debug 로 맞추어 놓고선 error log 를 보시면 확인하실 수 있습니다.
hooking 을 전처리로 할 때의 문제는, 무조건 바꾸기 때문에 file system 에 정말 utf8 로 인코딩된 파일이름이 존재하고 있을 경우 찾을 수가 없습니다. 또한, Alias 와 같은 URL 을 처리할 수 없습니다. 저도 전처리로 하려고 했으나 이 부분 때문에 결국에는 LAST 로 처리한 것입니다.
그리고, worker model 은 솔직히 뭐라고 말은 못하겠습니다. 일단 mod_url 자체가 thread safe 한지 보장을 하지 못하기 때문에 worker model 에서 사용을 하라고 권장 자체를 못하기 때문입니다. :-)김정균님의 댓글김정균https://my.oops.org/104#comment3782016-07-08T21:55:54+09:00일단은 어떻게 수정을 하셨는지 코드를 공개를 하지 않으셨기 때문에 mod_url 이 문제인지 아니면 수정한 부분이 문제인지는 저로서는 판단을 할 수 없고, mod_url (IE7 문제 수정전의 코드) 와 현재 제가 새로 수정한 부분을 worker 모델에서 2일동안
echo "한글.txt" > ./uri.txt
while [ 1 ]; do
ab -c 100 1000 http://localhost/test/$(iconv EUC-KR UTF-8 ./uri.txt)
done
rm -f ./uri.txt
와 같이 돌리고 있는데 별 문제 없는 것 같습니다. 한번 테스트 해 줘 보시죠. (음 Apache 2 thread safety issues 문서를 보니 race condition 하게 발생하기 때문에 thread safe 하다고 보장은 못하겠군요. 그래서 이 멘트 남깁니다. ^^)
그리고 apache + php 환경은 worker model 로는 별로 적합하지 않다고 생각이 됩니다만.. 일단 php extension 들이 thread safe 를 보장하지 못하고, apache 와 php 를 build 하기 위한 library 들이 thread safe 를 보장하지 못하는데 mod_url 이 아니라 다른 무엇이 문제가 될 수도 있을 테지요.
그리고, 수정한 일본의 모듈은 아마 mod_encoding 이 아닐까 예상합니다 :-) 이 모듈 역시 예전에 회자가 되어 어느정도 코드는 본 것입니다. 실제로 mod_url 역시 hooking first 로 처리를 해 보려고 했으나 완벽한 지원이 어려워 그냥 hooking last 로 처리한 것이고요. 그리고 수정된 mod_url 은 기존의 mod_url 코드와는 다릅니다. 현재 박 원규님과 메일을 주고 받고 있는데, 만약 받아들여지지 않는다면 혼동을 피하기 위해서 mod_url2 정도로 fork 할 듯 싶습니다.