| 여러장의 이미지 간단히 합치기 | 움직이는GIF만들기 | 썸네일 쉽게 만들기
분류 전체보기 (85)
I am (0)
Today (1)
개발자이야기 (11)
나만의 유용한정보 (7)
서버관련 (40)
지름신 (5)
사진/여행 (1)
끄적끄적 (5)
골프 (11)
주식 (2)

«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Visitors up to today!
Today hit, Yesterday hit
daisy rss
티스토리 가입하기!
'서버관련'에 해당되는 글 40건
2013. 1. 15. 16:52

FreeBSD 9.1 이 릴리즈 되서 패키지 설치중

pkg_add -r 이 아래와 같이 안됨;

 

pkg_add -r rsync
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/


와 같이 환경변수 처리후 가능해졌다.ㅎ

 

 

2012. 11. 29. 14:21

파일다운로드 파일서버겸용 웹서버 가 트래픽 1G로 FULL 서비스하게 되었네요.

 

웹서버는 nginx

1G FULL서비스상황에서 load는 0.x 대.. ㅎㅎ

 

 

1000M 랜카드 대역폭의 한계치 까지와서

서버에 붙어 있는 랜카드2개를 라운드로빈하기로 결정..

 

FreeBSD의 커널부터 패치 하기 시작!

device lagg

추가후 커널컴파일

 

vi /boot/loader.conf 에

if_lagg_load="YES"

추가! 후 리부팅

 

vi /etc/rc.conf 에 랜설정

ifconfig_bce0="up"
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가 짱!

 

 

 

 

 

 

2012. 7. 9. 13:47

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 이라면,

http://abc.com/hello

 

접속시 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관련 참조하는 파일이다.

 

 

2012. 5. 29. 17:56

요즘 성능이슈로 세션이나 캐싱을 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로 여러개 지정이 가능하다.

 

아래는 구동화면~

 

 

2012. 5. 10. 10:35

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/

 

사소하지만 이거 찾는데 시간이 좀 걸렸따아~;ㅋ

2012. 4. 12. 12:49

ssl 인증서는 서버당 한개의 인증서만 설치됩니다. (기본포트 443)

 

여러개를 설치하려면,

 

1. 멀티인증서를 사용한다. 그러나 최소4개의 도메인에 대한 인증서와

   만기일을 항상 맞춰야한다는 단점이 있으며, 인증서 추가시 모든인증서를 다시 받아야하는 단점이 있다.

2, 다른방법으로는 ssl 포트번호를 바꾸는방법인데..

   기본적으로 http://xxx:444 와 같이 별도 포트로 연결처리를 해야한다.

3. 서버에 IP를 추가할당하여 각각 IP로 인증서설치(nginx에서만 됨)

 

nginx에서 동일한 ssl 기본포트(443)로 여러개의 인증서를 설치하려면,

기본적으로 서버에 IP를 별도로 할당할 수 있어야합니다~ (아파치에서는 안됨)

 

$ ifconfig

bce0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=401bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,VLAN_HWTSO>
        ether 78:2b:cb:4a:74:36
        inet 110.x.x.92 netmask 0xffffff00 broadcast 110.92.254.255
        inet 110.x.x.93 netmask 0xffffffff broadcast 110.92.254.93
        media: Ethernet autoselect (1000baseTX <full-duplex,flowcontrol,master,rxpause,txpause>)
        status: active

 

그다음 nginx.conf 를 아래와 같이 기술

 

    server {
        listen               110.x.x.92:443;
        server_name     www.abc.com;

        ssl                  on;
        ssl_certificate          cert/chain.crt;
        ssl_certificate_key    cert/server.key;

        ..

        ..
    }

    server {
        listen               110.x.x.93:443;
        server_name     www.bbc.com;

 

        ssl                  on;
        ssl_certificate          cert2/chain.crt;
        ssl_certificate_key    cert2/server.key;

        ..

        ..
   }

 

 

두IP에 대한 443포트가 띄워져있는걸 볼 수 있네요~

 

$netstat -na | grep LISTEN
tcp4       0      0 110.x.x.93.443      *.*                    LISTEN
tcp4       0      0 110.x.x.92.443      *.*                    LISTEN

 

2011. 12. 14. 15:43


nginx로 proxy서버로 사용할때 목적지서버의 404나 403 등의 에러응답코드를
다른것으로 변조하고 싶은경우가 있다.

이럴경우 아래의 코드를 삽입해서 proxy서버에서 직접 콘트롤 가능하게 할 수 있다.

proxy_pass http://00.00.00.0;
xxx
proxy_intercept_errors on;

error_page 403 /403.jpg;

proxy서버에서 특정페이지로 redirect하거나 여러가지 일을 할 수 있다.
2011. 4. 26. 15:37

502 bad  에러를 내뱉는다..

ajax로 호출하는 페이지에 양이 많을경우( 아마 헤더용량을 넘어선듯..)

nginx.conf에 아래를 추가한다.

fastcgi_buffers 4 256k;
fastcgi_buffer_size 128k;

에러가 안난다.. 너무큰가.. 기본값이 4k 인가. 암튼..ㅋ
2011. 4. 8. 17:09
사용자 업로드폴더(웹에서접근가능)나 업로드폴더가 아닌 일반 이미지폴더에
<? phpinfo() ?> 로 저장후 test.jpg를 올리게 되면
nginx는 uri 뒤에 확장자만 .php면 넘기게 되어 있기때문에 보안에 주의해야합니다.

ex) http://abc.com/images/test.jpg/xxx.php

위의 경로로 test.jpg가 구동되는것을 방지하려면,

try_files $uri $uri/ /index.php;
if (!-f $request_filename) { return 403; }

혹은

if (!-e $request_filename) { rewrite ^.*$ /index.php last; }

이렇게 구성해주면 됩니다.

통상적인 프레임워크를 쓰기위한 rewite 가 아래와 같이 구성되어 있으면
        if ($request_filename ~* ".*\.(php)$") {
                rewrite ^.*$ /index.php last;
        }
        if (!-e $request_filename) {
                rewrite ^.*$ /index.php last;
        }
상관없겠네요..

nginx 쓰면서 가장 보안에 주의해야할 부분입니다.

2011. 3. 14. 16:39
php-fpm 모듈을 올릴때

/usr/local/sbin/php-fpm start

아래와 같은 에러가 나면서 start 스트립트가 멈추지 않는 현상이 나타난다.
fpm_event_loop(), line 107: libevent: entering main loop


vi /usr/local/sbin/php-fpm 의 상단에
php_fpm_BIN=/usr/local/bin/php-cgi
php_fpm_CONF=/usr/local/etc/php-fpm.conf
;php_fpm_PID=/usr/loca/logs/php-fpm.pid
php_fpm_PID=/var/run/php-fpm.pid

과 같이 pid의 경로를 제대로된 경로로 수정해주니 잘되었따아.. 1시간삽질;;;