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

«   2024/03   »
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
31
Visitors up to today!
Today hit, Yesterday hit
daisy rss
티스토리 가입하기!
'서버관련'에 해당되는 글 40건
2020. 2. 19. 10:37


MYSQL5.1 에서 MyISAM의 바이너리를 MYSQL5.7 로 옮기니(귀차니즘..) 문제가 없는듯하였는데.

check table 이나 alter  / repair table 시 아래와 같은 메시지가 나옵니다.



TIME/TIMESTAMP/DATETIME columns of old format have been upgraded to the new format.

Incorrect datetime value: '0000-00-00 00:00:00' for column 'date_log' at row 1

Invalid default value for 'date_log'

Operation failed



my.cnf 에 아래와 같이 sql_mode 를 추가해주면 해결이 됩니다.

[mysqld]
sql-mode="ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"




2019. 12. 18. 10:47

컴파일시 아래와 같은 에러가 발생하는데.. 몇시간 애먹었던.. 기억이 있네요.

구글링시에도 어떻게 하라는거 같긴한데. 명확한 부분이 없어 기록해봅니다

libtool: compile: unable to infer tagged configuration 
libtool:   error: specify a tag with '--tag' 
*** Error code 1 

 

vi Makefile 

LIBTOOL = $(SHELL) $(top_builddir)/libtool --tag=CC

--tag=CC 를 추가해주고 컴파일하면 됩니다. ㅎㅎ

2016. 7. 27. 11:11

zfs 파일 시스템은 기본적으로 압축값이 lz4 입니다~


# zfs get compression zroot/usr/local
NAME             PROPERTY     VALUE     SOURCE
zroot/usr/local  compression  lz4       inherited from zroot


lz4 는 openzfs의 새로운 압축 알고리즘입니다.


du 에서 -A 옵션을 주면 실제 파일 용량을 계산할수가 있습니다.


       DB 관련

      이미지 관련

 # du -h
 5.9G    .


 # du -Ah
 17G    .

 # du -h
 6.6G    .


 # du -Ah
 6.7G    .



이미지자체가 압축이라 이미지는 영향이 많이 없고.

DB파일들의 경우 상당히 물리적 파일시스템을 절약하고 있네요.


CPU성능과 RAM이 충분하다면, zfs를 사용하면서 i/o의 병목을 줄일수 있습니다.


참고로, zfs 파일시스템은 각 파티션별로 스냅샷을 자유자재로 줄수 있고,

원하는 스냅샷기준으로 복구도 가능합니다.

2015. 11. 2. 17:23

다음쪽 IP에서 무차별적으로 긁어가는 웹페이지 접속때문에

서버부하가 순간순간 너무 올라가서 골치거리였습니다.ㅠㅠ  (어디에 쓰는건지도 모른다는....)

 

IP도 C클래스 대역 몇개로 해서 특정IP를 막는것도 그렇고, agent를 보니 Daum Raam/Daum OA 이런식..ㅠ

통상적으로  검색엔진이 초당 수개~ 수십번 접속을 하지 않습니다.

 

 

 

일단 서버부하를 너무 유발하여 막기로 결정~ nginx로 막아보았네요..

 

nginx의 limit_req_zone 는  server / http/ location 절에만 기술이 가능하므로 아래와 같이 해결했네요.

 

    map $http_user_agent $limit_bots {
        default '';
        ~*(Daum|Raam) Daum;
    }

    limit_req_zone $limit_bots zone=antiddos:20m rate=3r/s;   # 초당 3개로 제한

 

당연히 적당한곳에 아래도 기술해야겠지요.

 

limit_req zone=antiddos burst=3;   # 초당 3개 제한이 초과될때 3개까지 대기허용?

 

검색엔진이 컨턴츠를 가져가려면, 서버부하를 고려해서 적당히 가져가는 센스를 보여줘야 하는데.

정도가 심해서 부득이 하게 막았네요.ㅠㅠ

 

 

 

 

2015. 4. 7. 15:21

요즘은 DDOS공격같은 방법보다는 웹쉘이나  XSS삽입공격등으로 사이트를 위협하고 있습니다.

 

특히 XSS관련 공격은 가장 빈번한 방법으로

대부분의 사이트들의 인증은 쿠키(세션)를 통한 방식으로 하기때문에 "쿠키 하이제킹 방지" 코드만

넣어도 어느정도 방어가 됩니다.

거의 모든 브라우져에서 지원되므로, 아래와 같은 방식으로 코드를 넣으면 도움이 됩니다.

 

 

쿠키 사용예)

PHP 5.x 이상

SetCookie("auth_xxx",$user,0,"/",".makeshop.co.kr",false, true);

PHP 4.x

SetCookie("auth_xxx",$user,0,"/",".makeshop.co.kr; httponly");

 

세션을 사용예) ( php5.2 이상)

php.ini 에서

session.cookie_httponly = true;

설정후 php 재가동

 

서버에서 보내는 쿠키 헤더값은 아래와 같네요.

HTTP/1.1 200 OK
Server: nginx
Date: Tue, 07 Apr 2015 05:06:07 GMT
Content-Type: text/html
Connection: keep-alive
Set-Cookie: test=123; path=/; domain=test.co.kr; httponly

 

브라우져를 재가동후 사이트접속(로그인)후
주소창에
javascript:document.cookie
입력하여 확인해보면, 설정한 쿠키(세션) 이 보이지 않은것을 확인할 수 있습니다. :)

 

 

2014. 8. 28. 13:40

아파치도 비슷하지만, NGINX에서 PHP프레임웍을 사용하려면,

보통 아래와 같이 기술하게 된다.

 

        if (!-e $request_filename)     {

               rewrite ^/(.*)$ /index.php?/$1 last;
        }
        # 파일이 존재하지 않으면, 프레임웍의 index.php 로 rewrite

 

이런경우 없는 이미지파일 호출이나 css, js 파일을 호출하더라도.

파일이 없는경우 무조건 index.php 로 가게 되니 서버의 부담이 많아진다. (악의적인호출포함?)

 

아래와 같이 수정

 

        set $framework 'NO';
        if (!-e $request_filename)     {
               set $framework 'OK';
        }
        if ($uri ~ '(\.css|\.js|\.ico|\.gif|\.jpg|\.png|\.swf)')
               set $framework 'NO';
        }
        if ($framework = 'OK') {
               rewrite ^/(.*)$ /index.php?/$1 last;
               break;
        }

 

위와 같이 하여 확장자가 이미지파일이거나 css/js 등일 경우 파일이 존재하지 않으면, 프레임웍을 안타게 설정한다.

확장자는 알아서 추가..ㅎㅎ

 

 

 

 

 

2014. 4. 9. 09:56

php-fpm 실행시 unknown entry 'security.limit_extensions'  error

 

pph-fpm을 로컬에서 실행할때와 달리 다른서버의 php-fpm을 실행할때  'security.limit_extensions'  를

기술해주어야한다. (was서버처럼 분산처리할때)

 

Starting php-fpm server...
[08-Apr-2014 19:14:46] ERROR: [/usr/local/etc/php-fpm.conf:17] unknown entry 'security.limit_extensions'
[08-Apr-2014 19:14:46] ERROR: failed to load configuration file '/usr/local/etc/php-fpm.conf'
[08-Apr-2014 19:14:46] ERROR: FPM initialization failed

 

php-fpm.conf 에

security.limit_extensions  를  아무데나 기술하면 위와 같이 에러가 나므로

 

반드시 [www] 탭 하단에 기술해주어야한다.

 

[www]

security.limit_extensions = .php .php3

 

 

 

 

2014. 1. 22. 14:38

모니위키(moniwiki) 를 사용하시는분이 요즘 있을까 하지만,

자료찾기가 좀 쉽지 않아서 정리해봅니다.

 

http://wiki.test.com/wiki.php/xxxxxxxxxxx

이런식의 URL방식을 사용하기 때문에

모니위키를 nginx 에서 사용하시려면, 아래와 같이 추가하셔야하시면 됩니다

 

참고하세요~ ㅎㅎ

 

        try_files $uri $uri/ /wiki.php;


        location ~ \.php($|/) {
        

               include fastcgi_params;
                fastcgi_pass  unix:/var/run/fastcgi.socket;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;


                fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
                fastcgi_param PATH_INFO $fastcgi_path_info;
                fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;

 

                fastcgi_param HOST testserver

                fastcgi_read_timeout 120;

                ..

                ..

        }

 

 

 

2013. 8. 1. 18:30

bind보안패치로 최신bind설치후 재구동시 아래와 같은 에러가 나타난다.ㅠ

 

Jul 29 16:13:51 xxx named[73049]: zone xxx.net/IN: ''xxx.net'' found SPF/TXT record but no SPF/SPF
record found, add matching type SPF record

 


Adds a new configuration option, "check-spf"; valid values are
"warn" (default) and "ignore". When set to "warn", checks SPF
and TXT records in spf format, warning if either resource record
type occurs without a corresponding record of the other resource
record type. [RT #33355]

spf를 체크하는 루틴이 추가되면서 나오는 워닝인데.. 모든 zone의 파일을 spf설정을 TXT -> SPF로 변경이 힘들다면,

아래와 같이 하면 된다.

 

vi /etc/named.conf

 

options {
        version "bind xx";
        directory "/var/named";
        pid-file "/var/run/named/named.pid";

        check-spf ignore;

        ..

        ..
};

 

check-spf ignore; 추가!! ㅎㅎ

2013. 2. 14. 13:52

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;
        }

 

재컴파일...    잘된다..ㅎㅎ