FreeBSD9.x / php5.3.x
--enable-fpm 설치시 아래와 같은 에러가 난다! ㅎ
/usr/local/php-5.3.9/sapi/fpm/fpm/fpm_sockets.c: In function 'fpm_socket_get_listening_queue':
/usr/local/php-5.3.9/sapi/fpm/fpm/fpm_sockets.c:400: error: 'struct tcp_info' has no member named 'tcpi_sacked'
/usr/local/php-5.3.9/sapi/fpm/fpm/fpm_sockets.c:405: error: 'struct tcp_info' has no member named 'tcpi_unacked'
/usr/local/php-5.3.9/sapi/fpm/fpm/fpm_sockets.c:409: error: 'struct tcp_info' has no member named 'tcpi_sacked'
*** [sapi/fpm/fpm/fpm_sockets.lo] Error code 1
아래와 같이 소스를 수정..
/usr/local/php-5.3.9]$ find . -name "fpm_sockets.c"
./sapi/fpm/fpm/fpm_sockets.c
vi ./sapi/fpm/fpm/fpm_sockets.c
tcpi_sacked -> __tcpi_sacked
tcpi_unacked -> __ tcpi_unacked
if (info.tcpi_sacked == 0) {
return -1;
}
if (cur_lq) {
*cur_lq = info.tcpi_unacked;
}
if (max_lq) {
*max_lq = info.tcpi_sacked;
}
아래와 같이 수정
if (info.__tcpi_sacked == 0) {
return -1;
}
if (cur_lq) {
*cur_lq = info.__tcpi_unacked;
}
if (max_lq) {
*max_lq = info.__tcpi_sacked;
}
재컴파일... 잘된다..ㅎㅎ
FreeBSD 9.1 이 릴리즈 되서 패키지 설치중
pkg_add -r 이 아래와 같이 안됨;
Error: Unable to get ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.1-release/Latest/rsync.tbz: File unavailable (e.g., file not found, no access)
pkg_add: unable to fetch 'ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.1-release/Latest/rsync.tbz' by URL
http://www.freebsd.org/news/2012-compromise.html
일전의 보안이슈로 막아 놓은 모양;;
아래와 같이 해결은 가능하다..
c shell 일경우
setenv PACKAGESITE ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9-current/Latest/
bash shell 일경우
export PACKAGESITE=ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9-current/Latest/
와 같이 환경변수 처리후 가능해졌다.ㅎ
파일다운로드 파일서버겸용 웹서버 가 트래픽 1G로 FULL 서비스하게 되었네요.
웹서버는 nginx
1G FULL서비스상황에서 load는 0.x 대.. ㅎㅎ
1000M 랜카드 대역폭의 한계치 까지와서
서버에 붙어 있는 랜카드2개를 라운드로빈하기로 결정..
FreeBSD의 커널부터 패치 하기 시작!
device lagg
추가후 커널컴파일
vi /boot/loader.conf 에
추가! 후 리부팅
vi /etc/rc.conf 에 랜설정
ifconfig_bce1="up"
cloned_interfaces="lagg0"
ifconfig_lagg0="laggproto roundrobin laggport bce0 laggport bce1"
ipv4_addrs_lagg0="27.x.x.171/25"
두개의 랜카드가 라운드로빈되면서 분산시작! ㅎㅎ
LAN1 LAN2
분산이 잘되고 있네요.ㅎㅎ
그나저나 nginx가 짱!
nginx에 재미 있는 Addons기능중에 echo 라는 기능이 있다.
nginx단에서 간단하게 특정 코드를 출력할 수 있는 기능이다.
https://github.com/agentzh/echo-nginx-module/tags
echo모듈을 다운받고,
nginx컴파일시 echo모듈의 경로를 아래와 같이 추가한다.
./configure --prefix=/usr/local/nginx --add-module=./echo-nginx-module
컴파일후 nginx.conf 에 아래과 같이 추가한다.
location /hello {
#default_type text/plain; # 옵션
echo "hello, world!";
}
도메인이 abc.com 이라면,
접속시 hello, world! 를 표시해줄것이다.
나같은 경운 crossdomain.xml 을 echo모듈로 사용했다. 로컬하드에 파일이 없어도 웹서버단에서 자동처리될 것이다.
location /crossdomain.xml {
echo "<!DOCTYPE cross-domain-policy SYSTEM \"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd\">";
echo "<cross-domain-policy>";
echo "<allow-access-from domain=\"*\" />";
echo "<allow-http-request-headers-from domain=\"*\" headers=\"*\" />";
echo "</cross-domain-policy>";
}
http://abc.com/crossdomain.xml 하면 자동으로 나올것이다.
참고로 이 파일은 플래쉬파일에서 crossdomain관련 참조하는 파일이다.
100M회선+풀랙으로는 국내 최저가네요! IDC비용도 명시해놓은곳은 스쿨호스팅밖에 없습니다~
트래픽50M 초과시에도 유리한 가격이네요~
회선이용하시는분 참고하세요~
요즘 성능이슈로 세션이나 캐싱을 memcached로 많이 구현되어 있는거 같다.
memcached 모니터링 툴을 찾다가 괜찮은 툴이 있어서 소개~
http://livebookmark.net/journal/2008/05/21/memcachephp-stats-like-apcphp/
memcache.php 소스다운은 위의 블로그 방문에도 있고 직접 받으려면,
http://livebookmark.net/memcachephp/memcachephp.zip
memcache.php 파일을 원하는 서버폴더에 넣고,
아래의 소스상에서 수정만 하면 된다. (접근할 사용자ID/비번/memcached 서버설정만 하면 끝)
define('ADMIN_USERNAME','사용자ID'); // Admin Username
define('ADMIN_PASSWORD','비밀번호'); // Admin Password
define('DATE_FORMAT','Y/m/d H:i:s');
define('GRAPH_SIZE',200);
define('MAX_ITEM_DUMP',50);
$MEMCACHE_SERVERS[] = '127.0.0.1:11211'; // add more as an array
//$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // add more as an array
소스에서처럼 서버들을 array로 여러개 지정이 가능하다.
아래는 구동화면~
웹에서 손쉽게 dns네임서버를 관리할 수 있는 dnszi.com 사이트가 오픈했네요!
보통 dns서버를 운영하려면, 1차,2차 네임서버가 기본적으로 필요하며, 서버도 2대, 서버호스팅까지 받아야하는데
이 서비스를 이용하면, dns서버비용이 절약되고, IDC비용은 물론 따로 관리자를 두지 않고 직접 설정하면되니
많은 비용절약과 편리성으로 관리하기가 용이하겠네요~~
PHPSCHOOL 에서 운영하는 서비스이며, 모든 관리가 다 무료!
무료네임서버/무료파킹서비스/무료포워딩서비스 모든게 다 무료서비스네요!
신규/기관이전
PHPSCHOOL.COM 에서 운영하는 스쿨호스팅에서 이벤트하네요!
.com/.net 9,600원
.kr/.co.kr 11,000원
최저가네요!
한시적인 이벤트이니 이용하실분 참고~~~~~고고..
https://www.phps.kr/event_domain.html
nginx 에서 rewrite기능을 사용하면 기본적으로 request_uri 가 붙는다..
가령, www.abc.com/test/index.php?a=123 을 아래의 룰로 redirect하면
rewrite ^/test/ / permanent;
www.abc.com/test/?a=123
결과
www.abc.com/?a=123
으로 되어 버린다~
아래와 같이 하면 깔끔하게 해결~
rewiret ^/test/ /? permanent;
www.abc.com/test/?a=123
결과
www.abc.com/
사소하지만 이거 찾는데 시간이 좀 걸렸따아~;ㅋ
보통 서버호스팅의 기준(보유서버를 들고갈경우의 기준, 1U, 10M회선) 3개업체기준 (2012/04/18기준)
업체 |
|||
자체서버사용의경우(월) |
7만원 |
7.5만원 |
10만원 |
사이트관련링크 |
|||
델서버 R210임대포함가 |
10만원 |
없음 |
없음 |
델서버 R410임대포함가 |
14만원 |
17만원 |
임대상품없음 구매가 1,680,000원 |
R210을 델에서 아래와 같은 사양으로 구매견적을 요청해보았습니다.
CPU : CoreI3-2100 3.10Ghz
RAM : 2G
HDD : 250G (기업용)
원격리모트카드
AS 3년
135만원이 나오네요.. 스쿨호스팅입장에서 월 10만원에(사용자입장에서는 월3만원추가) 서버135만원짜리를
쓸수 있다는 계산이 나옵니다~
R410 견적도 받아봤습니다.
CPU : Xeon 쿼드코어 E5606 (2.13Ghz)
RAM : 4G
HDD : 500G Near line SAS
AS 3년
170만원이상의 비용이 나오네요~ ㅎㅎ 가비아의 경우 구매가인데도 12개월 의무사용조건이네요;;
자체서버사용보다는 서버임대로 사용하는게 훨씬 목돈절약이 될 수 있겠네요~
서버호스팅받으시는분들 참고하세요~