c:\nginx\conf\nginx.conf 수정
아래와 같이 주석제거
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9123;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi_params;
        }


  • PHP-CGI 실행
    • c:\nginx\run_php.vbs 아래와 같이 작성 후 실행

option Explicit 
dim strComputer,objWMIService,objShell,colProcesses 
strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
Set objShell = CreateObject("Wscript.Shell") 

Do 
        Set colProcesses = objWMIService.ExecQuery _ 
                ("Select * from Win32_Process Where Name = 'php-cgi.exe'") 
        If colProcesses.Count < 10 Then 
                objShell.Run "RunHiddenConsole.exe  c:\nginx\php\php-cgi.exe -b 127.0.0.1:9123 -c c:\nginx\php\php.ini" 
        End If 

        Wscript.Sleep 5000 

Loop

PHP-CGI 데몬을 하나만 띄워도 되지만 이상하게 일정시간후 죽는 현상이 발생하여 프로세스 갯수를 확인하여 10개를 띄우도록 했다.
사용량이 적은 사이트는 3개정도면 적당할 듯하다.


  • nginx 실행
    • c:\nginx\start_nginx.bat 아래와 같이 작성 후 실행

@ECHO OFF
start c:\nginx\nginx.exe






@echo off
set pathlog=c:\logs\(로그파일이 있는 경로)

set filedate=%time::=%
set filedate=%filedate: =0%
set filedate=%filedate:~0,6%

set logfilename=site.access.log(access 로그파일명)
set filename=%logfilename%_%date:-=%_%filedate%
rename %pathlog%%logfilename% %filename%

set logfilename=siet.error.log(error 로그파일명)
set filename=%logfilename%_%date:-=%_%filedate%
rename %pathlog%%logfilename% %filename%

c:\nginx\nginx -s reopen


    • 서비스 정지시키기
      • c:\nginx\stop.bat 를 아래와 같이 작성 후 실행

@ECHO OFF
c:\nginx\nginx.exe -s stop

taskkill /f /IM nginx.exe
taskkill /f /IM wscript.exe
taskkill /f /IM php-cgi.exe



  • Apache 와 Nginx 의 성능 비교
기존 사용하던 Apache데몬(httpd.exe)와 nginx, php-cgi방식으로 변경한 모습.
엄청난 CPU와 메모리 차이를 보이고 있다.

Todo...

가끔 502 Bad Gateway 오류가 나오며 페이지가 안나올때가 있다.


Posted by 화니.

댓글을 달아 주세요

  1. Favicon of http://bathroom-windows.net/ BlogIcon bathroom windows 2011/08/01 01:57  댓글주소  수정/삭제  댓글쓰기

    나는 정확하게 정말 다시 한번 감사 드리고 싶었어요. 난 전체 방법의 부재에서 수행한 수도있는 일들이 당신이 그 분야에 관한 공개하여 특정 아니에요. 이전에도 불구하고 그것은 저를 기쁨과 눈물로 만든이 치료 숙련된 전술을 고려, 제 의견에있는 비참한 상황했습니다. 나는뿐만 아니라 당신은 정말 항상 모든 웹 사이트를 통해 오늘날 지시 사람들을 달성 어떤 놀라운 일을 알고 생각으로 지원을 감사하고 있어요. 가장가능성 당신은 우리 모두가 발생 적이 없다.

Windows 2003에서 사용가능. XP는 안됨.
사용예)
forfiles /P C:\filepath /S /M *.txt /D -10 /C "cmd /c del @file"


FORFILES [/P pathname] [/M searchmask] [/S]
         [/C command] [/D [+ | -] {yyyy-MM-dd | dd}]

설명:
    파일(또는 파일 집합)을 선택하고 파일에 명령을
    실행합니다. 일괄 작업에 유용합니다.

매개 변수 목록:
    /P    pathname      검색을 시작할 경로를 지정합니다.
                        현재 작업 디렉터리(.)가 기본
                        폴더입니다.

    /M    searchmask    검색 마스크에 따라 파일을 검색합니다.
                        '*'이 기본 검색 마스크입니다.

    /S                  하위 폴더를 포함하도록
                        지정합니다. 예, "DIR /S"

    /C    command       각 파일에 실행할 명령을 지정합니다.
                        명령 문자열을 큰따옴표로 묶어야
                        합니다.

                        "cmd /c echo @file"이 기본 명령입니다.

                        명령 문자열에 다음 변수를 사용할 수
                        있습니다.
                        @file    - 파일 이름을 반환합니다.
                        @fname   - 확장명 없이 파일 이름을
                                   반환합니다.
                        @ext     - 파일의 확장명만
                                   반환합니다.
                        @path    - 파일의 전체 경로를 반환합니다.
                        @relpath - 파일의 상대 경로를
                                   반환합니다.
                        @isdir   - 파일 형식이 디렉터리인 경우 "TRUE"를
                                   반환하고 파일인 경우 "FALSE"를 반환합니다.
                        @fsize   - 파일의 크기(바이트)를
                                   반환합니다.
                        @fdate   - 파일을 마지막으로 수정한 날짜를
                                   반환합니다.
                        @ftime   - 파일을 마지막으로 수정한 시간을
                                   반환합니다.

                        명령줄에 특수 문자를 포함하려면
                         0xHH 형식의 16진수 코드(예, 탭은 0x09)를
                        사용하십시오. 내부 CMD.exe 명령
                        앞에는 "cmd /c"를 사용해야
                        합니다.

    /D    date          지정한 날짜와 마지막 수정한 날짜가 늦거나
                        같은(+) 또는 빠르거나 같은(-) 파일을
                        찾습니다.
                        날짜 형식은 "yyyy-MM-dd"입니다.
                        또한 마지막 수정한 날짜가 현재 날짜에
                        "dd"일을 더한 날짜보다 늦거나 같은(+)
                         또는 현재 날짜에서 "dd"일을 뺀 날짜보다
                        작거나 같은(-) 파일을 찾습니다.
                        유효한 "dd" 범위는 0에서 32768까지입니다.
                        부호를 지정하지 않으면 "+"가 기본값입니다.

    /?                  도움말을 표시합니다.

예:
    FORFILES /?
    FORFILES 
    FORFILES /P C:\WINDOWS /S /M DNS*.*
    FORFILES /S /M *.txt /C "cmd /c type @file | more"
    FORFILES /P C:\ /S /M *.bat
    FORFILES /D -30 /M *.exe
             /C "cmd /c echo @path 0x09 was changed 30 days ago"
    FORFILES /D 2001-01-01
             /C "cmd /c echo @fname is new since Jan 1st 2001"
    FORFILES /D +2009-1-8 /C "cmd /c echo @fname is new today"
    FORFILES /M *.exe /D +1
    FORFILES /S /M *.doc /C "cmd /c echo @fsize"
    FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file"

Posted by 화니.

댓글을 달아 주세요

1. Regedit 실행

2. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\Wds\Repwd
\Tds\Tcp

이름 종류 데이터
PortNumber REG_DWORD 0x00000d3d(3389)

10진수를 선택하고 다른 포트번호(10000)를 입력

3. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStatio
ns\RDP-Tcp

이름 종류 데이터
PortNumber REG_DWORD 0x00000d3d(3389)

10진수를 선택하고 다른 포트번호(10000)를 입력

방화벽이 설정되어있다면 방화벽 포트도 열어주셔야 합니다

Posted by 화니.

댓글을 달아 주세요

Windows 서버에서 Mysql 접속 에러 문제 해결을 위해 고생을 많이 했는데 해결을 찾은듯합니다.

보통 상황에서 나오는 에러는 아니고 초당 30회 이상 연결 및 해제가 발생할 경우 Windows에서 TIME_WAIT 가 많이 걸리면서 오류가 나오는듯 합니다.

해결방법
regedit 를 열어 아래를 추가해야 합니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Value Name: MaxUserPort
Data Type: REG_DWORD
Value: 65534

Value Name: TcpTimedWaitDelay
Data Type: REG_DWORD
Value: 30

10진수입니다.

참고 문서 : http://dev.mysql.com/doc/refman/5.0/en/can-not-connect-to-server.html#can-not-connect-to-server-on-windows

Posted by 화니.
TAG MySQL, Windows

댓글을 달아 주세요

윈도우 Apache 2에서 한글처리를 정상적으로 할 수 없습니다.


표준은 utf8 로 보냄을 체크해야 하지만 사용자의 브라우져는 체크가 된것과 안된것이 있습니다.


리눅스 버전의 Apache 2에서는 urlencode 로 해결가능했으나 윈도우버전은 urlencode로 해결할 수 없어 함수를 만들었습니다.




  1. function korfile($filename)
  2. {
  3.     $filename=iconv("CP949", "UTF-8", $filename);
  4.     $filename=urlencode($filename);
  5.     $filename=str_replace("+", "%20", $filename);
  6.     $filename=str_replace("%2F", "/", $filename);

  7.     return $filename;
  8. }

한글을 일단 utf8 방식으로 바꾼후 urlencode하고 urlencode 되야하지 않아야할 문자를 다시 변경했습니다.
디렉토리나 파일명을 이 함수를 통하게 하면 브라우져에서 utf8를 체크한것과 똑같이 파일에 접근하게 됩니다.

'자료들 > 서버관리' 카테고리의 다른 글

Windows 서버에서 Mysql 접속 에러 문제  (0) 2007/07/27
윈도우 Apache 2 에서 한글처리 해결방법  (1) 2006/01/09
PHP 캐쉬 eAccelerator  (0) 2005/11/09
원격 접속 - 터미널  (1) 2005/06/02
Posted by 화니.
TAG

댓글을 달아 주세요

  1. park, h. s. 2007/01/26 11:12  댓글주소  수정/삭제  댓글쓰기

    감사합니다.
    고민했던 문제가 아주 쉽게 해결되었네요.....

서버 업데이트후 서버가 매일 CPU100%를 차지하고 있었다.
그 동안 TurckMMCache 를 썼었는데 PHP 버전 업데이트후 작동이 안하고 있었다.
eAccelerator 를 써보기로 선택했고 지금 CPU는 20~50%를 유지하며 안정적으로 돌아가고 있다.
Apache 의 메모리 점유율도 많이 내려갔다.

TurckMMCache 와 비슷하게 작동하고 다른점은 메모리에 캐쉬를 올려놓고 사용하는듯하다.
Encoding 기능도 들어있다.

현재 PHP 4.4.1 버전에 맞는 파일이 없어 PHP를 다운그레이드를 해야만 했다.

홈페이지 : http://eaccelerator.net
설정 방법 : http://eaccelerator.net/IniSettingsUk

윈도우버전 설치 : http://www.arnot.info/eaccelerator/

'자료들 > 서버관리' 카테고리의 다른 글

윈도우 Apache 2 에서 한글처리 해결방법  (1) 2006/01/09
PHP 캐쉬 eAccelerator  (0) 2005/11/09
원격 접속 - 터미널  (1) 2005/06/02
윈도우 서버에서 BandWidth설정하기  (2) 2005/04/08
Posted by 화니.

댓글을 달아 주세요

원격접속 터미널 클라이언트 2000, XP 용

msrdpcli.exe

다운로드

'자료들 > 서버관리' 카테고리의 다른 글

윈도우 Apache 2 에서 한글처리 해결방법  (1) 2006/01/09
PHP 캐쉬 eAccelerator  (0) 2005/11/09
원격 접속 - 터미널  (1) 2005/06/02
윈도우 서버에서 BandWidth설정하기  (2) 2005/04/08
Posted by 화니.

댓글을 달아 주세요

  1. 텔넷 2006/08/21 11:06  댓글주소  수정/삭제  댓글쓰기

    PHP SCHOOL에서 텔넷소스를 보고 도움을 요청합니다.
    워크스테이션(솔라리스)이 first,second 두 대가 있는데 평상시에는 first로 운용이 되다가 first가 상태가 안 좋을 때는 자동으로 second가 운용되는 방식입니다.
    first는 FTP로 직접 접속해서 파일을 다운 받을 수 있고, second는 first로 TELNET 접속을 한 다음 first:/] ftp second => 이런 식으로 second로 FTP 접속을 해서 파일을 다운 받을 수 있습니다
    FTP로 직접 다운 받는 것은 PHP로된 FTP 스크립트를 구해서 해결을 했는데요(first)
    TELNET으로 접속했다가 FTP로 접속해서 다운 받는것(second)은 도무지 깜깜합니다

    이것도 php로 가능한지 답변을 기다리구요
    아울러 php로 된 telnet client 소스 있으시면 부탁 드립니다

환경 : Win 2000, Apache 1.3

자료 : http://flashexperiments.insh-allah.com/Apache.html

기능 : 초당 페이지 접속, 대폭역 셋팅, 몇매가 이상의 파일일경우의 대폭역등...

모듈 로딩 에러가 날경우(126)
윈도우 디렉토리에
System32\MSVCRT.DLL
System32\MSVCRTD.DLL
두 파일이 있는지 확인한다.

DLL 다운로드
http://flashexperiments.insh-allah.com/msvcrt_dlls.zip

'자료들 > 서버관리' 카테고리의 다른 글

윈도우 Apache 2 에서 한글처리 해결방법  (1) 2006/01/09
PHP 캐쉬 eAccelerator  (0) 2005/11/09
원격 접속 - 터미널  (1) 2005/06/02
윈도우 서버에서 BandWidth설정하기  (2) 2005/04/08
Posted by 화니.
TAG

댓글을 달아 주세요

  1. Favicon of http://asmiya.net BlogIcon 아즈미야 2005/04/08 03:48  댓글주소  수정/삭제  댓글쓰기

    안주무시고 열심히 뭔가 하고 계시네요~

    바뀐 도메인 주소가 드디어 셋팅 되었답니다.^__^*
    http://asmiya.net !
    아무쪼록 잘 부탁드려요-;;

    그리고 또 다른이야기, 서드파티를 종료할 적에 Access Violation 오류가 떴었습니다^^; 윈2003입니다-!

  2. Favicon of http://d-3-b.com BlogIcon 화니 2005/04/08 16:53  댓글주소  수정/삭제  댓글쓰기

    아즈미야//메모리 해제할때 오류가 생기는거같네요^^; 나중에 다른OS를 설치해서 확인해봐야겠습니다.
    알려주셔서 감사합니다^^
    행복하세요~