httpd란?
- "httpd"는 웹 요청을 처리하고 클라이언트에게 정적 및 동적 콘텐츠를 제공하는 역할을 수행한다. 또한 모듈 시스템을 통해 다양한 기능과 확장성을 제공하며, 가상 호스팅, 인증, 로깅, SSL/TLS 암호화 등의 기능을 포함한 다양한 구성 옵션을 제공한다.
- Apache HTTP Server는 가장 널리 사용되는 웹 서버 소프트웨어 중 하나로, 오픈 소스로 제공되며 다양한 운영 체제에서 동작할 수 있다.
httpd.conf
"httpd.conf"는 Apache HTTP Server의 주요 구성 파일로 웹 서버의 동작 및 구성을 정의하는 데 사용된다. "httpd.conf" 파일은 Apache 서버의 설치 디렉토리 내에 위치하며, 일반적으로 /etc/httpd/conf 또는 /etc/apache/httpd/conf.d와 같은 경로에 있을 수 있다.
httpd.conf 주요 설정
1. ServerRoot
Apache 서버의 루트 디렉토리를 지정한다.
ServerRoot "/etc/httpd"
2. Listen
Apache 서버가 들어오는 연결을 수신할 포트 번호를 지정한다.
Listen 80
3. <VirtualHost>
Apache HTTP Server에서 가상 호스트를 정의하고 해당 호스트에 대한 구성을 지정하는 옵션이다. 가상 호스트는 단일 웹 서버에서 여러 개의 도메인 이름이나 IP 주소로 호스팅되는 여러 웹 사이트 또는 애플리케이션을 의미한다.
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example
ErrorLog /var/log/apache2/example-error.log
CustomLog /var/log/apache2/example-access.log combined
# Request_URI 값이 ".gif", ".jpg" 등과 같은 확장자로 끝나는 경우 로깅에서 제외
SetEnvIfNoCase Request_URI "\.(gif|jpg|png|css|js)$" do_not_log
# 웹 서버가 디렉토리에 대한 요청을 받았을 때 순서대로 파일을 찾고 제공
DirectoryIndex index.html index.html default.html
# .do로 끝나는 모든 URL을 tomcatWorker 워커에게 전달
JkMount /*.do tomcatWorker
<Directory /var/www/example>
Options FollowSymLinks
AllowOverride All
Require all granted
# GET과 POST 요청만 모든 사용자가 액세스가능하고 다른 메서드에는 인증된 사용자만 액세스 가능
<LimitExcept GET POST>
Require valid-user
</LimitExcept>
</Directory>
</VirtualHost>
ServerName
- 가상 호스트의 기본 도메인 이름을 지정한다.
ServerAlias
- 가상 호스트에 대한 대체 도메인 이름을 지정한다.
DocumentRoot
- 가상 호스트에서 제공되는 파일의 기본 디렉토리 경로를 지정합니다. 클라이언트가 웹 서버에 접근할 때 이 디렉토리의 파일을 보여준다.
LogLevel
- 가상 호스트의 로그 레벨을 지정한다.
ErrorLog, CustomLog
- 각각 에러 로그와 사용자 정의 액세스 로그의 경로를 지정한다.
SetEnvIfNoCase
- 환경 변수를 설정하는 데 사용되며, 대소문자를 구분하지 않고 헤더, URI 등의 값을 비교하여 조건을 만족하는 경우에만 환경 변수를 설정한다. 주로 로깅, 액세스 제어, 조건부 구성 등에서 사용된다.
DirectoryIndex
- 웹 서버에서 디렉토리에 대한 요청을 받아 제공하는 기본 파일을 설정한다.
JkMount
- Apache HTTP Server와 Apache Tomcat을 통합하여 Java 웹 애플리케이션을 실행하는 데 사용되는 설정 지시문이다.이를 통해 특정 URL 패턴을 Tomcat 서버로 보내고, 해당 애플리케이션을 처리하도록 설정할 수 있다. 보통 웹 애플리케이션을 처리하기 위해 특정 경로 또는 확장자 패턴에 해당하는 URL을 Tomcat으로 라우팅하는 데 사용된다.
<Directory>
- 특정 디렉토리에 대한 액세스 권한(읽기, 쓰기, 실행 권한 등)과 관련된 설정을 지정한다.
- Options : 디렉토리에 적용되는 옵션을 지정한다. 예를 들어, "Indexes" 옵션을 사용하면 디렉토리 내의 파일 목록이 표시되고, 다른 옵션으로는 "FollowSymLinks" (심볼릭 링크 따라가기), "ExecCGI" (CGI 실행) 등이 있다.
- AllowOverride: 이 설정은 .htaccess 파일에 대한 오버라이드 규칙을 활성화하는지 여부를 지정한다. .htaccess 파일은 디렉토리 수준에서 웹 서버의 구성을 수정하는 데 사용된다.
- Require: 이 설정은 특정 조건에 따라 액세스를 허용 또는 거부하는데, 예를 들어, "Require all granted"는 모든 사용자에 대한 액세스를 허용하고, "Require valid-user"는 인증된 사용자에게만 액세스를 허용한다.
- LimitExcept: HTTP 메서드를 기반으로 허용되는 액세스 제어를 설정하는 데 사용된다.
'Server' 카테고리의 다른 글
Apache ssl.conf 설정하기 (0) | 2023.06.16 |
---|---|
RoutingDataSource 설정 (0) | 2022.08.23 |
우분투의 명령어 (0) | 2022.08.20 |
http, https 기본 포트 번호 (0) | 2022.08.17 |
VirtualBox 서버 설정 (0) | 2022.08.04 |