ImFe's study

CentOS6/7 설정 정리 본문

Linux

CentOS6/7 설정 정리

ImFe 2021. 1. 18. 12:14

해당 글의 설정들은 절대 권장 값이 아닙니다.

 

 

 

아파치 권장설정?

-.httpd.conf                    // 아파치 설정 파일, vi /etc/httpd/conf/httpd.conf

ServerTokens Prod         // 서버의 필요이상의 정보 노출을 막기 위해 수정. (curl –head UR)

                                        // prod: 웹서버의 이름만 알려줌

                                        // Major: 웹서버의 이름과 Major버전 알려줌

                                        // Minor: 웹서버의 이름과 Minor버전 알려줌

                                        // OS: 웹서버의 이름과 버전, 운영체제까지 알려줌(기본 값)

                                        // Full: 최대한의 정보를 모두 알려줌(웹서버, 운영체제)

ServerLimit    1024     // MaxClients가 생성할 수 있는 최대 프로세스 값.

MaxClients    1024      // 가능한 동시 접속자 수, 자식 프로세스의 최대 값.

DirectoryIndex index.html index.php index.htm  // 웹사이트의 초기페이지 문서로 어떤 파일을 사용할 것인가를 결정하는 지시자. 지정한 목록들이 디렉토리에 없고 Options 지시자에 Indexes또는 All이 지정되어 있다면 디렉토리내의 파일리스트를 보여줌.

반대로 Options 지시자에 Indexes 또는 All이 지정되어 있지 않다면, Not Found라는 에러문서를 로딩한다.

IndexIgnore *                 // 디렉토리목록을 인덱싱할 때 표시할 파일리스트에서 제외할 파일을 설정한다.

Indexes 제거                  // indexes 옵션으로 인해 적합하지 않은 웹문서 주소나 디렉토리를 가리킬 경우 하위 파일들이 목록화되어 나타나는 보안상 문제를 해결

ServerSignature Off       //부가적으로 서버가 생성하는 페이지(에러문서, FTP 디렉토리 목록 등)에 서버 버전과 가상호스트 이름을 포함하지 않게한다(On이면 그렇게 하게 함.)

 

centos 7버전

   -. httpd

ServerTokens Prod

ServerSignature Off

<IfModule mpm_prefork_module>        //prefork방식. 자식 프로세스를 미리 준비해두는 방식. 자식 프로세스는 최대 1024개. 하나의 자식 프로세스당 1개의 스레드 연결. 스레드간 메모리 공유를 하지 않아 독립적사용으로 안정적이나 메모리를 많이 사용함.

    StartServers 40                                  //아파치서버 자식프로세스 개수 지정

    MinSpareServers 25                          //부하가 minspareservers보다 낮아질 경우 최소한 이 개수만큼은 유지하려 한다.

    MaxSpareServers 100                        //부하가 maxspareservers보다 높아질 경우 최대한 이 개수만큼은 유지하려 한다. (절대적인 수치는 아님.)

    ServerLimit 1024                               //구성 가능한 자식 프로세스의 제한 수.

    MaxRequestWorkers 1024                //Serverlimit가 worker방식이 선택된다면 MaxRequestWorkers와 대응됨. 프리포크로 사용할 때, serverlimit값이 이 값보다 높으면 안된다.

    MaxConnectionsPerChild 0              //(=maxrequestchild), 각각의 자식 프로세스가 처리할 요청의 수를 제한. MaxConnectionsPerChild의 개수를 처리한 후 child프로세스는 종료됨. 0으로 설정하면 무한대. 0이외의 값은 메모리 누수를 방지하는데 이용됨.

</IfModule>

IndexIgnore *// 디렉토리목록을 인덱싱할 때 표시할 파일리스트에서 제외할 파일을 설정한다.

 

 

Vi /etc/php.ini                             //간혹 vi opt/remi/php72/php.ini에 있을수도

-. php.ini

date.timezone = "Asia/Seoul"                   //php 시간대 설정

expose_php = Off                                     //HTTP 헤더 아파치 숨기기

short_open_tag = On                               //기본값은 off인데 이 상태로는 <?로 시작되는 코드가 작동하지 않으므로 페이지 오류가 발생함.

max_execution_time = 60                       //최대 실행 시간을 제한하는 SET_TIME_LIMIT함수. 스크립트 최대 실행시간을 초단위로 설정, 0이면 무한

allow_url_fopen = Off                              //allow_url_fopen 비적용

 

 

vi /etc/httpd/conf.d/php.conf

-. php.conf

AddHandler php5-script .php .inc .html               //확장자 등록

DirectoryIndex index.php index.html index.htm  //웹사이트의 초기 문서로 어느 문서를 지정할것인지 정함.

 

centos 7버전

-. php.conf

<FilesMatch "\.(php|htm|html|inc)$">               //정규식 일치 파일 이름에 적용되는 지시문을 포함 함.

    SetHandler application/x-httpd-php             //확장자 지정

</FilesMatch>

 

/etc/my.cnf

-. my.cnf

 

[client]

default-character-set=utf8                       //언어셋 UTF=8로 인코딩

 

[mysqld]

old_passwords=1                                      //1일경우 mysql 4.1.x 이상 버전에서도(버전업된 긴 암호) 이전 버전과 동일하게 짧은 암호화 문장으로 변환됨

default-character-set=utf8                       //기본 글자셋 utf8로 변경

init_connect="set names utf8"                //글자셋 utf8로 변경

datadir=/home/mysql-data/                    //기본 디렉토리 변경, 차후에 설정된 DB가 해당 디렉토리에 저장됨.

character-set-client-handshake = FALSE //클라이언트의 문자셋을 무시하고 서버쪽 문자셋을 사용함.

skip-name-resolve                                    //외부로부터 접속 요청을 받을 경우 인증을 위해 IP주소를 호스트 네임으로 바꾸는 과정에서 불필요한 부하 방지

 

Comments