일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- g1
- assertj
- 스프링
- 페이징
- OAuth
- 리팩토링
- JWT
- spring boot
- jvm
- 비동기
- Spring
- GC
- tomcat
- RabbitMQ
- Producer
- java
- oauth2
- apache
- 페이스북
- Security
- 권한
- Refactoring
- 클린코드
- 시큐리티
- load balancing
- clean code
- 스프링부트
- JPA
- gdg
- 스프링 부트
Archives
- Today
- Total
허원철의 개발 블로그
Apache - httpd.conf 설정 하기 본문
이번글은 Apache Server를 사용할 때, 세부 설정에 대한 글 입니다.
설정 파일 Path
1 | vi /etc/httpd/conf/httpd.conf | cs |
ServerTokens [OS : default/Prod/Major/Minor/Min/Full]
- Http로 응답할 Header 설정 값입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | ServerTokens Prod Server sends (e.g.): Server: Apache ServerTokens Major Server sends (e.g.): Server: Apache/2 ServerTokens Minor Server sends (e.g.): Server: Apache/2.0 ServerTokens Min[imal] Server sends (e.g.): Server: Apache/2.0.41 ServerTokens OS Server sends (e.g.): Server: Apache/2.0.41 (Unix) ServerTokens Full (or not specified) Server sends (e.g.): Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2 | cs |
※ 최소한의 정보를 제공하는 Prod로 설정하는 것이 좋습니다.
Timeout [300 : default]
- 클라이언트 요청에 의해 서버와 연결이 될 때, 서로간에 아무런 메시지가 발생하지 않을 때 연결을 끊는 시간입니다.
※ Rest API 경우에는 낮을 수록, 웹서비스에 경우 높을 수록 좋을 것 같습니다.
KeepAlive [On : default / Off]
- Apache의 한 프로세스가 사용자의 지속적인 요청작업을 계속 처리할 것인지 대한 여부입니다.
※ 현재는 모르겠으나, 어느 블로거분의 말씀에 의하면 Off를 하게되면 시간이 지나도 안 끊기고 계속 살아 있다고 합니다. 그래서 On 을 두고 KeepAliveTimeout을 이용해 적절히 조절하는 것이 좋을 것 같습니다.
KeepAliveTimeout [5 : default]
- KeepAlive가 On인 경우 유효한 값으로, 설정 시간(초)동안 요청이 없으면 타임아웃 시킵니다.
※ 낮을수록 동시접속 수를 늘릴 수 있습니다.
MaxKeepAliveRequests [100 : default]
- KeepAlive가 On인 경우 유효한 값으로, 하나의 프로세스가 방문자들의 요청을 처리할 횟수를 지정합니다.
※ 0으로 설정하면 무제한 요청이 허용됩니다. 서버 성능을 최대화하려면 설정값을 높은 값으로 유지하는 것이 좋습니다.
MPM 방식
prefork [default]
- Process : Thread = 1 : 1
- 안정적이다.
- 메모리를 독립적으로 사용
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>
worker
- Process : Thread = 1 : n
- 동시접속 수가 많은 곳에 적합
- 메모리를 공유하며 사용
<IfModule worker.c>
StartServers 4
MaxClients 300
MinSpareThreads 25
MaxSpareThreads 75
ThreadPerChild 25
MaxRequestsPerChild 0
</IfModule>
ExtendedStatus [Off : default / On]
- Apache의 상태를 모니터링 할 때, 자세한 상태정보 기능을 제공할 것 인지에 대한 설정입니다.
※ server-status에 영향을 줍니다.
User [apache : default]
Group [apache : default]
- Apache 자식 프로세스들의 실행소유자와 소유그룹을 설정하는 값입니다.
※ 보안을 위해 nobody로 설정합니다.
ServerName [www.example.com : default]
- 클라이언트에게 보여줄 호스트이름을 지정합니다.
※ 도메인이 없다면 IP주소라도 꼭 적어야 한다.
ServerName을 지정하지 않으면 서버는 먼저 운영 체제에 시스템 호스트 이름을 요청하여 실패한 경우, 시스템에있는 IP 주소에 대해 역 조회를 수행하여 클라이언트가 볼 수있는 호스트 이름을 추론합니다.
ServerName에 지정된 포트가 없으면 서버는 들어오는 요청의 포트를 사용합니다. 최적의 신뢰성과 예측 가능성을 위해서는 ServerName 지시문을 사용하여 명시 적 호스트 이름과 포트를 지정해야합니다.
UseCanonicalName [Off : default / On]
On : 지정한 ServerName 를 사용합니다
Off : 호스트네임과 포트를 사용합니다.
<Directory> ~
</Directory>
- Options [None/All/Indexes/Includes/IncludesNOEXEC/FollowSymlinks/ExecCGI/MultiViews]
- AllowOverride [None/All/AuthConfig/FileInfo/Indexes/Options/Limit]
- Order [allow || deny]
- [allow || deny] from [도메인 네임/호스트 이름 주소/호스트 IP 주소/IP 주소의 앞부분 3byte/all]
HostnameLookups [Off : default / No]
- access_log에 기록되는 설정 값입니다.
On일 경우, IP주소에 대하여 DNS에 질의하여 해당 IP주소에 대한 도메인 정보를 가져옵니다.
Off일 경우, IP주소만 기록합니다.
※ DNS질의로 인한 트래픽이 발생하기 때문에 Off로 설정합니다.
EnableMMAP [On : default / Off]
- 메모리매핑을 지원한다면, Apache가 웹문서를 로딩하기 위해 내부문서를 읽을 때 파일을
메모리 매핑하여 처리합니다.
※ 아파치의 성능이 크게 향상될 수 있으나, 안정성을 해치기도 하고 여러 이슈가 있어 Off를 하는 것이 좋습니다.
EnableSendfile [On : default / Off]
- sendfile을 지원한다면, 정적 파일을 서비스하는 경우 전송할 파일을 직접 읽지 않고 가능합니다.
※ 안정성을 해치므로 Off로 하는 것이 좋습니다.
BrowserMatch {browser} {option}
- 특정 브라우저들에 대한 특정 수행을 지시하기 위한 설정입니다.
NameVirtualHost [*:80]
- 이름기반 가상 호스트를 사용하겠다는 설정입니다.
※ mod_ssl을 이용한 SSL 사용 시, 포트를 443으로 수정해야 합니다.
<VirtualHost *:80> ~
</VirtualHost>
- ServerAdmin : 해당 가상호스트의 관리자 이메일 주소
- DocumentRoot : 해당 가상호스트의 홈페이지디렉토리 위치
- ServerName : 해당 가상호스트의 도메인명
- ErrorLog : 해당 가상호스트의 웹에러로그 파일 위치
- CustomLog : 해당 가상호스트의 웹로그파일 위치
참고
'server' 카테고리의 다른 글
ELK Stack 개념 정리 (430) | 2017.02.23 |
---|---|
Apache - version 2.4 설치하기 (404) | 2017.02.23 |
OpenSSL로 https 사용해 보기 (420) | 2017.02.06 |
Session Clustering 알아보기 (417) | 2016.12.11 |
[펌] Tomcat Tuning (420) | 2016.12.04 |
Comments