RadarURL
Skip to content
2014.04.07 10:18

Nginx SERverSETting

조회 수 1680 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

error _log access_log 에 대한 설정
memory_limit
php.ini 에서 error_log 계속 생성하지않도록
-------------------------------------------------------
/etc/rc.d/init.d/network restart 네트워크 재시작
-------------------------------------------------------

innoDB에 대한 설정 하지 말것!
"I commented out the innodb settings in your /etc/my.cnf, and restarted
mysql, and it seems to be working now. You can't change things like the log file
size in your my.cnf when there are existing innodb databases on your server, or
mysql will see that the file is the wrong size and disable innodb."-hivelocity innodb테이블삭제사건

-------------------------------------------------------

제로보드 인증세션 DB사용 안함! 동접자많은 사이트에서 서버디비에 기록하면 느리다.

-------------------------------------------------------

--Pre Main Include(Include Editor)에서,
KeepAlive Off
MaxKeepAliveRequests 10000
KeepAliveTimeout 1

<IfModule prefork.c>
ServerLimit 2048
MaxClients 2048
</IfModule>

#define HARD_SERVER_LIMIT 2048
---


Apache Global Congifuration
StartServers 75
minspareservers 100
maxspareservers 5000
ServerLimit This directive is not available with Apache 1.3
maxclients 2048
MaxRequestsPerChild 100000
KeepAlive Off
KeepAliveTimeout 1
MaxKeepAliveRequests 0
Timeout 30
★★★ eAccelerator ★★★필수! 속도 짱!

httpd.conf
KeepAlive on/off 확인
KeepAlive TimeOut

추가서비스
innoDB
GDLibrary+freetype
EAccelerator
max_client = 1024

물리적으로 서버에 장착된 메모리가 1G라고 가정하죠...
php.ini 에서,
memory_limit = 512M
위와 같이 512M로 설정했다는 것은 무엇을 의미하는가?
그것은 개별적인 PHP파일을 실행하는데 있어서 각 PHP페이지마다 최대 512M까지 사용할 수 있도록 제한한다는 것이다.
그렇다면, 만약에 512M가 소요되는 어떤 PHP파일이 있다고 친다면, 이 파일을 동시에 2명이 같이 호출하게 되면, 순간적으로 1G가 넘게 되기때문에 에러가 나거나 나머지 사람들은 그 페이지를 보기위해 기다려야 한다는 이야기다. (서버에 장착된 메모리가 1G이니까)
그래서 이게 높으면 이런 단점도 있다는 것을 염두에 두어야 할것이다.

max_execution_time = 30 ; 원하는 시간(초) 으로 변경
max_input_time = 60 ; 원하는 시간(초) 으로 변경, 파일용량이 올라 가는 시간을 계산 해서.
memory_limit = 16M ; 원하는 용량으로 변경
post_max_size = 8M ; 원하는 용량으로 변경
upload_max_filesize = 2M ; 원하는 용량으로 변경

php.ini 에 output_buffering = Off를 output_buffering = 4096 와 같이 한다음에 아파치 리스타트 해보시고
속도 체크해보세요. 속도 변화가 없다면 40960정도 주고 리스타트 해보세요
1.
for ($i=0; $i<5000; $i++)
echo "지금은 테스트 중입니다.n";

2.
for ($i=0; $i<5000; $i++)
$result .= "지금은 테스트 중입니다.n";
echo $result;

php환경설정에 output_buffering 라고 있습니다.
기본은 off로 되어 있고, on으로 했을 경우에는 1번이 빠르고 off(기본)으로 했을땐 2번이 처리성능이 빠릅니다.
이유는 on으로 하고서 2번과 같이 코딩하게 되면 버퍼가 두개나 되기 때문에 당연히 처리속도가 늦습니다.


my.cnf 설정...
[mysqld]

innodb_buffer_pool_size = 1024M
innodb_additional_mem_pool_size = 32M
innodb_lock_wait_timeout = 50
max_connections = 1024
max_connect_errors = 1000000
max_user_connections = 500


-----------------------------------------08232010

[mysqld]
set-variable = max_connections = 2048
safe-show-database

innodb_buffer_pool_size = 2048M
innodb_additional_mem_pool_size = 512M
innodb_lock_wait_timeout = 50
set-variable = max_connect_errors = 1000000
set-variable = max_user_connections = 2048
set-variable = table_cache = 4096
set-variable = max_allowed_packet = 1M
set-variable = wait_timeout = 50

-----------------------------------------08242010

[mysqld]
max_connections = 1024
max_user_connections = 1024
wait_timeout = 20
connect_timeout = 10
max_connect_errors = 100000
table_cache=4096

innodb_buffer_pool_size = 2000M
innodb_additional_mem_pool_size = 50M
innodb_lock_wait_timeout = 20
innodb_file_per_table


[mysqldump]
quick
max_allowed_packet = 64M


-------------------------------------------09012011
모든 my.cnf 설정삭제


-------------------------------------------01092011
[mysqld]
set-variable = max_connections=2048
log-slow-queries
safe-show-database

innodb_buffer_pool_size = 10240M
innodb_additional_mem_pool_size = 64M
innodb_lock_wait_timeout = 30

-----------------------------------------------------
KeepAlive On
MaxKeepAliveRequests 10000
KeepAliveTimeout 1

<IfModule prefork.c>
MaxClients 2048
ServerLimit 2048
</IfModule>

#define HARD_SERVER_LIMIT 2048
-------------------------------------------------------


07302011 아파치설정


Start Servers 1000
Minimum Spare Servers 1000
Maximum Spare Servers 5000
Max Clients (maximum: 2,048) 2048
Max Requests Per Child 100000
Keep-Alive Off
Keep-Alive Timeout 1
Max Keep-Alive Requests 100
Timeout 10

------------------------------------------------------

mysql cpu 점유율이 높거나 db 연결이 안 좋을 때

mysql 이 cpu를 꾸준히 점유하고 있으며, 서버의 부하도 많이 발생한다.
물론 log 를 확인하는 방법이 가장 기본적으로 해야할 일이다. 그리고 혹시 slow query 가
얼마나 쌓이는지 확인해 보는것도 좋다.
그리고 mytop 이나 mysqlreport 등의 실시간 모니터링 프로그램을 이용할 수도 있다.
* slow query 에 관해 간단히 알아보면 다음과 같다.
: slow query 란 DBMS 가 client로부터 요청받은 query를 수행할때 일정시간 이상 수행
되지 못한 query를
칭하는 것으로 slow query 가 많다면 당연히 성능저하가 발생된다.
mysql 을 사용할때 mysqld 가 cpu를 유난히 많이 점유한다거나 DB의 접속이 원활하지
않다면
slow query를 이용하여 원인 분석에 도움이 될 수도 있다.
log 를 쌓이게 하기 위해 mysqld 실행시에 다음 옵션을 함께 추가하거나, my.cnf 파일을
직접 수정하여
mysqld 를 실행할 수도 있다.
1) mysqld 작동시 slow query 옵션 추가
#]/usr/local/mysql/bin/mysqd_safe --log-slowqueries=/
usr/local/mysq/data/mysql_slow.log &.....
2) my.cnf 수정
#]vi /etc/my.cnf
log_slow_queries=/usr/local/mysql/data/mysql_slow.log => 로그 저장 경로
long_query_time=1 => 쿼리가 2초이상 지속될때 로그에 기록
* cache size 수정하기
set-variable = query_cache_size = 100M : 100M 로 cache size 수정
cache 수정후 mysql prompt 상에서 다음과 같이 확인 가능
mysql> use mysql;
Database changed
mysql> show global status like '%Qcache%';
+-------------------------+----------+
| Variable_name | Value |
+-------------------------+----------+
| Qcache_free_blocks | 13 |
| Qcache_free_memory | 33384736 |
| Qcache_hits | 283 |
| Qcache_inserts | 156 |
| Qcache_lowmem_prunes | 0 |
| Qcache_not_cached | 6 |
| Qcache_queries_in_cache | 37 |
| Qcache_total_blocks | 106 |
+-------------------------+----------+
8 rows in set (0.00 sec)
mysql> show global variables like '%query_cache%';
+------------------------------+----------+
| Variable_name | Value |
+------------------------------+----------+
| have_query_cache | YES |
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 33554432 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
+------------------------------+----------+
6 rows in set (0.00 sec)
slow query가 쌓이도록 수정후 정상적으로 적용되었는지 확인하기 위해 mysql
command prompt 에서
다음과 같이 실행한다.
#mysql>show global variables WHERE Variable_name LIKE ‘l%’;
+———————————+—————————+
| Variable_name | Value |
+———————————+—————————+
| language | /usr/share/mysql/korean
| large_files_support | ON |
| large_page_size | 0 |
| large_pages | OFF |
| license | GPL |
| local_infile | ON |
| locked_in_memory | OFF |
| log | OFF |
| log_bin | OFF |
| log_bin_trust_function_creators | OFF |
| log_error | |
| log_slave_updates | OFF |
| log_slow_queries | ON |
| log_warnings | 1 |
| long_query_time | 3 |
| low_priority_updates | OFF |
| lower_case_file_system | OFF |
| lower_case_table_names | 0 |
+———————————+—————————+
이제 쌓이는 log를 확인하여 어디에서 문제가 발생되는지 확인하고, 이를 수정해야 할 것
이다.
/usr/local/mysql/data/mysql-bin.00000 슬로우쿼리를 slowquery.log 에 덤프하여 저장
ex)/usr/local/mysql/bin/mysqldumpslow -v /usr/local/mysql/data/mysql-bin.00000
> slowquery.log
* 참고 mysql 명령어
extended-status MySQL : 데이터베이스의 현재 상황을 보여준다.
flust-hosts : MySQL에 캐시된 모든 포스트를 초기화한다.
flust-logs : MySQL의 로그 파일을 새로 작성하며 초기화한다.
flust-status : MySQL의 상태정보를 초기화한다.
flust-tables : MySQL에 캐싱된테이블 정보를 초기화한다.
flust-thread : 쓰레드 캐시에 저장된 쓰레드를 초기화한다.
flust-privileges : 권한정보 테이블을 다시 읽는다.
kill id : 특정 MySQL 프로세스를 죽인다.
Processlist : 현재 MySQL 프로세스 목록은 본다.
Refresh : 현재 캐시되어 있는 모든 테이블을 초기화하고 log 파일은 새로 만든다.
Variables 설정 가능한 모든 변수를 보여줍니다.
SHOW VARIABLES
MySQL은 설정 가능한 값들을 엄청나게 많이 가지고 있으며 SHOW VARIABLE 명령을
통해 현재 설정되어 있는 모든 값을 볼 수 있다. <화면 1>은 SHOW VARIABLES로 통해
살펴본 설정이다.
SHOW VARIABLES로 볼 경우 총 207개 정도의 변수가 표시된다. 오히려 너무 많아서 원
하는 값을 찾기가 힘들 정도이다. 그래서 SHOW VARIABLES 명령 뒤에 LIKE ‘%키워드%
’를 사용하면 원하는 값만을 볼 수 있다.
SHOW STATUS
MySQL은 내부적으로 동작 상황에 대한 실시간 통계 정보를 가지고 있다. SHOW
STATUS는 이러한 통계 정보를 보기 위한 명령이다. 모니터링할 때 가장 기본이 되는 것
이 바로 앞에서 설명한 SHOW VARIABLES의 정보와 SHOW STATUS의 정보이다. 웹
기반의 모니터링 툴을 비롯한 각종 모니터링 툴들이 바로 이 두 명령어를 통해 나온 정보
를 조합해 사용하는 것이다. SHOW STATUS도 SHOW VARIABLES와 마찬가지로 LIKE
‘%키워드%’ 사용해 원하는 값만을 볼 수 있다.
SHOW PROCESSLIST
현재 동작하고 있는 MySQL 데이터베이스 서버의 동작중인 모든 쓰레드와 유저 커넥션 정
보를 보기 위한 명령어이다. 이를 통해 얻어진 정보로 시스템 자원을 지나치게 많이 사용
하거나 잘못된 수행을 하고 있는 프로세스를 죽일 수 있다.
SHOW TABLE/TABLE STATUS/INDEX/INNODB STATUS
SHOW TABLE 명령은 현재 데이터베이스에 존재하는 테이블에 대한 기본적인 정보를 보
여주며 SHOW TABLE STATUS는 각 테이블의 생성 일자, 테이블 크기, 인덱스 크기 등
구체적인 정보를 보여준다. 하지만 이 때 주의할 점이 하나 있는데 바로 SHOW TABLE
STATUS의 경우 테이블의 스토리지 엔진이 MyISAM인 경우에만 정확한 정보를 표시하
며 InnoDB의 경우에는 부정확한 정보를 보여준다는 것이다. InnoDB 스토리지 엔진으로
되어 있는 테이블은 SHOW INNODB STATUS로 구체적인 정보를 확인할 수 있으며
SHOW INDEX를 통해 테이블의 인덱스에 대한 각종 정보를 볼 수 있다

↓08/11/2011 설정-----------------------------------------
[mysqld]
set-variable = max_connections=5000
safe-show-database
log-slow-queries=/home/xxxxx/public_html/slow_query.log

# Caches and Buffer Sizes
key_buffer = 516M
max_allowed_packet=16M
table_cache = 10000
sort_buffer_size = 16M
read_buffer_size = 16M
read_rnd_buffer_size = 4M
record_buffer = 1M
myisam_sort_buffer_size = 128M
thread_cache = 128
query_cache_limit = 4M
query_cache_type = 1
query_cache_size = 64M
key_buffer = 1024M
join_buffer = 2M
table_cache = 1024

#Time Outs
interactive_timeout = 50
wait_timeout = 50
connect_timeout = 10

# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8

# Maximum connections allowed
max_user_connections = 5000
max_connect_errors = 1000000

# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 4096M
innodb_additional_mem_pool_size = 32M
innodb_log_file_size = 100M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50


----------------------------------------------------------------------------------------------

페이지 실행 에러는

아래와 같이 실행 시간 설정값을 변경
ini_set("max_execution_time", 120);


방법2 .. ( 출처 : http://blog.naver.com/ch0g0ry?Redirect=Log&logNo=80025180368 )
php 세션 유지 시간 연장
session_start();
session_cache_limiter('private');
ini_set("session.cookie_lifetime", "86400");
ini_set("session.cache_expire", "86400");
ini_set("session.gc_maxlifetime", "86400");

아래와 같이 php 소스 제일 상단에 추가해보시기 바랍니다.

----------------------------------------------------------------------------------------------

일반적으로 로그인을 유지시키기 위한 방법으로 Cookie 나 Session 을 사용하는데
쿠키는 정해놓은 시간동안 유지되면서 로그인을 체크 하지만 세션을 사용하게 되면
일정시간 지난후 로그인이 풀리는 것을 볼수 있다.
이것은 서버에서 설정을 해 놓은 것으로 기본 1440초(24분) 로 설정되어져 있다.

session 의 유지시간을 늘이고 싶을때는 1440 을 0 으로 하면 무제한. 그리고 초단위로 시간을
설정해서 시간을 늘일수 있다.

세션 가비지 컬렉터 시간설정
php.ini
session.gc_maxlifetime = 1440

단위 : 초
무제한설정 : 0
[출처] 세션의 유지시간 설정.|작성자 네오안토
세션 자동 실행하셨다면 제일 위에줄 삭제해보시구요.

----------------------------------------------------------------------------------------------

서버컴파일.성공할때까지,마지막메시지가 나올때까지 기다릴것.성공했는지 build history확인할 것.

Apache 1.3
PHP 5.2.9
Fonrpage
ModSuPHP
EAccelerator for PHP
IonCube Loader for PHP
Mod Security
Suhoshi for PHP
Zend Optimizer/Guard Loader for PHP

Asis
Env
Expires
Fileprotect
Prontpage
Headers
Mod SuPHP
Proxy
Raise Hard Server Limit
Unique Id

EAccelerator for PHP
IonCube Loader for PHP
Mod Security
Suhosin for PHP
Xcache for PHP
Zend Optimizer/Guard Loader for PHP

Bcmath
CGI
Calendar
CurlSSL
FTP
GD
Gettext
Iconv
Imap
Magic Quotes
Mbregex
Mbstring
Mcrypt
Mysql
Mysql of the system
Openssl
PDO
POSIX
Path Info Check
Pear
Sockets
TTF
XSL
Zlib
Save my profile with appropriate PHP5 options set so that...

----------------------------------------------------------------------------------------------

/var/log
/usr/local/apache/logs
/usr/local/apache/domlogs
/usr/local/cpanel/logs

----------------------------------------------------------------------------------------------

memory 부족으로 인한 Server Load가 올라갔을때 lowmem_reserve 에러

이런 메세지가 나오면 메모리 부족으로 인해
커널단에서 아파치 process를 죽여서 메모리를 확보한 것이다.
이런경우 아파치 옵션을 변경해주어서 메모리를 확보해줄 수있다.

httpd.conf를 열어보면

MaxRequestsPerChild 0 요렇게 되어 있는것을 볼수 있을 것이다.

요렇게 되어 있는경우 child process가 종료없이 계속 실행되고 있는 것인데

그런경우 서버 환경에 맞게 설정값을 변경해 주면된다.

그러면 각각 child process가 처리 할 request 값을 제한 하여 MaxRequestsPerChild 개수를 처리 한 후, child process는 종료 되는데 이로서 memory leakage 에 의한 시스템 성능저하를 막을 수 있고 무한루프에 의한 server load를 감소시킬수 있다.

----------------------------------------------------------------------------------------------
hyper theading check/server cup #

# cat /proc/cpuinfo
----------------------------------------------------------------------------------------------
remoteMySQL사용시 firewall에 whitelist 아이피 등록
----------------------------------------------------------------------------------------------
윈도위기반 nginx 사용시 죽는 경우,
1. nginx.conf를 열어서 보시면 worker_processes 1; 라는 부분이 있습니다.
매뉴얼 상대로라면 서버CPU개수를 적어주라 되어 있습니다만 이 값을 매뉴얼만 믿고 2개 또는 그 이상으로 값을 올리게 되면 죽는 문제가 발생하더군요.
그러니 이 값은 윈도우기반에선 절대 변경하지 마시길 바랍니다.
worker_connections 1024; 이 값은 더 올리셔도 무방합니다^^

2. NGXMP폴더에 보시면 start_server.bat가 있습니다.
이 파일을 에디터로 열어보시면
set PHP_FCGI_CHILDREN=5
set PHP_FCGI_MAX_REQUESTS=1000
라는 값이 있는데 이 값도 문제를 일으키는 원인이었습니다.
이 값들은 과감하게 삭제를 하고 그 자리에 아래의 값을 넣어주시길 바랍니다.
set PHP_FCGI_MAX_REQUESTS=0

아파치완 다르게 php-fastcgi 로 웹서버 엔진과 php가 분리돼서 돌아감

http://nginxcp.com

WHH 에 플러그인으로 꼭 설치할 것!!!
----------------------------------------------------------------------------------------------

SYN Flooding, DoS 공격과 Ping을 막는 방법

외부에서 ping이나 SYN 패킷을 대량으로 보내서 서비스 거부 공격을 시도하는 경우가 종종 있다. 시스템 부하에 이르지 않으면 서비스엔 지장이 없지만 그런 패킷 때문에 자원을 갉아먹는 것도 사실이고, 신경 쓰이는 것도 사실이다.

iptables을 이용해서 ping을 막는 방법도 있지만 SYN Flooding 공격까지 함께 막아보자. echo만 사용해서 간단하게 할 수 있다

echo 1 > /proc/sys/net/ipv4/tcp_syncookies

위 명령은 커널 설정을 조정하는 것으로 커널 레벨에서 차단을 하게 된다.

명령어로 하고 싶다면

sysctl -w net.ipv4.tcp_syncookies=1

로 하면 된다. 어떤 것을 사용해도 상관없다.

ping을 차단하려면 다음 명령을 사용한다

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

ping에 대한 브로드캐스트, 멀티캐스트를 차단하려면 다음과 같이 설정한다.

echo 1 > /proc/sys/ncet/ipv4/icmp_echo_ignore_broadcasts

반대로 TCP SYN을 허용하거나 ping을 허용하고 싶다면 echo 1 대신에 echo 0을 사용하면 된다.

echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

이렇게하면 ping을 다시 허용한다.

----------------------------------------------------------------------------------------------
staminus.net 08/31/2011

[mysqld]
skip-name-resolve
set-variable = max_connections=500
log_slow_queries
innodb_buffer_pool_size = 8192M
table_cache = 1000
query_cache-size = 64M
wait_timeout = 5
connect_timeout = 5
----------------------------------------------------------------------------------------------
DNS설정

If you start getting ndc errors when performing DNS related tasks in WHM, you should login to your server via SSH and fix it.

At the command line, run the following;
cd /scripts
./updatenow (/usr/local/cpanel/scripts/upcp)
./fixndc

/scripts/fixndc
/scripts/fixrndc
/scripts/fixnamed

/scripts/upcp (this is the script that runs every day and by calling the /scripts/fixrndc, creates a corrupt /etc/rndc.key)


Then come back to restart BIND

----------------------------------------------------------------------------------------------
만약 재부팅후에도 호스트네임을 변경되게 하려면 /etc/sysconfig/network파일의 HOSTNAME부분을 변경

----------------------------------------------------------------------------------------------
현재 접속 커넥션 수 알아내기
이 명령을 실제로 연결되어있는 커넥션 수를 알아내기에 적합합니다. 서버상에서 실제로 처리해야 하는 수를 의미합니다.
netstat -an | grep :80.*ESTABLISHED | wc -l

현재 접속 사용자(머신/디바이스) 수 알아내기
이 명령은 현재 동시 접속중인 사용자수를 알아내기에 적합합니다. 하나의 사용자가 동시에 여러개의 커넥션을 사용할 수 있는데 이것을 하나로 처리를 합니다.
netstat -an | grep :80.*ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq | wc -l

----------------------------------------------------------------------------------------------
WHM에서 ip보기 안될때 check your /etc/ips
/etc/init.d/ipaliases restart

----------------------------------------------------------------------------------------------
호스트네임/네임서버 설정
1. Change Hostname In WHM
Select Change Hostname from the Server Setup section on the menu to the left.

Enter the new hostname in the box and click 'Change'. Hostnames should have two dots in them and should be setup as if they're a subdomain of your server's main domain name. So, if your server's main domain is mybox.com, your hostname could be something like server01.mybox.com.

WHM then prompts you to add an 'A Entry for your hostname' if you don't already have one (see bnext point)

2. Add an 'A' Entry
You can do this by going to the DNS Functions area of the left menu and selecting Add an A Entry for your Hostname. It will ask you to confirm the details: press Add the entry to do so.

3. Manual Checks
Now this didn't work fully when we did it, so we had to check some stuff manually (none, some or all of these may need ameding in your environment). SSH to your server and do the following:

'hosts' file
Type: pico /etc/hosts and check that the entries are as follows -

127.0.0.1 localhost
xxx.xxx.xxx.xxx server01.mybox.com server01

- replacing xxx.xxx.xxx.xxx with your server's IP address and adding your hostname after it.

Hit CTRL+X and reply 'y' to exit pico and save the file.

Apache
Type: pico /etc/httpd/conf/httpd.conf, scroll down and find the ServerName entry and make sure your fully qualified hostname (i.e. server01.mybox.com) is specified after it.

While you're there, you may want to change the ServerAdmin e-mail (just above the ServerName) too.

Hit CTRL+X and reply 'y' to exit pico and save the file.

wwwacct.conf
Type: pico /etc/wwwacct.conf, scroll down and find the HOST entry and make sure your fully qualified hostname (i.e. server01.mybox.com) is specified after it.

Hit CTRL+X and reply 'y' to exit pico and save the file.

resolv.conf
Type: pico /etc/resolv.conf, and check that the first two lines read as follows -

domain mybox.com
search mybox.com

Replacing mybox.com with your server's primary domain name and adding your own nameservers to the file.

Hit CTRL+X and reply 'y' to exit pico and save the file.

network
Type: pico /etc/sysconfig/network, and check that HOSTNAME line specifies your host name.

Hit CTRL+X and reply 'y' to exit pico and save the file.

--------------------

You may need to reboot your box to make hostname changes take effect.

----------------------------------------------------------------------------------------------

DB 백업하기
형식) mysqldump -u사용자이름 -p비밀번호 데이터베이스이름 > 파일이름

$ mysqldump -uroot -p12345 mydb > ./backup.sql
☞ SSH(보안텔넷)에서 사용자이름 root, 비밀번호 12345으로 접속하여 mydb의 내용을 backup.sql 파일에 저장함


DB 복원하기
형식) mysql -u사용자아이디 -p비밀번호 데이터베이스이름 < 파일이름

$ mysql -uroot -p12345 mydb < ./backup.sql
☞ backup.sql의 내용을 mydb에 복원함


----------------------------------------------------------------------------------------------

nginx 설정

user nobody;
# no need for more workers in the proxy mode
worker_processes 16;
error_log /var/log/nginx/error.log info;
worker_rlimit_nofile 30480;
events {
worker_connections 10240; # increase for busier servers
use epoll; # you should use epoll here for Linux kernels 2.6.x
}
http {
server_name_in_redirect off;
server_names_hash_max_size 163840;
server_names_hash_bucket_size 16384;
include mime.types;
default_type application/octet-stream;
server_tokens off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 0;
gzip on;
gzip_vary on;
gzip_disable "MSIE [1-6].";
gzip_proxied any;
gzip_http_version 1.1;
gzip_min_length 1000;
gzip_comp_level 6;
gzip_buffers 16 8k;
# You can remove image/png image/x-icon image/gif image/jpeg if you have slow CPU
gzip_types text/plain text/xml text/css application/x-javascript application/xml application/xml+rss text/javascript application/atom+xml;
ignore_invalid_headers on;
client_header_timeout 60;
client_body_timeout 60;
send_timeout 60;
reset_timedout_connection on;
connection_pool_size 256;
client_header_buffer_size 256k;
large_client_header_buffers 4 256k;
client_max_body_size 200M;
client_body_buffer_size 128k;
request_pool_size 32k;
output_buffers 4 32k;
postpone_output 1460;
proxy_temp_path /tmp/nginx_proxy/;
client_body_in_file_only on;
log_format bytes_log "$msec $bytes_sent .";
include "/etc/nginx/vhosts/*";
}

----------------------------------------------------------------------------------------------
서버세팅 09-10-2011

아파치
Start Servers 5
Minimum Spare Servers 32
Maximum Spare Servers 64
Server Limit 500
Max Clients 250
Max Requests Per Child 10000
Keep-Alive Off
Keep-Alive Timeout 1
Max Keep-Alive Requests 10000
Timeout 30

my.cnf connection=500

엔진엑스
user nobody;
# no need for more workers in the proxy mode
worker_processes 8;
error_log /var/log/nginx/error.log info;
worker_rlimit_nofile 40960;
events {
worker_connections 10240; # increase for busier servers
use epoll; # you should use epoll here for Linux kernels 2.6.x
}
http {
server_name_in_redirect off;
server_names_hash_max_size 20480;
server_names_hash_bucket_size 2048;
include mime.types;
default_type application/octet-stream;
server_tokens off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 0;
gzip on;
gzip_vary on;
gzip_disable "MSIE [1-6].";
gzip_proxied any;
gzip_http_version 1.1;
gzip_min_length 1000;
gzip_comp_level 6;
gzip_buffers 16 8k;
# You can remove image/png image/x-icon image/gif image/jpeg if you have slow CPU
gzip_types text/plain text/xml text/css application/x-javascript application/xml image/png image/x-icon image/gif image/jpeg application/xml+rss text/javascript application/atom+xml;
ignore_invalid_headers on;
client_header_timeout 30;
client_body_timeout 30;
send_timeout 30;
reset_timedout_connection on;
connection_pool_size 512;
client_header_buffer_size 512k;
large_client_header_buffers 8 512k;
client_max_body_size 400M;
client_body_buffer_size 256k;
request_pool_size 64k;
output_buffers 8 64k;
postpone_output 2920;
proxy_temp_path /tmp/nginx_proxy/;
client_body_in_file_only on;
log_format bytes_log "$msec $bytes_sent .";
include "/etc/nginx/vhosts/*";
}

----------------------------------------------------------------------------------------------
gateway issues may be because of keepalive, or max request or similar conf stuff.
----------------------------------------------------------------------------------------------

nginx install...
cd /usr/local/src
wget http://nginxcp.com/latest/nginxadmin.tar
tar xf nginxadmin.tar
cd publicnginx
./nginxinstaller install

*설치시 에러날때
cd /usr/local/src
wget http://nginxcp.com/latest/nginxadmin.tar
tar xf nginxadmin.tar
cd publicnginx
./pythonfix
After that you can run installer as per bellow,
./nginxinstaller install

nginx uninstall...
cd /usr/local/src/publicnginx
wget http://nginxcp.com/latest/nginxadmin.tar
tar xf nginxadmin.tar
cd publicnginx
./nginxinstaller uninstall

cd /usr/local/src/publicnginx

nginx기본설정
user nobody;
# no need for more workers in the proxy mode
worker_processes 2;
error_log /var/log/nginx/error.log info;
worker_rlimit_nofile 20480;
events {
worker_connections 5120; # increase for busier servers
use epoll; # you should use epoll here for Linux kernels 2.6.x
}
http {
server_name_in_redirect off;
server_names_hash_max_size 10240;
server_names_hash_bucket_size 1024;
include mime.types;
default_type application/octet-stream;
server_tokens off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 0;
gzip on;
gzip_vary on;
gzip_disable "MSIE [1-6].";
gzip_proxied any;
gzip_http_version 1.1;
gzip_min_length 1000;
gzip_comp_level 6;
gzip_buffers 16 8k;
# You can remove image/png image/x-icon image/gif image/jpeg if you have slow CPU
gzip_types text/plain text/xml text/css application/x-javascript application/xml image/png image/x-icon image/gif image/jpeg application/xml+rss text/javascript application/atom+xml;
ignore_invalid_headers on;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
reset_timedout_connection on;
connection_pool_size 256;
client_header_buffer_size 256k;
large_client_header_buffers 4 256k;
client_max_body_size 200M;
client_body_buffer_size 128k;
request_pool_size 32k;
output_buffers 4 32k;
postpone_output 1460;
proxy_temp_path /tmp/nginx_proxy/;
client_body_in_file_only on;
log_format bytes_log "$msec $bytes_sent .";
include "/etc/nginx/vhosts/*";
}
----------------------------------------------------------------------------------------------
호스트네임 설정/서버이동
We have investigated about your issue and it seems the domain cyouat.com is pointing to 69.197.7.217 .
Please update the A record to point to ip 76.73.4.90 for the hostname playground in the server 69.197.7.217
and Please change the name servers ips at your registrar end to 76.73.4.90=ns1.cyouat.com,76.73.4.91=ns2.cyouat.com as it is pointing to the old one.
Please update us if you have any issues further.
----------------------------------------------------------------------------------------------
리눅스 명령어
# df -i 디스크 용량확인 -h
----------------------------------------------------------------------------------------------
index of/ 나오지 않게 설정
Forbidden
You don't have permission to access /classes/ on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
----------------------------------------------------------------------------------------------

locate 확인
# yum install mlocate
# updatedb

----------------------------------------------------------------------------------------------

ffmpeg auto install 설치 후,
# yum install ffmpeg ffmpeg-devel
그리고, ffmpeg-php 설치

----------------------------------------------------------------------------------------------

http://www.abc.com/mydir/밑에 있는 디렉토리 및 파일들을 모두 받고 싶으시면,
wget -rnd URL
예) wget -rnd http://www.abc.com/mydir/

----------------------------------------------------------------------------------------------
세션삭제

rm sess* -f
rm _1* -f rm _2* -f rm _3* -f rm _4* -f rm _5* -f rm _6* -f rm _7* -f rm _8* -f rm _9* -f rm _0* -f

cd /tmp/nginx_client/
rm 0001* -f rm 0002* -f rm 0003* -f rm 0004* -f rm 0005* -f rm 0006* -f rm 0007* -f rm 0008* -f rm 0009* -f rm 0010* -f
rm 00001* -f rm 00002* -f rm 00003* -f rm 00004* -f rm 00005* -f

----------------------------------------------------------------------------------------------
cron 설정

crontab -e from the command line
/etc/crontab

cd /var/spool/cron/root
5 */6 * * * rm -f /usr/local/apache/logs/access_log
5 */6 * * * rm -f /usr/local/apache/logs/error_log
5 */6 * * * rm -f /usr/local/apache/logs/suphp_log

----------------------------------------------------------------------------------------------
SQL, nginx 모니터링에 체크

----------------------------------------------------------------------------------------------

원인이 다양하게있다는 500 internal server error 입니다. 도와주세요.


사진 업로드 사이트인데

사진 업로드시 이미지 크기가 120 * 90 보다 크면 이미지 썸네일을 생성하는데요.

이번에 썸네일을 새로운 크기로 다시 생성하기 위해서

기존에 업로드된 모든 이미지 파일들(약 400개)을 새로 썸네일 생성을 하기로 했습니다.

imagecreatefrom 시리즈 함수를 사용해서

업로드된 이미지들의 썸네일을 생성하게 했는데요.

"select img_path from img" 쿼리를 통해서

업로드된 이미지의 경로를 불러온 다음에(약 400개)

썸네일을 만드는 기존의 함수를 이용해서 썸네일을 생성하는 로직을 완성후 실행을 시켰는데요.

갑자기 어느정도의 썸네일을 만들더니 500 internal server error가 발생하더군요.

그 현상이 발생한 뒤부터는 이 페이지에서는 썸네일생성하는 함수를 사용하기만하면

500 internal server error 를 내뱉더군요. 썸네일 생성함수가 없을 경우에는

정상 작동합니다. 더불어 다른 페이지들도 영향을 받았는지

파일크기가 어느정도 이상 되는 이미지 파일은 썸네일함수 실행시에

500 internal server error를 발생하더군요.

이 경우 어떻게 조치를 해야할까요?
펭귄™EyesOnly 07-06-05 00:00 |소스보기
예전 기억에 의하면 썸네일 생성시 에러는 코드상의 문제가 없다면
하드가 꽉찼다거나,
이미지 파일을 찾을수 없는 경우(손실되거나 경로나 화일명의 오류)가 주류였습니다.
위의 내용에 대한 에러 메세지가 없다면
시간이 오래걸려서 그럴수도 있으니 설정 파일에서 시간 늘려보세요.
돈이최고 07-06-05 01:30 |소스보기
set_time_limit(0);
해결완료.
감사합니다. ㅎㅎ

----------------------------------------------------------------------------------------------

A PHP memory limit of 32MB is the minimum requirement for Drupal 7 (16MB for Drupal 6), and 64MB is recommended. Some sites may need more than 64MB if they are using certain contributed modules such as Views and Panels. Memory limits of 128MB and higher are not unusual. There are several techniques to increase the PHP memory limit and you only need to use one of them. The right one for you depends on your system configuration.

 

출처 : http://savelinkas.blogspot.com/2012/04/serversetting.html

TAG •
?

List of Articles
번호 제목 글쓴이 날짜 조회 수
21 NGXMP 16.0 버전에서 Log에 upstream timed out (10060: 연결된 구성원으로부터 응답이 없어 연결하지 못했거나, 호스트로부터 응답이 없어 연결이 끊어졌습니다) while connecting to upstream, upstream: "fastcgi://127.0.0.1:9000" JaeSoo 2014.04.11 2944
20 504 Gateway Time-out using Nginx JaeSoo 2014.04.09 1835
19 Nginx, FastCGI 지시어 및 설명 (504 Gateway Time-out 관련 설정 등) JaeSoo 2014.04.09 2389
18 Nginx Log에서 upstream timed out (110: Connection timed out) while reading response header from upstream JaeSoo 2014.04.07 1911
17 nginx 504 gateway time-out JaeSoo 2014.04.07 1571
» Nginx SERverSETting JaeSoo 2014.04.07 1680
15 Nginx에서 php 외에 추가로 여러 확장자를 처리 방법 JAESOO 2013.06.10 3024
14 Nginx 설치 (간략) JAESOO 2013.06.10 1718
13 Apache vs Nginx 성능을 밝혀라! JAESOO 2013.05.28 3692
12 아파치 2.4는 러시안 강호 NGINX를 넘을 수 있는가? JAESOO 2013.05.28 2834
11 nginx 재시작 배치파일 JaeSoo 2013.04.11 3264
10 NGINX서버를 통한 다운로드 링크 형성하기(POGOPLUG SERIES 4용) JaeSoo 2013.04.08 5464
9 nginx 에서 htaccess 사용하기 JaeSoo 2013.04.08 2967
8 Nginx HttpRewriteModule JaeSoo 2013.04.07 2820
7 Nginx 와 Apache 동시사용 설정 (영문) JaeSoo 2013.04.07 9033
6 Xpress engine nginx rewrite 설정, 짧은주소 (xpressengine) JaeSoo 2012.11.20 56887
5 NGINX 소개와 사용 현황 JaeSoo 2012.11.19 4886
4 강력한 웹서버 NGINX JaeSoo 2012.11.19 5117
3 Nginx 웹서버 성능분석 JaeSoo 2012.11.19 5929
2 제로보드XE(Xpressengine) Anti-accessXE:기본설정 JaeSoo 2012.07.26 3929
Board Pagination Prev 1 2 Next
/ 2

PageViews   Today : 641   Yesterday : 1,525   Total : 19,712,709  /  Counter Status   Today : 274   Yesterday : 508   Total : 1,394,216
Site Info   Member : 230  /  Total documents : 1,221   New documents : 0  /  Total comments : 24

Edited by JAESOO

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소