Author Archives: master
Home » Author: master


1. Apache Keep Alive 옵션 조절
Apache 같은 web server로 운영한다면, KeepAlive Option 을 고려할 수 있습니다.
KeepAlive Option을 On 으로 해놓을 경우 Client를 접속시킨 채로 특별한 요청없이 지속적인 연결을 허용하게 됩니다. 이경우 KeepAliveTimeout 설정으로 연결유지 타임을 설정할 수 있습니다.
(이경우 web server에서 응답시 헤더에 Connection : close 의 정보가 없이 날라가게 됨)
하지만 위의 설정은 약이되고 독이될 수 있어 보입니다.
Client 가 정해져있는 server to server http 연동 I/F 용으로 사용되는 웹서버의 경우 위 설정으로 TIME_WAIT 을 줄이는 효과를 기대할 수 있을거 같습니다.
하지만 web 서비스 를 하는 용도라면 불필요하게 커넥션을 유지하여 오히려 http thread 갯수만 늘어나서 독이될 수 있습니다.
(최대 용량은 아직 놀고있으면서 커넥션이 안되어서 TPS가 현저하게 떨어질 것으로 예상..)
용도별로 Apache Port 분리하여 KeepAlive Option을 적절히 이용하는게 해법일 수 있겠습니다.
2. 커널 파라미터 튜닝net.ipv4.tcp_fin_timeout = 30
: FIN_TIMEOUT 대기 시간을 줄이면 끊어진 소켓의 소거 시간을 줄일 수 있음
net.ipv4.tcp_rfc1337 = 1
: 클라이언트의 소켓으로부터 RST를 받아 TIME_WAIT 상태로 가는 경우 즉시 소켓을 종료시킴
net.ipv4.tcp_max_tw_buckets =2000000
: 동시에 유지 가능한 timewait 소켓의 […]


apache log상에 프록시 IP만 찍힐때 apache 모듈을 추가!
apache 2.2 에 설치함.
wget msnote.co.kr/file/mod_rpaf-0.6.tar.gz
tar zxvf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6.tar.gz
/usr/local/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
– httpd.conf 추가 > LoadModule rpaf_module modules/mod_rpaf-2.0.so
– vhost추가 >
RPAFenable On
RPAFsethostname On
RPAFproxy_ips xxx.xx.xx.12 << 프록시IP
RPAFheader X-Forwarded-For


windows 패스워드분실시
-> windows OS CD 부팅
-> 복구모드 -> 커맨드
-> 경로 D:\windows\system32
-> 명령어
move Utilman.exe Utilman.ex_
copy cmd.exe Utilman.exe
shutdown -r -t 화0
-> 재부팅 후 윈도우+U 키 로 커맨드창 불러옴.
-> 명령어
net user
net user Administrator Password
-> Password 에는 원하는 패스워드 정책실행시 정책에 알맞게할것
-> cmd창 닫고 로그인
-> 다시 OS CD로 부팅후 Utilman.ex_ 파일 원복
-> 끝
깨알팁!


1. PHP redirect
1
2
3
4
<?php
header( “HTTP/1.1 301 Moved Permanently” );
header( “Location: http://www.msnote.co.kr” );
?>
2. JSP(Java) redirect
1
2
3
4
5
< %
response.setStatus(301);
response.setHeader( “Location”, “http://www.msnote.co.kr/” );
response.setHeader( “Connection”, “close” );
%>
3. ASP.NET redirect
1
2
3
4
5
6
7
<script runat=”server”>
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = “301 Moved Permanently”;
Response.AddHeader(“Location”,”http://www.msnote.co.kr”);
}
</script>
4. ASP redirect
1
2
3
4
5
< %@ Language=VBScript %>
< %
Response.Status=”301 Moved Permanently”
Response.AddHeader “Location”,”http://www.msnote.co.kr/”
%>
5. Ruby on Rails redirect
1
2
3
4
def old_action
headers[“Status”] = “301 Moved Permanently”
redirect_to “http://www.msnote.co.kr/”
end
6. CGI Perl redirect
1
2
$q = new CGI;
print $q->redirect(“http://www.msnote.co.kr/”);
7. .htaccess mod_rewrite
1
2
RewriteEngine on
RewriteRule (.*) http://www.msnote.co.kr/$1 [R=301,L]


1. Apache 환경 설정 파일
vi /usr/local/apache/conf/httpd.conf
변경전 Timeout 300
변경후 Timeout 1200클라이언트의 요청에 의해 서버와 연결이 되었을 때 클라이언트와 서버간에 아무런 메시지가 발생하지 않았을 때
오류로 처리될 시간을 초단위로 설정 합니다.
초기값은 1200이며 보통은 300초로 지정을 합니다. 네트웍의 속도가 나쁠수록 수치값은 높게 설정하는 것이 좋습니다..
변경전 KeepAliveTimeout 15
변경후 KeepAliveTimeout 30
아파치 서버는 같은 접속상태의 클라이언트에서 여기서 지정한 초만큼의 요청이 없었을 때 접속을 끊게 됩니다.
2. PHP 환경 설정 파일
vi /etc/php.ini
변경 전 session.gc_maxlifetime = 1440
변경 후 session.gc_maxlifetime = 10800
변경 전 session.cookie_lifetime = 0
변경 후 session.cookie_lifetime = 86400
변경 전 session.cache_limiter = nocache
변경 후 session.cache_limiter = nocache, must-revalidate
정정



아래와 같은 에러를 확인할때
[ERROR] Column count of mysql.db is wrong. Expected 22, found 20. The table is probably corrupted
[ERROR] mysql.user has no `Event_priv` column at position 29
[ERROR] Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler.
mysql_upgrade –force -uroot -p [your mysql root password]
끝!


(1) FreeTDS 설치
# wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
# tar xvzf freetds-stable.tgz
# cd freetds-0.91
# ./configure –prefix=/usr/local/freetds –with-tdsver=8.0 –disable-odbc –disable-debug –enable-msdblib
# make && make install
(2) freetds.conf 설정 및 ms-sql 접속 Test
# vi /usr/local/freetds/etc/freetds.conf
– 아래의 항목 추가
[TestMSSQL]
host = IP주소
port = 1433
tds version = 8.0
client Charset = UTF-8
* tds version : 접속 하고자 하는 SQL Server 버젼에 맞게 수정.
(3) MS-SQL 접속 테스트
# /usr/local/freetds/bin/tsql -H ip주소 -p 1433 -U db계정 -P 비밀번호
(4) mssql 모듈 설치
# cd /usr/local/src/php-5.2.9/ext/mssql
# /usr/local/php/bin/phpize
# ./configure –with-mssql=/usr/local/freetds –with-php-config=/usr/local/php/bin/php-config
# make
# cp .libs/mssql.so /PHP Extension 디렉토리
# vi /usr/local/php/lib/php.ini
extension=mssql.so <—- 추가
# apache 재구동
(5) 모듈 설치 확인 – phpinfo의 mssql 항목 확인 및 php -i 옵션으로 확인
# /usr/local/php/bin/php -i | grep mssql
mssql
mssql.allow_persistent => On => On
mssql.batchsize => 0 => 0
mssql.charset => no value => no value
mssql.compatability_mode => Off => Off
mssql.connect_timeout => 5 => 5
mssql.datetimeconvert => On => On
mssql.max_links => Unlimited => Unlimited
mssql.max_persistent => Unlimited => Unlimited
mssql.max_procs => Unlimited => Unlimited
mssql.min_error_severity => 10 => 10
mssql.min_message_severity => 10 => 10
mssql.secure_connection => Off […]


서버관리자(mysql 접속 가능해야함)에게 아래 작업을 요청하시면 됩니다.
먼저 메일서버에 접속하셔서 아래 설정파일에서 nmail2 DB에 접속 가능한 아이디, 비밀번호를 확인합니다.
Linux Server)
/home/nmail2/nmail/include/global_db.php
Windows Server
C:\NmailPHP\nmail\include\global_db.php
주의) 설치 드라이브는 서버에 따라 다를 수 있습니다.
예제)
$G_SYS[DB_USER] = “디비 계정 아이디”;
$G_SYS[DB_PASSWORD] = “디비 계정 비밀번호”;
위 디비 계정으로 MySQL DB에 접속하신 후 nmail2 DB 에서 아래 쿼리문을 통해 비밀번호를 초기화하면 됩니다.
참고로 아래 예제는 도메인이 passkorea.net 이고, 아이디가 postmaster 일 경우이므로 사용중인 도메인/아이디로 수정하여 쿼리문을 실행하셔야 합니다.
SELECT d_no FROM nmail_domain WHERE d_name =’passkorea.net’;
UPDATE nmail_member SET m_pwd=MD5(‘새비밀번호’) WHERE m_id=’postmaster’ AND d_no=’1′;
주의) d_no 는 도메인별 고유번호로 nmail_domain 테이블에서 확인이 가능합니다.
참고) 웹메일에 로그인후 ‘비밀번호’를 1회이상 변경하셔야 메일엔진에도 적용되어 SMTP/POP3 사용시 문제가 생기지 않습니다.
출처 : http://211.170.106.66/Board/ViewDoc.aspx?brdNo=17&docNo=41805&page=40&brdType=&schType=&schValue=