'MySQL'에 해당되는 글 2건

  1. 2011.03.05 WINDOWS+ NGINX + PHP + MySQL 설치
  2. 2007.07.27 Windows 서버에서 Mysql 접속 에러 문제


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 화니.

댓글을 달아 주세요

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

댓글을 달아 주세요