아파치 구성 파일. 아파치 구성 파일. Apache 제어 명령

Apache 구성 파일

대부분의 패키지에서 Apache의 기본 구성 파일 이름은 httpd.conf입니다. 시스템 버전에 따라 이 파일은 다른 디렉터리에 위치할 수 있지만 형식은 변경되지 않습니다. Caldera 및 SuSE 시스템에서 httpd.conf 파일은 /etc/httpd 디렉토리에 있습니다. Debian 및 Slackware에서는 /etc/apache에 있습니다(Slackware는 /etc/apache/httpd.conf.default 샘플 파일을 제공합니다. 서버가 작동하도록 하려면 이름을 바꾸는 것뿐입니다. 이 파일필요한 사항을 변경합니다.) Red Hat 및 TurboLinux에서 httpd.conf 파일은 /etc/httpd/conf/ 디렉토리에 있습니다.

평소와 같이 httpd.conf 파일에서 # 기호로 시작하는 줄에는 주석이 포함되어 있습니다. 서버 구성을 정의하는 옵션은 다음과 같이 지정됩니다.

지시어 의미

지시문은 이와 관련된 일부 값을 가질 수 있는 이름입니다. 값은 숫자, 파일 이름 또는 임의의 문자열일 수 있습니다. 일부 지시문을 사용하면 여러 하위 옵션을 지정할 수 있습니다. 이 경우 지시어 이름은 꺾쇠 괄호 안에 표시됩니다. 이러한 지시어의 예가 아래에 나와 있습니다.

옵션 FollowSymLinks

AllowOverride 없음

마지막 줄에는 처음에 지정된 것과 동일한 지시문의 이름이 포함되어 있지만 이에 대한 값은 제공되지 않습니다. 블록을 끝내는 지시문의 이름 앞에는 슬래시가 옵니다.

어떤 경우에는 아래 나열된 추가 구성 파일이 Apache를 구성하는 데 사용됩니다. 일반적으로 httpd.conf와 동일한 디렉토리에 위치합니다.

Access.conf. 이 파일에 대한 링크는 AccessConfig 지시문을 사용하여 형성되며 httpd.conf 파일에 포함되어 있습니다. access.conf 파일에는 가장 자주 지시문이 포함되어 있습니다. , 지정된 디렉토리에 대한 액세스 기능을 정의합니다. 현재 이 파일은 일반적으로 비어 있으며 때로는 AccessConfig 값이 /dev/null 로 설정되어 access.conf가 사용되지 않도록 설정됩니다.

Mime.types. 웹 브라우저에 데이터 처리 방법을 알려주기 위해 웹 서버는 MIME(Multi Purpose Internet Mail Extensions) 표준을 사용합니다. 예를 들어 MIME 유형 text/plain은 데이터가 일반 텍스트임을 의미하고 image/jpeg는 JPEG(Joint Photographic Experts Group) 형식의 그래픽 데이터를 지정합니다. mime.types 파일에는 MIME 유형과 파일 확장자 간의 매핑에 대한 정보가 포함되어 있습니다. 예를 들어, .txt 및 .asc로 끝나는 파일 이름은 MIME 유형 text/plain과 연결됩니다. 이 매핑이 올바르게 설정되지 않으면 웹 브라우저가 일부 유형의 파일을 처리하는 데 어려움을 겪게 됩니다. 패키지의 일부로 제공되는 파일을 사용하면 웹 페이지에 배치할 수 있는 거의 모든 유형의 데이터를 처리할 수 있습니다. 희귀한 유형을 사용해야 하는 경우 이 파일에 새 항목을 추가해야 합니다.

마법. 이 파일을 사용하면 MIME 유형과 데이터 간의 매핑을 정의할 수도 있습니다. 정보를 분석할 때 특정 유형의 특정 징후를 발견할 수 있습니다. 예를 들어, 많은 파일에는 "마법의" 바이트 시퀀스라는 특수 키가 포함되어 있습니다. 이러한 시퀀스는 다음과 같이 변환됩니다. 텍스트 보기, 매직 파일에 지정됩니다. 이 파일의 형식을 철저하게 연구하지 않은 경우 파일을 변경하지 않는 것이 좋습니다. 이 장에서는 매직 파일의 구조에 대해 논의하지 않습니다.

Linux for the User 책에서 작가 코스트로민 빅토르 알렉세예비치

8.2.2. 기본 구성 파일 Sect. 8.2.1(또는 /etc/inittab 파일을 본 경우) 일반적인 상황에서 init 프로세스가 getty 프로세스 실행 외에도 두 가지 주요 작업을 수행한다고 상상해 보세요. /etc에서 rc.sysinit 스크립트를 실행합니다. /rc.d 디렉토리; rc 스크립트를 실행합니다

DIY Linux 서버 책에서 작가

12.5. SSL과 아파치 12.5.1. SSL 설치 SSL(Secure Sockets Layer)은 인터넷 보안을 제공하기 위해 Netscape에서 개발한 암호화 방법입니다. 이 방법은 여러 암호화 방법을 지원하며 클라이언트 수준 및 클라이언트 수준 인증을 모두 제공합니다.

Asterisk™: The Future of Telephony Second Edition 책에서 발췌 작가 메겔렌 짐 왕

Linux 네트워크 도구 책에서 스미스 로드릭 W.

리눅스 책에서: 완전한 가이드 작가 콜리스니첸코 데니스 니콜라예비치

DHCP 구성 파일 대부분의 배포판 리눅스 패키지 Internet Software Consortium(http://www.isc.org/products/DHCP/)에서 개발한 DHCP 서버가 포함되어 있습니다. ISC(인터넷 소프트웨어 컨소시엄)는 2000년 후반에 DHCP 버전 3.0을 출시했지만 2002년 초에는 많은 리눅스 버전아직도 같이 왔어 구 버전 2.0

Ubuntu 10 책에서. 빠른 시작 가이드 작가 콜리스니첸코 D.N.

The C Language - A Guide for Beginners 책에서 발췌 프라타 스티븐

Exim 구성 파일 Exim의 기본 구성 파일은 exim.conf라고 합니다. 일반적으로 /etc 디렉토리에 있습니다. 이 파일에는 다음 형식의 항목이 포함되어 있습니다. option = value 평소와 같이 주석이 포함된 줄은 # 문자로 시작됩니다.

해커의 눈을 통한 Linux 책에서 작가 Flenov 미하일 예브게니예비치

Linux 커널 개발 책에서 러브 로버트

16.1. Apache 설치 배포판에 따라 Apache 웹 서버가 설치되는 패키지는 apache 또는 httpd라고 할 수 있고 문서 패키지는 각각 apache-docs 또는 httpd-manual이라고 할 수 있습니다. 첫 번째 경우에는 다음을 포함하는 apache-common 패키지를 설치해야 합니다.

작가의 책에서

16.2. 아파치 설정. 구성 파일 Apache를 설치한 후 다음 파일을 편집해야 합니까? /etc/httpd/conf/httpd.conf - 기본 구성 파일. 아파치 2.x의 경우. 이 파일은 httpd2.conf라고도 합니다. /etc/logrotate.d/apache 또는 /etc/logrotate.d/httpd(버전 2.0) - 회전 파일

작가의 책에서

16.10. SSL 및 아파치 16.10.1. SSL 설치 SSL(Secure Sockets Layer)은 안전한 데이터 전송을 보장하기 위해 Netscape에서 개발한 암호화 방법입니다. 이 방법은 여러 암호화 방법을 지원하고 클라이언트 및 클라이언트 수준 모두에서 인증을 제공합니다.

작가의 책에서

19.2. 부트로더 구성 파일 목록 19.1은 주요 GRUB2 구성 파일인 /boot/grub/grub.cfg를 보여줍니다. 수동으로 편집할 수 없습니다. 이를 생성하려면 다음 위치에 이 구성 파일을 생성하는 /usr/sbm/grub-mkconfig 유틸리티를 사용하십시오. 템플릿 기반,

작가의 책에서

26.2.3. 서버 구성 파일 서버 구성 파일은 /etc/apache2 디렉토리에 있습니다. 기본 구성 파일은 apache2.conf입니다. 기본 설정은 대부분의 사용자에게 적합합니다. 로컬뿐만 아니라 웹 서버를 사용하려는 경우(예:

작가의 책에서

소스 파일 및 실행 파일 우리의 훌륭한 프로그램은 간결함과 단순함에도 불구하고 #include 또는 printf와 같은 지시문을 "이해하지 못하기" 때문에 컴퓨터에서는 전혀 의미가 없는 기호 집합입니다. 그 사람만 이해해 특수 언어,

작가의 책에서

5.3.1. 구성 파일 모든 SSH 프로토콜 구성 파일은 /etc/ssh 디렉토리에 있습니다. 여기에서 다음 목록을 볼 수 있습니다:? SSH 서버 구성 파일 - sshd_config;? SSH 클라이언트 구성 파일 - ssh_config;? 다양한 키 파일

작가의 책에서

커널 디버깅 구성 옵션 컴파일 타임에 활성화되는 커널 코드 디버깅 및 테스트를 지원하는 여러 구성 옵션이 있습니다. 이러한 옵션은 커널 구성 편집기 메뉴의 커널 해킹 항목에서 사용할 수 있습니다. 이 모든 것

아파치는 웹 서버입니다.

구성 파일

기본적으로 모든 구성 파일은 "conf" 폴더에 저장됩니다.

httpd.conf는 기본 구성 파일아파치 서버. 이 파일에 대한 변경 사항을 적용하려면 Apache 서버를 다시 시작해야 합니다.

"extra" 폴더("conf" 폴더 내부)에는 추가 구성 파일. 필요한 경우 기본 구성 파일 내에서 연결할 수 있습니다.

구성 파일 구문

한 줄에는 하나의 지시문만 있어야 합니다. \(백슬래시) 문자는 지시어가 다음 줄에서 계속됨을 나타내기 위해 줄의 마지막 문자로 사용될 수 있습니다. 줄 끝 문자를 제외하고 \ 문자 뒤에는 다른 공백 문자가 없어야 합니다.

지시문과 해당 인수는 공백으로 구분됩니다. 인수 자체도 공백으로 구분됩니다. 인수에 공백이 포함되어 있으면 따옴표로 묶어야 합니다.

지시문은 대소문자를 구분하지 않지만 인수는 반대로 대소문자를 구분합니다.

#(해시) 문자로 시작하는 줄은 주석으로 간주되어 무시됩니다. 주석은 지시문과 같은 줄에 배치할 수 없습니다.

공백 문자, 지시어 앞에 삽입된 경우 무시되므로 코드를 더 쉽게 읽을 수 있도록 들여쓰기를 삽입하는 데 사용할 수 있습니다. 빈 줄또한 무시됩니다.

모듈

모듈은 단순히 추가 기능을 추가할 수 있는 플러그인 파일입니다. 모든 플러그인은 기본적으로 "modules" 폴더에 있습니다.

모듈을 사용하면 Apache 웹 서버 코어에 포함되지 않은 지시어를 사용할 수 있습니다.

.htaccess

Htaccess는 Apache 웹 서버 및 유사한 서버에 대한 추가 구성 파일입니다. 기본 구성 파일에 대한 액세스가 대부분 금지되어 있으므로 이를 사용하면 기본 구성 파일을 변경하지 않고도 개별 디렉터리에 대한 기능을 구성할 수 있습니다.

.htaccess 파일은 해당 파일이 위치한 디렉터리와 해당 하위 디렉터리에만 영향을 미칩니다. .htaccess 파일은 모든 디렉터리에 위치할 수 있습니다. 이 파일의 지시문은 현재 디렉터리와 모든 하위 디렉터리의 모든 파일에 영향을 미칩니다(이 지시문이 기본 .htaccess 파일의 지시문으로 재정의되지 않는 한).

.htaccess 파일을 변경해도 서버를 다시 시작할 필요가 없습니다.

.htaccess 파일에 오류가 발생한 경우(예: 지시어 또는 지시어 값이 잘못 기록된 경우) 서버는 오류 500을 반환합니다.

.htaccess 파일은 Apache 구성 파일과 동일한 구문을 사용합니다.

특정 지시문의 "컨텍스트"에 있는 지시문 디렉터리의 .htaccess 파일 내에 어떤 지시문이 있는지 확인할 수 있습니다.

개념:구성, 지시어. 구성 파일, 지시어. 기본 구성 지시어. 서버 프로세스. 디렉터리 및 파일에 대한 액세스를 제어합니다.

구성(라틴어 구성 - 상호 배열)은 특별한 논리적, 방법론적 기법, 다양한 주제에 대한 지식, 동일한 대상에 대한 다양한 아이디어를 종합하는 정신적 기법입니다.

지시문, g. (라틴어 directio-방향에서). 상위 기관이 하위 기관(서버)에게 제공하는 일반 지침 워크스테이션등.) .

구성 파일은 매우 간단한 형식의 파일입니다. 각 줄은 키워드와 하나 이상의 인수를 나타냅니다. 단순화를 위해 대부분의 줄에는 인수가 하나만 포함됩니다. # 기호 뒤에 오는 모든 내용은 주석이므로 무시됩니다.

Apache는 /etc/httpd/conf/ 디렉터리의 서비스 파일을 변경하여 구성됩니다. 웹 서버의 주요 구성 파일은 httpd.conf입니다. 구성 지시문은 기본 포함 구성에 file_name.conf를 포함하는 다양한 파일에 배치될 수 있습니다.

파일이나 디렉터리의 위치가 구성 파일에 암시적으로 지정된 경우(명시적인 위치는 "/" 문자로 파일 시스템의 루트에서 시작) Apache는 ServerRoot 지시어에 지정된 디렉터리를 사용하여 실제 위치를 결정합니다. 목표.

Apache 모듈 및 구성 지시문에 대한 설명

지시문은 다음 수준에서 사용할 수 있습니다.

서버 구성 수준 - 지시문은 기본 구성 파일에서만 사용할 수 있습니다.

레벨 5 - 지시문은 가상 호스트마다 다르게 사용될 수 있습니다.

D레벨 - 모든 디렉터리에 대해 이 수준의 지시문을 사용하여 고유한 설정을 지정할 수 있습니다.

.htaccess 파일의 H 수준 - 지시문은 서버에서 허용하는 위치의 .htaccess 파일에서 사용할 수 있습니다.

언제든지 지시문에 filename 매개변수를 사용하면 ServerRoot 디렉터리의 파일에 대한 절대 경로("/"로 시작) 또는 상대 경로가 지정됩니다.

CORE - 웹 서버 코어(Apache 코어 모듈)

AccessConfig 파일 이름

구성 파일의 위치를 ​​설정합니다. 기본 시스템 구성 파일은 conf/access.conf입니다. 이 파일 읽기를 취소하려면 /dev/null을 설정하는 것이 좋습니다.

AccessFileName 파일 파일 ...

기본적으로 즉석 구성을 구성하는 데 사용되는 액세스 파일의 이름(.htaccess)을 설정합니다.

AddModule 모듈 모듈 ... [A]

별도의 라이브러리 파일로 제공되는 동적으로 로드된 모듈을 활성화합니다.

AddModule 모듈 모듈 ...

별도의 라이브러리 파일로 제공되거나 기본 httpd 모듈 내에서 컴파일된 동적으로 로드된 모듈을 활성화합니다.

AllowOverride 매개변수 매개변수 ...

Apache가 내부 .htaccess 파일에서 지시문을 사용하는 규칙을 설정합니다.

없음 - 무시합니다.

All - 모든 지시문을 사용합니다.

옵션 - 옵션 및 XBitHack을 사용할 수 있습니다.

색인 - 디렉토리 색인 관리 지시문.

FileInfo - 파일 유형 및 해당 처리기를 관리하기 위한 지시문입니다.

AuthConfig - Auth* 디렉터리에 액세스하기 위한 지시어입니다.

제한 - 허용/거부/주문 지시어입니다.

AuthName 영역

인증 유형 유형

웹사이트 디렉토리에 접근하기 위해 사용자 이름과 비밀번호를 요청하고 전송하는 방법을 지정하는 데 사용됩니다. 대부분 기본을 사용하고 덜 자주 사용합니다 - 다이제스트 및 기타.

BindAddress 주소 [A]

Apache가 연결을 수락할 주소를 지정합니다. 호스트 이름, IP 주소 또는 *를 사용할 수 있습니다.

ClearModuleList[A]

지시문은 로드된 모듈 목록을 지웁니다. 이 지시어 뒤에는 AddModule 지시어를 사용하여 필요한 모듈을 작업해야 합니다.

콘텐츠다이제스트 켜기|끄기

MD5 데이터 해시 전달을 활성화하거나 비활성화합니다. 전송된 모든 페이지에 대해 계산되며 캐시되지 않습니다.

CoreDumpDirectory 디렉터리 이름 [A]

긴급 오류 발생 시 생성된 메모리 덤프 파일(코어)이 저장될 디렉터리를 Apache에 지정합니다.

기본 유형 MIME 유형

Apache가 mime.types 파일이나 AddType 지시문을 통해 유형을 결정할 수 없는 경우 클라이언트에 전송되는 MIME 유형을 설정합니다. 기본값은 텍스트/일반으로 설정됩니다.

...

특정 디렉토리에 있는 문서에 액세스할 때 Apache의 동작을 지정하는 지시문 그룹을 결합합니다. 이름 마스크(기호 *, ?)를 사용할 수 있습니다. 쉘 규칙에 따라. 마스크를 사용하는 경우 이름 앞에 물결표 ~가 표시됩니다.

...

정규식으로 지정된 디렉터리 그룹을 정의하고 Apache가 이 그룹의 디렉터리 및 파일을 사용하도록 규칙을 설정합니다.

DocumentRoot 디렉토리 이름

웹 서버의 데이터 구조인 디렉터리 트리의 루트 위치를 서버에 나타냅니다.

오류문서 파일 이름|문자열|URL

오류가 발생하면 지정된 페이지로 리디렉션됩니다. 발생한 상황에 대한 설명을 설정할 수도 있습니다. 설명은 작은따옴표로 시작해야 합니다. 예:

ErrorDocument 500 http://foo.example.com/cgi-bin/tester

오류문서 404 /cgi-bin/bad_urls.pl

오류문서 401 /subscription_info.html

ErrorDocument 403 "죄송합니다. 오늘은 액세스를 허용할 수 없습니다."

오류 로그 파일 이름

오류 로그 파일 이름입니다. 매개변수 행이 (/)로 시작하는 경우 파일 경로는 ServerRoot에서 지정되어야 합니다. (|)로 시작하면 오류 메시지가 표준 입력의 지정된 명령으로 전달됩니다. 특히 이러한 방식으로 로그를 SQL DBMS에 직접 저장하거나 즉시 압축하여 저장하고(예: gzip으로 전송) 구현할 수 있습니다. Apache 버전 1.3 이상에서는 시스템이 이 기능을 지원하는 경우 기본적으로 syslog에 메시지를 출력합니다. 하지만 이는 syslog:facility를 사용하여 비활성화할 수 있습니다.

...

파일 액세스 제어. 섹션 지시문 섹션을 읽은 후 구성 파일과 동일한 순서로 처리됩니다. 및 .htaccess 파일(디렉토리 섹션을 읽기 전) . 인수에는 파일 이름이나 "?"가 포함된 마스크가 포함되어야 합니다. - 임의의 문자, "*" - 임의의 문자열. 추가 ~ 기호를 사용하면 확장 reg를 사용할 수 있습니다. 표현식(grep(1)의 REGULAR EXPRESSIONS 섹션 참조) 예: 인터넷에서 일반적으로 사용되는 것과 일치합니다. 그래픽 파일.

...

와 동일 이지만 정규식을 사용합니다.

이는 해당 환경에서 지정된 이름에 해당하는 권한을 사용하여 Apache를 시작하고 프로세스를 분기하는 것과만 관련됩니다.

HostNameLookups 켜기|끄기|더블

역방향 DNS를 사용하여 방문자의 호스트 이름을 확인하는 기능을 제어합니다. 느리게 작동하며 기본적으로 비활성화된 것으로 간주됩니다. Double은 호스트 이름이 요청을 보낸 호스트의 IP 주소와 일치하는지 확인하기 위해 추가 검사를 받아야 함을 나타냅니다.

신원 확인 켜기|끄기

RFC1413 인증을 활성화합니다. 해당 기능을 활성화하면 서버 접속 시간이 대폭 늘어납니다.

...

그리고다음과 같은 경우에만 수행해야 합니다. 이 매개변수 Apache 내부 구조에 정의되어 있습니다. 매개변수 앞의 [!] 기호는 매개변수가 정의되지 않은 경우에만 지시문 블록을 읽음을 나타냅니다.

...

한 쌍의 지시문으로 구성된 블록 내부에 배치된 지시문을 나타냅니다. 그리고다음과 같은 경우에만 수행해야 합니다. 이 모듈 Apache로 컴파일되었습니다. 모듈 앞의 [!] 기호는 매개변수가 정의되지 않은 경우에만 지시문 블록을 읽을 것임을 나타냅니다.

파일 이름 포함 [A]

지시문을 사용하면 서버 구성에 구성 파일을 포함할 수 있습니다.

KeepAlive 켜기|끄기 [A]

클라이언트가 TCP 연결을 끊지 않고 여러 파일을 순차적으로 요청할 수 있습니다.

KeepAliveTimeout 초 [A]

Apache가 클라이언트의 다음 요청을 기다리는 TCP 연결이 닫히기 전의 시간(초)을 지정합니다.

...

내부에 배치된 콘텐츠가 어떤 HTTP 메서드(예: GET 또는 POST)에 속하는지 지정할 수 있습니다. ... 접근 제한 명령.

GET, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK 방법을 사용할 수 있습니다.

청취 포트 [A]

Apache가 지정된 주소와 포트를 수신하도록 강제합니다. 예를 들어 서버가 포트 80 및 8000에서 수신 대기하도록 하려면 다음을 사용합니다.

지정된 포트 번호를 사용하여 다른 인터페이스에서 Apache를 실행하려면 다음을 사용하십시오.

192.170.2.1:80 듣기

192.170.2.5:8000 듣기

ListenBacklog 길이 [A]

연결 처리 대기열의 최대 길이입니다.

...

아파치 매뉴얼에 자세한 내용이 있습니다 :)

...

아파치 매뉴얼의 세부 사항

잠금 파일 파일 이름 [A]

지시문은 잠금 파일의 경로를 설정합니다.

LogLevel emerg|alert|crit|error|warn|notice|info|debug

프로토콜(서버 작업의 로그 파일)의 정보 내용 수준을 설정합니다. 권장 용도: 적어도레벨 크리티컬.

MaxClients 수 [A]

지시문은 서버에 대한 동시 요청 수에 대한 제한을 설정합니다. 실제로 이 숫자는 서버의 하위 프로세스 수를 초과할 수 없으며 기본적으로 256개를 초과할 수 없습니다. 상황을 수정하려면 httpd.h에서 HARD_SERVER_LIMIT를 편집하고 컴파일하십시오.

MaxKeepAliveRequest 수 [A]

KeepAlive가 활성화된 경우 클라이언트가 TCP 연결을 끊지 않고 지정된 수의 파일을 순차적으로 요청할 수 있습니다. 매개변수가 0으로 설정되면 Apache는 KeepAliveTimeout 매개변수를 기반으로만 연결을 닫습니다.

MaxRequestsPerChild 수 [A]

지시문은 개별 하위 프로세스가 처리할 수 있는 요청 수에 대한 제한을 설정합니다. MaxRequestsPerChild가 0으로 설정된 경우 요청 수는 무제한입니다.

MaxSpareServers 수 [A]

지시문은 원하는 최대 비활성 서버 프로세스 수를 설정합니다. Microsoft Windows 버전의 Apache를 사용하는 경우 이 지시문은 쓸모가 없습니다.

MinSpareServer 수 [A]

지시문은 원하는 최소 비활성 서버 프로세스 수를 설정합니다. Microsoft Windows 버전의 Apache를 사용하는 경우 이 지시문은 쓸모가 없습니다.

이름VirtualHost 포트 [A]

이 포트 이름에 대한 요청은 액세스되는 호스트 이름(HTTP "Host:" 헤더)으로 구분되어야 함을 나타냅니다. 하나의 IP 주소에 대해 여러 가상 호스트를 정의할 수 있습니다.

옵션 매개변수 매개변수...

지정된 콘텐츠에 대한 Apache 작업 설정을 정의합니다. 가능한 모든 설정은 apache-manual에 자세히 설명되어 있습니다. 자주 사용되는 항목: 색인 - 색인 파일을 찾을 수 없는 경우 디렉토리의 내용 표시를 켭니다(DirectoryIndex 지시어). ExecCGI - 이 디렉토리에 실행 파일(cgi, perl 스크립트)을 배치하는 기능을 활성화합니다. 포함 - SSI 디렉터리에 파일을 배치하는 기능을 활성화합니다. 각 설정은 이를 사용하는 해당 모듈에서 지원되며 필요한 모듈이 로드되지 않으면 작동하지 않을 수 있습니다. 각 옵션 지시문은 상위 디렉터리에 정의된 이미 알려진 옵션에 추가되는 것으로 간주됩니다. 각 설정에는 + 또는 - 접두사가 추가되어 주어진 상황에서 활성화하거나 비활성화할 수 있습니다.

PidFile 파일 이름 [A]

지시어는 서버가 프로세스 식별자를 쓰는 파일의 이름을 설정합니다.

Apache 포트를 지정합니다(0~65535 사이의 숫자). 일부 포트는 다른 프로토콜에서 사용될 수 있습니다. /etc/servises를 참조하세요. http 프로토콜의 표준 포트는 80입니다.

userid|groupid|valid-user|file-owner|group-owner [A] 필요

디렉터리에 액세스할 수 있는 사용자를 결정합니다.

사용자 userid 필요 - 이 사용자만 액세스할 수 있습니다.

그룹 그룹 이름 [그룹 이름] 필요 - 이 그룹의 모든 사용자

유효한 사용자 필요 - 모든 유효한 사용자.

ResourceConfig 파일 이름 [A]

서버는 httpd.conf를 읽은 후 이 파일에서 추가 지시문을 읽습니다. 파일 이름은 ServerRoot를 기준으로 설정됩니다. 비활성화할 수 있습니다: ResourceConfig /dev/null

RLimitCPU 최대|초[ 최대|초] [A]

RLimitMEM 최대|바이트[ 최대|바이트] [A]

RLimitNPROC 최대|수[ 최대|수] [A]

모두 만족|모두 [A]

Allow와 Require가 동시에 사용되는 경우 액세스 정책을 정의합니다. 해당 영역에 대한 접근이 이름/비밀번호 및 클라이언트 주소로 제한될 때 사용됩니다. 이 경우 기본값("all")에서는 클라이언트가 해당 주소에서 확인되고 올바른 사용자 이름과 비밀번호를 입력하도록 요구합니다. "any" 매개변수의 경우 클라이언트는 올바른 이름과 비밀번호를 입력했거나 호스트 제한을 통과한 경우 액세스 권한을 얻습니다. 비밀번호를 통해 액세스를 제한하는 데 사용할 수 있지만 비밀번호 없이 특정 주소의 클라이언트는 허용합니다.

ScoreBoard파일 파일 이름 [A]

하위 프로세스와 상위 프로세스 간의 통신을 위해 서버에서 사용하는 파일 이름을 지정하려면 지시어가 필요합니다. Apache를 실행하고 지정된 이름의 파일이 생성되는지 확인하여 이 파일이 필요한지 확인할 수 있습니다. 그렇다면 하나의 Apache 복사본에서만 사용되는지 확인해야 합니다.

SendBufferSize 바이트 [A]

TCP 버퍼 크기를 설정합니다.

서버관리자 이메일

서버가 오류 메시지에서 클라이언트에 표시하는 이메일 주소를 설정합니다.

ServerAlias ​​호스트 이름

대체 가상 호스트 이름을 지정합니다.

서버 이름 호스트 이름

지시문은 서버 이름을 설정합니다. 링크 생성에 사용됩니다. 이름이 지정되지 않으면 서버는 자체 IP 주소에서 이름을 얻으려고 시도합니다.

ServerPath 경로

지시어는 호스트의 레거시 경로 이름을 설정합니다.

ServerRoot 경로 [A]

서버가 있는 디렉토리를 설정합니다. 일반적으로 conf/ 및 log/ 하위 디렉터리가 포함됩니다. 다른 구성 파일의 경로는 이 디렉터리를 기준으로 구축됩니다.

ServerSignature on|ff|mail

서버에서 생성된 문서의 하단에 줄을 구성합니다. 기본적으로 비활성화됨, On - 가상 호스트의 서버 버전과 ServerName을 표시하고, 이메일은 ServerAdmin에 mailto: 링크를 추가합니다.

ServerTokens 최소|OS|전체 [A]

서버 OS 및 컴파일된 모듈을 설명하는 서버가 클라이언트에 보내는 헤더를 제어합니다.

서버 유형 독립형|inetd [A]

시스템에서 서버를 시작하는 방법을 결정합니다. inetd - inetd 시스템 프로세스에서 실행됩니다. 독립형 - 데몬 프로세스와 같습니다.

StartServers 수 [A]

시작 시 생성되는 하위 프로세스 수를 설정합니다. 어쨌든 숫자는 부하에 따라 동적으로 변경되므로 일반적으로 이 설정을 변경할 이유가 없습니다.

Apache가 기다리는 시간: GET 요청 수신, POST 및 PUT 요청에서 TCP 패킷 수신, 응답으로 TCP 패킷을 전송할 때 ACK 사이에 일시 중지.

UseCanonicalName 켜기|끄기

Apache가 SERVER_PORT와 함께 SERVER_NAME 값을 사용하여 생성하는 페이지의 이름을 생성하도록 합니다.

사용자 이름

서버가 요청에 응답할 사용자 ID를 설정합니다. 지시문을 사용하려면 서버가 루트로 실행되고 있어야 합니다.

...[ㅏ]

한 쌍의 지시문으로 구성된 블록 내부에 배치된 지시문 그리고나는 주어진 가상 호스트의 구성을 결정합니다. 각 가상 호스트에는 고유한 IP 주소, 포트 번호 또는 호스트 이름이 있어야 합니다. 예를 들어, 서버에 내부 네트워크용 네트워크 인터페이스가 있고 외부 네트워크용 다른 인터페이스가 있는 경우 이 지시문을 사용하는 것이 좋습니다.

mod_env - CGI/SSI 파일에서 처리하기 위한 변수를 설정하고 전달합니다.

PassEnv 변수[변수] ...

환경 변수(예: HOME)를 핸들러에 전달합니다.

SetEnv 변수 값

지정된 환경 변수에 지정된 값을 씁니다.

UnsetEnv 변수[변수] ...

변수를 재설정하여 핸들러에서 읽을 수 없게 만듭니다.

mod_setenvif - 조건식을 사용하여 환경 변수 설정

BrowserMatch 정규식 env-variable[=value] ] ... [A]

통과된 것을 사용합니다. 정규식클라이언트 브라우저의 User-Agent 헤더에 대한 필터로 사용됩니다. 적중이 성공하면 주어진 값으로 변수를 초기화합니다. 변수명만 지정하면 숫자 1로 초기화됩니다. 변수 앞에 "!"가 붙어 있으면 변수가 지정됩니다. - 변수가 재설정됩니다.

BrowserMatchNoCase 정규식 env-variable[=value] ] ... [A]

BrowserMatch와 유사하게 작동하여 전달된 User-Agent 값과 필터로 사용된 정규 표현식 간의 대소문자 차이를 허용합니다.

SetEnvIf 속성 정규식 env-variable[=value] ] ... [A]

지시어에 의해 수행되는 작업은 BrowserMatch와 완전히 유사하지만 User-Agent 대신 다른 헤더를 사용할 수 있습니다: Remote_Host; 원격_주소; 원격_사용자; 요청_방법; 요청_URI; 추천인

SetEnvIfNoCase 속성 정규식 env-variable[=value] ] ... [A]

SetEnvIf와의 차이점은 위의 BrowserMatch의 BrowserMatchNoCase와 동일합니다.

mod_unique_id - 고유한 환경 변수 UNIQUE_ID 생성

변수는 서버의 IP 주소, 실행 중인 프로세스 수, 타임스탬프 및 추가 내부 카운터에서 무작위로 생성됩니다.

이 변수는 다른 방법을 사용하여 동일한 요청을 추적할 수 없는 경우 복합 문서에 사용하기 위한 것입니다.

mod_mime - 파일을 클라이언트로 전송할 때 파일의 MIME 유형을 결정하도록 설계되었습니다.

AddCharset 문자셋 확장...

지정된 파일 확장자의 경우 클라이언트에 응답할 때 이 문자 세트를 전달하도록 Apache에 지시합니다.

AddEncoding MIME-enc 확장자...

지정된 파일 확장자의 경우 원하는 MIME 인코딩을 사용하여 파일을 전송하도록 Apache에 지시합니다.

AddHandler 핸들러 이름 확장자 ...

주어진 확장자를 가진 파일이 특정 처리기로 전달되어야 함을 Apache에 알립니다. 핸들러는 내부(cgi-script 및 기타)이거나 앞서 Action 지시어에서 설명한 외부일 수 있습니다.

AddLanguage MIME 언어 확장자 ...

파일 확장자와 응답으로 전송된 언어 코드 간의 관계를 설정합니다.

AddType MIME 유형 확장자 ...

클라이언트에 대한 응답을 위한 파일 확장자와 MIME 코드의 새로운 매핑으로 MIME 유형 테이블을 업데이트합니다.

DefaultLanguage MIME 언어

다른 방법으로 이를 수행할 수 없는 경우 항상 전송되도록 응답 언어를 설정합니다.

ForceType MIME 유형

지정된 지시문이 할당된 디렉터리에서 지정된 MIME 유형으로 응답을 강제합니다.

RemoveEncoding 확장자 ...

이러한 확장자를 가진 파일에 대한 응답에서 MIME 인코딩 코드를 제거합니다.

RemoveHandler 확장 ...

이러한 확장자를 가진 파일에 대해 핸들러를 실행하지 않도록 Apache에 지시합니다.

RemoveType 확장 ...

클라이언트에 대한 응답의 MIME 유형을 기본 MIME 유형으로 재설정합니다.

SetHandler 핸들러

이 지시어가 할당된 모든 파일에 대해 이 핸들러를 강제로 호출합니다.

TypesConfig 파일 이름 [A]

MIME 유형 매핑 테이블의 위치를 ​​지정합니다. 기본값 - conf.mime.types

mod_mime_magic - 응답으로 전송된 파일의 MIME 유형을 결정하기 위해 복잡한 규칙을 사용하는 모듈

MimeMagic파일 파일 이름

웹 서버의 특정 문서 영역 또는 Apache에서 사용할 수 있는 모든 문서에 대해 지정된 파일을 사용하여 모듈 작업을 활성화합니다.

mod_negotiation - 클라이언트와 서버 간에 전송된 데이터 유형의 협상 제공

CacheNegotiatedDocs [A]

중간 프록시 서버와 클라이언트 컴퓨터에 일관된 콘텐츠가 포함된 문서를 캐싱할 수 있습니다.

LanguagePriority MIME 언어... [A]

클라이언트가 요청한 문서 언어를 정확하게 판별하거나 찾을 수 없는 경우 클라이언트에 대한 응답에 사용되는 언어의 우선순위를 결정합니다.

mod_alias - 보다 임의적인 방식으로 웹 서버 디렉토리에 문서를 배치할 수 있습니다.

별칭 URL 경로 파일 시스템 경로

지정된 URL "아래"에 있는 문서는 지정된 위치 "아래"에서 검색되어야 함을 Apache에 알립니다. 파일 시스템.

AliasMatch URL-regexp 파일 시스템 경로

URL을 정규식과 비교하여 파일 시스템에서 데이터를 검색하기 위한 보다 복잡한 규칙을 정의합니다.

URL 경로 URL 리디렉션

요청에 대한 응답으로 URL 경로와 "아래" 문서는 지정된 응답 코드(기본적으로 302)를 반환하고 클라이언트를 다른 URL로 리디렉션합니다. 상태는 숫자로 지정하거나 기호로 지정할 수 있습니다. 영구(301), 임시(302), 기타 참조(303), 사라짐(410). 410 응답 코드의 경우 응답 URL을 생략해야 합니다.

RedirectMatch URL-정규식 URL

리디렉션과 유사하게 정확한 일치가 아닌 지정된 정규식을 사용하여 전달된 URL을 비교합니다.

RedirectTemp URL 경로 URL

302 응답 코드를 사용하여 리디렉션과 유사합니다.

RedirectPermanent URL 경로 URL

301 응답 코드를 사용하여 리디렉션과 유사합니다.

ScriptAlias ​​URL 경로 파일 시스템 경로

Alias와 유사하게 작동하지만 대상 디렉토리 내의 모든 파일에 대해 실행되도록 cgi-handler 핸들러를 자동으로 설정합니다.

ScriptMatch URL-regexp 파일 시스템 경로

정규식을 사용하여 URL을 확인하는 ScriptAlias와 유사합니다.

mod_rewrite - 서버의 문서 위치를 제어합니다.

Apache 지시어에 대한 간략한 설명 모음에서는 이 복잡한 모듈이 해결하는 작업을 설명하기가 어렵습니다. 조치 지침으로 apache 매뉴얼 "모듈 mod_rewrite URL 재작성 엔진" 및 "URL 재작성 가이드"의 특별 섹션을 사용하는 것이 가장 좋습니다. 이 모듈을 사용하는 방법을 배우는 가장 쉬운 방법은 이를 사용하여 특정 문제와 해당 솔루션을 고려하는 것입니다.

하위 프로세스 생성을 담당하는 단일 기본(상위) 프로세스가 있으며, 하위 프로세스는 연결을 수신하고 클라이언트 요청을 처리합니다. Apache는 항상 들어오는 요청을 처리할 준비가 되어 있는 몇 가지 사용되지 않는 서버 프로세스를 예비로 유지하려고 시도합니다. 따라서 클라이언트는 요청이 처리되기 전에 분기될 새 하위 프로세스가 생성될 때까지 기다릴 필요가 없습니다. MaxSpareServers 및 MaxClients 지시문은 상위 프로세스가 요청을 서비스하기 위해 하위 프로세스를 생성하는 방법을 제어합니다.

일반적으로 Apache는 매우 독립적이므로 대부분의 웹사이트에서는 이러한 지시문을 기본값에서 변경할 필요가 없습니다.

256개 이상의 동시 요청을 처리해야 하는 사이트의 경우 MaxClients를 늘려야 할 수 있으며, 메모리가 제한된 서버에 있는 사이트의 경우 MaxClients를 줄여서 서버가 메모리를 디스크로 스왑하고 다시 메모리를 강제로 교체하지 않도록 해야 할 수 있습니다. 심각한 업무 둔화를 초래합니다.

모듈 선택은 우수한 Apache 웹 서버 보안을 보장하는 가장 중요한 단계 중 하나입니다. 우리는 한 가지 좋은 규칙을 따라야 합니다. 적을수록 좋습니다. 우리가 필요로 하는 기능을 활성화하고 제공하기 위해 좋은 보호, 다음 모듈을 활성화해야 합니다:

httpd_core - 모든 Apache 설치에 필요한 Apache 코어입니다.

mod_access - 클라이언트의 IP 주소 또는 호스트 이름에 따라 서버 디렉토리에 대한 액세스를 제어합니다.

mod_auth - 텍스트 파일을 사용하여 사용자에게 권한을 부여하는 데 필요합니다.

mod_dir - 인덱스 파일("index.html", "default.html" 등)을 찾는 데 필요합니다.

mod_log_config - 서버로 전송된 요청의 로깅을 제공합니다. mod_mime - 서버에서 다양한 MIME 유형의 구성을 용이하게 하는 지시어가 포함되어 있습니다.

다른 모든 Apache 모듈은 비활성화되어야 합니다. 필요하지 않기 때문에 안전하게 끌 수 있습니다. 불필요한 모듈을 비활성화함으로써 공격자가 이러한 모듈 중 하나에서 발견된 취약점을 악용하는 것을 방지합니다.

두 개의 Apache 모듈(mod_autoindex 및 mod_info)이 가장 위험하다는 점도 주목할 가치가 있습니다. 첫 번째 모듈을 사용하면 디렉터리를 자동으로 색인화할 수 있으며 기본적으로 활성화됩니다. 작동 방식을 보려면 예를 들어 http://server_name/icons/를 입력하고 이 디렉토리에 색인 파일이 없으면 전체 디렉토리의 내용이 표시됩니다. 두 번째 모듈인 mod_info는 전체 Apache 웹 서버 구성을 노출하므로 인터넷을 통해 액세스할 수 없습니다.

다음 질문은 모듈을 컴파일하는 방법입니다. 제가 보기에는 동적 방법(프로그램이 시작될 때 코드가 수집됨)보다는 정적 방법(코드가 실행 파일에 포함됨)이 가장 좋은 것 같습니다. 정적 메서드를 선택하면 또 다른 모듈인 mod_so가 필요하지 않습니다.

독립적 인 일:데이터베이스 서버 작업 MySQL 데이터. 테이블 생성. 데이터베이스에 데이터를 삽입, 검색 및 업데이트합니다.

실험실 작업 번호 12. Apache 웹 서버 설치 및 구성.

독립적 인 일: MySQL 데이터베이스 서버로 작업합니다.

Apache는 인터넷에서 가장 널리 사용되는 웹 서버로 활성 사이트의 절반 이상을 제공합니다.

이 기사에서는 Ubuntu/Debian 시스템의 일반적인 구성 파일과 기본 Apache 설정을 살펴보겠습니다.

메모: Apache 파일은 배포판에 따라 다르기 때문에 이 문서는 RHEL 사용자에게는 적합하지 않습니다.

우분투/데비안에 아파치 설치하기

Apache 웹 서버가 아직 설치되지 않은 경우 다음 명령을 사용하십시오.

sudo apt-get 업데이트
sudo apt-get 설치 apache2

성공적으로 설치되었는지 확인하려면 서버의 IP 주소로 브라우저를 엽니다. Apache 시작 페이지가 화면에 나타납니다.

효과가있다!
이는 이 서버의 기본 웹 페이지입니다.
그만큼 웹 서버소프트웨어가 실행 중이지만 아직 콘텐츠가 추가되지 않았습니다.

Apache 파일 계층 구조

Ubuntu 및 Debian에서 Apache는 /etc/apache2 폴더에 구성 파일을 저장합니다.

CD /etc/apache2
ls -F
apache2.conf envvars 매직 모드 활성화/사이트-사용 가능/
conf.d/ httpd.conf mods-available/ ports.conf sites-enabled/

이 폴더에는 여러 가지 간단한 파일이 포함되어 있습니다. 텍스트 파일및 하위 디렉토리. 그 중 가장 중요한 것은:

  • apache2.conf: 주 서버 구성 파일. 거의 모든 구성을 수행할 수 있습니다.
  • ports.conf: 이 파일은 가상 호스트가 수신 대기하는 포트를 지정합니다. SSL을 설정할 때 이 파일을 확인하세요.
  • conf.d/: 이 디렉토리는 Apache 구성의 특정 측면을 제어합니다. 예를 들어 SSL 구성 및 표준 보안 정책을 정의하는 데 자주 사용됩니다.
  • sites-available/: 이 디렉터리에는 사이트에서 제공될 콘텐츠를 결정하는 사용 가능한 모든 가상 호스트가 저장됩니다. 이 호스트는 활성 상태가 아닙니다.
  • sites-enabled/: 이 디렉터리는 활성 가상 호스트를 정의합니다. 일반적으로 sites-available 디렉터리에 정의된 파일에 대한 기호 링크가 포함되어 있습니다.
  • mods-/: 이 디렉토리는 사이트 사용 가능 및 사이트 활성화와 동일한 방식으로 작동합니다. 모듈을 저장합니다.

보시다시피 Apache 구성은 기본 구성 파일로 제한되지 않고 여러 파일과 디렉터리에 분산되어 있습니다. 이 구성 구조는 새 파일로 확장될 수 있습니다.

아파치 구성 파일

기본 Apache 설정은 /etc/apache2/apache2.conf에 저장됩니다.

이 파일에는 Apache 전역 설정, 기본 서버 설정 및 가상 호스트 구성의 세 가지 주요 섹션이 포함되어 있습니다.

Ubuntu 및 Debian에서는 대부분의 파일이 전역 설정 전용이며 기본 서버 구성 및 가상 호스트 설정은 파일 끝에서 include 지시어를 사용하여 처리됩니다.

파일 끝에는 많은 포함 설정이 있습니다. 모듈을 정의하고, ports.conf 문서, conf.d/ 디렉터리의 특정 파일, sites-enabled/ 디렉터리의 가상 호스트 설정을 추가합니다.

Apache 웹 서버의 전역 설정에 중점을 두겠습니다.

Apache 전역 설정

이 섹션에서는 다음을 검토합니다. 중요한 매개변수 전역 설정아파치.

시간 초과

기본적으로 이 매개변수는 300으로 설정됩니다. 이는 서버가 각 요청을 완료하는 데 최대 300초가 있음을 의미합니다. 대부분의 경우 이 값은 매우 크므로 30~60초로 줄이는 것이 좋습니다.

살아 유지

이 설정이 On이면 서버는 클라이언트가 단일 연결 내에서 여러 개체를 요청할 수 있도록 허용합니다. 매개변수에 다음이 있는 경우 끄기 값, 각각의 새로운 요청은 개별 연결을 생성합니다. 이 동작은 트래픽이 많은 사이트의 과부하로 이어질 수 있습니다.

MaxKeepAlive요청

이 설정을 사용하면 연결당 최대 요청 수를 정의할 수 있습니다. 이를 통해 Apache 성능을 향상시킬 수 있습니다.

값이 0이면 웹 서버가 단일 연결 내에서 요청을 무제한으로 처리할 수 있습니다.

KeepAlive시간 초과

이 매개변수는 요청 간의 시간 간격을 설정합니다. 클라이언트가 지정된 시간 내에 다른 요청을 생성하지 않은 경우. 웹 서버가 연결을 종료합니다. 이후에 이 클라이언트가 요청하면 서버는 새 연결을 생성합니다.

MPM 설정

Apache가 어떤 모듈로 컴파일되었는지 확인하려면 터미널을 열고 다음을 입력하세요.

apache2 -l
모듈로 컴파일:
core.c
mod_log_config.c
mod_logio.c
프리포크.c
http_core.c
mod_so.c

보시다시피, 이 경우 웹 서버는 prefork.c 모듈과 apache2.conf 파일로 컴파일됩니다.

가상 호스트 구성

기본 가상 호스트는 sites-available 디렉터리의 기본 파일에 있습니다.

일반적인 가상 호스트 형식을 보려면 다음 파일을 엽니다.

sudo nano /etc/apache2/sites-available/default

ServerAdmin webmaster@localhost
DocumentRoot /var/www

옵션 FollowSymLinks
AllowOverride 없음


옵션 색인 FollowSymLinks MultiViews
AllowOverride 없음
주문 허용, 거부
모두에게 허용하다

. . .

기본적으로 가상 호스트는 포트 80에서 요청을 처리합니다.

이는 웹 서버가 반드시 해당 포트의 모든 요청을 처리한다는 의미는 아닙니다. Apache는 구성을 재정의할 수 있습니다.

최상위 가상 호스트 설정

이러한 설정은 가상 호스트 섹션에서 설정되며 전체 가상 호스트에 적용됩니다.

ServerAdmin 매개 변수는 서버에 문제가 발생할 경우 사용할 연락처 이메일 주소를 지정합니다. 이 주소를 오류 페이지에 붙여넣을 수 있습니다. 이를 수행하려면 ServerSignature 매개변수(/etc/apache2/conf.d/security 파일에 있음)를 이메일로 설정해야 합니다.

ServerName 지시어는 서버의 도메인 이름이나 IP 주소를 지정합니다. 이는 ServerName 값과 일치하는 경우 기본 설정을 재정의할 수 있는 가상 호스트별 설정입니다.

ServerAlias ​​매개변수를 사용하면 사이트 별칭(동일한 콘텐츠로 연결되는 대체 이름 및 경로)을 추가할 수 있습니다. 예를 들어 도메인 별칭은 www로 설정되는 경우가 많습니다.

DocumentRoot는 웹 서버가 이 가상 호스트의 콘텐츠를 저장하는 디렉터리를 지정합니다. Ubuntu에서 기본값은 /var/www입니다.

디렉터리 설정

가상 호스트 구성에는 개별 파일 시스템 디렉터리 처리를 구성하기 위한 특수 섹션이 있습니다. 이러한 설정은 재정의될 수도 있습니다.

먼저, 가상 호스트는 / 디렉터리(루트 디렉터리)에 대한 일련의 규칙을 제안합니다. 이 섹션에서는 파일 시스템에서 제공되는 모든 파일과 관련된 기본 가상 호스트 구성을 제공합니다.

기본적으로 Ubuntu는 파일 시스템에 어떠한 제한도 두지 않습니다. Apache는 다음과 같은 몇 가지 표준 액세스 제한을 추가할 것을 권장합니다.


옵션 FollowSymLinks
AllowOverride 없음
주문 거부, 허용
모두 거부

후속 디렉터리 정의에서 달리 명시하지 않는 한 모든 콘텐츠에 대한 액세스가 차단됩니다.

AllowOverride 매개변수를 사용하면 .htaccess 파일을 사용하여 구성을 재정의할 수 있습니다. 설정을 재정의하려면 .htaccess 파일이 콘텐츠 디렉터리에 있어야 합니다. 기본적으로 이 기능은 비활성화되어 있습니다.

별칭 및 ScriptAlias ​​설정

때로는 Alias ​​및 ScriptAlias ​​매개변수가 Directory 섹션 앞에 나타나는 경우도 있습니다.

Alias ​​지시문을 사용하면 DocumentRoot 외부의 디렉터리를 제공되는 콘텐츠에 추가할 수 있습니다.

ScriptAlias는 비슷한 방식으로 작동하지만 실행 파일이 있는 디렉터리 경로가 포함되어 있습니다.

예를 들어 example.com에 대한 가상 호스트의 이러한 줄은 example.com/content/를 요청할 때 /path/to/content/ 디렉터리의 콘텐츠에 대한 액세스를 허용합니다.

별칭 /content/ /path/to/content/

추가 디렉토리에 대한 액세스를 열 때 해당 디렉토리에 대해 제한된 권한을 설정해야 한다는 점을 기억하십시오.

Apache에서 사이트 및 모듈 활성화

가상 호스트 파일을 생성한 후에는 이를 활성화할 수 있습니다. 이렇게 하려면 사이트 활성화 디렉터리에 있는 파일에 대한 심볼릭 링크를 만들어야 합니다.

sudo a2ensite 가상 호스트 파일

사이트가 활성화되면 Apache를 다시 시작하여 웹 서버가 구성을 다시 읽을 수 있도록 합니다.

sudo 서비스 apache2 다시 로드

가상 호스트를 비활성화하려면 활성화된 사이트에서 심볼릭 링크를 제거해야 합니다.

sudo a2dissite 가상 호스트 파일

그런 다음 웹 서버를 다시 시작해야 합니다.

sudo 서비스 apache2 다시 로드

다음 명령을 각각 사용하여 Apache 모듈을 활성화 및 비활성화할 수 있습니다.

a2enmod
a2dismod

앞서 언급한 a2ensite 및 a2dissite 명령과 동일하게 작동합니다. 모듈을 활성화하거나 비활성화한 후에는 웹 서버를 다시 시작해야 합니다.

결론

이 기사에서는 다음 내용만 다루고 있습니다. 기본 설정 Apache 웹 서버 파일. Apache의 기능 세트는 모듈을 사용하여 크게 확장될 수 있습니다.

필요한 경우 추가 정보웹서버에 관해서는 문의해 주세요

Apache는 가장 널리 사용되는 무료 웹 서버입니다. 2016년 기준 전체 인터넷 사이트 중 33%, 약 3,040억개 사이트에서 사용되고 있다. 이 웹 서버는 인기 있는 NCSA 서버를 대체하기 위해 1995년에 개발되었으며 많은 문제를 해결했습니다. 소문에 따르면 그의 이름은 NCSA 오류를 수정하던 중 엉성한 이름에서 유래했다고 합니다. 이제 Windows, Linux 및 MacOS를 지원하고 충분한 유연성, 사용자 정의 및 기능을 제공하는 크로스 플랫폼 프로그램입니다. 이 프로그램은 모듈식 구조로 되어 있어 모듈을 사용하여 기능을 거의 무한정 확장할 수 있습니다.

몇 가지 명령을 사용하여 Linux에 Apache를 설치할 수 있지만 이 프로그램은 변경할 수 있는 매우 많은 설정과 활성화되면 더 잘 작동하는 모듈을 제공합니다. 이 문서에서는 Apache 설치 및 구성을 다루며 Ubuntu를 기본 시스템으로 사용하지만 다른 배포판에서도 이 단계를 반복할 수 있습니다. 프로그램 자체 설치뿐만 아니라 구성 방법, Apache 가상 호스트 설정 방법 및 가장 유용한 모듈도 살펴보겠습니다.

~에 이 순간, 제일 새 버전프로그램 2.4이므로 Apache 2.4 설정을 고려합니다. 내가 이미 말했듯이, 리눅스 프로그램말 그대로 몇 가지 명령으로 설치됩니다. Ubuntu에 설치하려면 먼저 시스템을 최신 버전으로 업데이트하세요.

sudo 적절한 업데이트
$ sudo 적절한 업그레이드

그런 다음 apache2를 설치하십시오.

sudo apt 설치 apache2

다른 배포판에서는 프로그램 패키지를 this 또는 httpd라고 부르며 설치해도 문제가 발생하지 않습니다.

설치가 완료된 후 컴퓨터를 켠 후 수동으로 시작하지 않도록 웹 서버를 시작에 추가해야 합니다.

sudo systemctl apache2 활성화

아파치 설정

Apache 구성이 단일 파일에 저장되던 시대는 지났습니다. 하지만 맞습니다. 모든 것이 자체 디렉터리에 배포되면 구성 파일을 탐색하는 것이 더 쉽습니다.

모든 설정은 /etc/apache/ 폴더에 포함되어 있습니다:

  • 파일 /etc/apache2/apache2.conf기본 설정을 담당합니다.
  • /etc/apache2/conf-available/* - 추가 세팅웹 서버
  • /etc/apache2/mods-available/*- 모듈 설정
  • /etc/apache2/sites-available/*- 가상 호스트 설정
  • /etc/apache2/ports.conf- 아파치가 실행되는 포트
  • /etc/apache2/envvars

보시다시피 conf, mods 및 site에 대한 두 개의 폴더가 있습니다. 이는 사용 가능하며 활성화되어 있습니다. 모듈이나 호스트를 활성화하면 사용 가능한 폴더에서 활성화 폴더로 연결되는 심볼릭 링크가 생성됩니다. 따라서 사용 가능한 폴더에서 설정을 수행하는 것이 좋습니다. 일반적으로 말하면, 이러한 폴더 없이도 할 수 있고 모든 것을 가져와서 구식 방식으로 하나의 파일에 덤프하면 모든 것이 작동하지만 지금은 아무도 그렇게 하지 않습니다.

먼저 살펴 보겠습니다. 메인 파일구성:

vi /eta/apache2/apache2.conf

시간 초과- 서버가 중단된 데이터 전송 또는 수신을 계속 시도하는 시간을 나타냅니다. 160초면 충분합니다.

연결 유지 켜기- 매우 유용한 매개변수로, 한 번의 연결로 여러 파일을 전송할 수 있습니다. HTML 페이지, 이미지 및 CSS 파일도 있습니다.

MaxKeepAlive요청 100- 연결당 최대 요청 수는 많을수록 좋습니다.

KeepAliveTimeout 5- 연결 시간 제한은 일반적으로 페이지를 로드하는 데 5~10초이면 충분하므로 더 이상 설정할 필요가 없지만 모든 데이터가 로드되기 전에 연결을 끊을 필요도 없습니다.

사용자, 그룹- 프로그램이 실행될 사용자 및 그룹.

호스트 이름 조회- IP 주소 대신 로그에 쓰기 도메인 이름, 작업 속도를 높이려면 비활성화하는 것이 좋습니다.

로그레벨- 오류 로깅 수준. 기본적으로 경고가 사용되지만 로그가 더 느리게 채워지도록 하려면 오류를 활성화하면 됩니다.

포함하다- 모든 include 지시문은 위에서 설명한 구성 파일 연결을 담당합니다.

디렉토리 지시문은 파일 시스템의 특정 디렉토리에 대한 액세스 권한을 설정하는 역할을 합니다. 구문은 다음과 같습니다.


매개변수 값

여기에서는 다음과 같은 기본 옵션을 사용할 수 있습니다.

재정의 허용- 이 디렉터리에서 .htaccess 파일을 읽어야 하는지 여부를 나타냅니다. 이러한 파일은 동일한 설정 파일과 동일한 구문을 갖습니다. 모두 - 모든 것을 허용하고, 없음 - 이 파일을 읽지 않습니다.

문서 루트- 사용자에게 표시하기 위해 어떤 폴더 문서를 가져와야 하는지 설정합니다.

옵션- 이 폴더에서 어떤 웹 서버 기능을 허용해야 하는지 나타냅니다. 예를 들어 All - 모든 것을 허용하고, FollowSymLinks - 기호 링크를 따르고, Indexes - 인덱스 파일이 없는 경우 디렉터리의 내용을 표시합니다.

필요하다- 이 디렉토리에 액세스할 수 있는 사용자를 설정합니다. 모두 거부 필요 - 모든 사람을 거부하고, 모두 허용 필요 - 모든 사람을 허용합니다. 사용자를 명시적으로 지정하려면 all 대신 user 또는 group 지시문을 사용할 수 있습니다.

주문하다- 디렉토리에 대한 액세스를 제어할 수 있습니다. 허용, 거부 - 지정된 항목을 제외한 모든 사람을 허용하거나 거부, 허용 - 지정된 항목을 제외한 모든 사람을 거부합니다..ru의 두 가지 값을 허용합니다.

기본값에 만족하므로 여기서는 이러한 모든 지시문을 사용하지 않지만 .htaccess 파일에서는 매우 유용할 수 있습니다.

/etc/apache2/ports.conf 파일이 남았습니다.

여기에는 프로그램이 어떤 포트에서 작동해야 하는지 알려주는 Listen 지시문 하나만 포함되어 있습니다.

마지막 파일은 /etc/apache2/envvars입니다. 이 파일을 사용할 가능성은 거의 없으며 다른 구성 파일에서 사용할 수 있는 변수가 포함되어 있습니다.

htaccess를 통해 Apache 서버 설정

.htaccess 파일을 사용하면 Ubuntu 웹 서버가 특정 디렉터리에서 작동하도록 구성할 수 있습니다. 이 파일에 지정된 모든 명령어는 마치 태그에 래핑된 것처럼 실행됩니다. 만약 그것들이 메인 파일에 있었다면.

서버가 .htaccess의 지침을 읽으려면 기본 또는 가상 호스트 파일에 있는 이 폴더의 설정에 다음이 포함되어서는 안 된다는 점에 유의하는 것이 중요합니다. AllowOverride 없음모든 설정이 작동하려면 필요한 모두 무시 허용.

그렇지 않으면 모듈 활성화부터 단순히 폴더 액세스 변경까지 Apache 서버의 모든 구성을 여기에서 수행할 수 있습니다. 우리는 이미 모든 매개변수를 고려했으므로 몇 가지 예를 들어보겠습니다.

주문 거부, 허용
모두 거부

구성 폴더에 적용하는 데 중요한 이 폴더에 대한 모든 사람의 액세스를 거부합니다. 대부분의 경우 .htaccess는 요청을 즉시 변경할 수 있는 mod_rewrite 모듈과 함께 작동하는 데 사용됩니다.

RewriteEngine 켜기
RewriteRule ^product/([^/\.]+)/?$ product.php?id=$1 [L]

그러나 이는 매우 광범위한 주제이므로 이 기사의 범위를 벗어납니다.

Apache 모듈 구성

이미 말했듯이 Apache는 - 모듈식 프로그램, 모듈을 사용하여 기능을 확장할 수 있습니다. 사용 가능한 모든 로더 모듈과 모듈 구성 파일은 /etc/apache/mods-available 폴더에 있습니다. 그리고 /etc/apache/mods-enable에서 활성화됩니다.

하지만 이러한 폴더의 내용을 분석할 필요는 없습니다. 모듈을 추가하여 Apache 2.4를 구성하는 작업은 특수 명령을 사용하여 수행됩니다. 다음 명령을 사용하여 실행 중인 모든 모듈을 볼 수 있습니다.

다음 명령을 사용하여 모듈을 활성화할 수 있습니다.

sudo a2enmod 모듈_이름

그리고 다음을 비활성화합니다.

sudo a2dismod 모듈_이름

모듈을 활성화 또는 비활성화한 후에는 Apache를 다시 시작해야 합니다.

sudo systemctl 다시 시작 apache2

이러한 명령 중 하나가 실행되면 확장명이 load인 모듈 파일에 대한 심볼릭 링크가 mods-available 디렉터리에 생성되거나 삭제됩니다. 이 파일의 내용을 보면 한 줄만 있습니다. 예를 들어:

vi /etc/apache2/mods-available/deflate.load

이는 apache2.conf 파일에 이 행을 추가하기만 하면 모듈이 활성화될 수 있음을 의미합니다. 그러나 혼란을 피하기 위해 그렇게 하는 것이 관례입니다.

모듈 설정은 동일한 폴더에 있으며, 로드 대신 .conf 확장자를 가진 파일에만 있습니다. 예를 들어 수축 압축에 대한 동일한 모듈의 설정을 살펴보겠습니다.

vi /etc/apache2/mods-available/deflate.conf

conf-available 폴더에 있는 파일은 동일한 모듈이며 Apache와 별도로 설치됩니다. 이는 PHP 모듈 또는 기타 프로그래밍 언어를 활성화하는 구성 파일일 수 있습니다. 여기에서는 모든 것이 정확히 동일하게 작동하며 이러한 모듈을 활성화 및 비활성화하는 명령만 약간 다릅니다.

a2enconf 모듈_이름

a2disconf 모듈 이름

보시다시피 모듈 활성화는 매우 간단합니다. 필수이지만 기본 모듈에서는 활성화되지 않은 몇 가지 모듈을 활성화해 보겠습니다.

sudo a2enmod 만료
$ sudo a2enmod 헤더
$ sudo a2enmod 다시 쓰기
$ sudo a2enmod SSL

만료 및 헤더 모듈은 서버의 부하를 줄입니다. 마지막 요청 이후 문서가 변경되지 않은 경우 Not Modified 헤더를 반환합니다. 만료 모듈을 사용하면 브라우저가 수신된 문서를 캐시해야 하는 시간을 설정할 수 있습니다. Rewrite를 사용하면 요청된 주소를 즉시 변경할 수 있어 CNC 링크 등을 생성할 때 매우 유용합니다. 그리고 SSL 암호화 지원을 활성화하는 마지막 기능입니다. 설정을 완료한 후 apache2를 다시 시작하는 것을 잊지 마십시오.

Apache 가상 호스트 구성

하나의 물리적 시스템에서 하나의 웹사이트만 호스팅할 수 있다면 그다지 편리하지 않을 것입니다. Apache는 단일 컴퓨터에서 수백 개의 사이트를 지원하고 각 사이트에 대해 올바른 콘텐츠를 제공할 수 있습니다. 이를 위해 가상 호스트가 사용됩니다. 서버는 요청이 어느 도메인으로 들어오는지 확인하고 이 도메인의 폴더에서 필요한 콘텐츠를 제공합니다.

Apache 호스트 설정은 /etc/apache2/hosts-available/ 폴더에 있습니다. 새 호스트를 생성하려면 임의의 이름으로 파일을 생성하고(호스트 이름으로 끝나는 것이 더 좋음) 필요한 데이터로 채우면 됩니다. 이러한 매개변수를 모두 지시어로 래핑해야 합니다. VirtualHost.여기에 설명된 매개변수 외에도 다음이 사용됩니다.

  • 서버 이름- 기본 도메인 이름
  • 서버 별칭- 사이트에 액세스할 수 있는 추가 이름
  • 서버관리자 - 이메일관리자
  • 문서 루트- 이 도메인에 대한 문서가 포함된 폴더

예를 들어:

vi /etc/apache2/sites-available/test.site.conf