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

구성 (위도 구성 - 상호 배열)은 특별한 논리적 및 방법론적 장치, 다른 주제에 대한 지식, 동일한 대상에 대한 다른 아이디어를 종합하기 위한 정신적 기술입니다.

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

구성 파일은 상당히 단순한 형식의 파일입니다. 각 줄은 키워드와 하나 이상의 인수입니다. 단순화를 위해 대부분의 행에는 하나의 인수만 포함됩니다. # 기호 다음에 오는 모든 것은 주석이며 무시됩니다.

Apache는 /etc/httpd/conf/ 디렉토리의 서비스 파일을 변경하여 구성됩니다. 기본 웹 서버 구성 파일은 httpd.conf입니다. 구성 지시자는 기본 구조 Include filename.conf를 포함하는 다양한 파일에 배치할 수 있습니다.

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

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

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

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

레벨 V - 지시어는 다른 가상 호스트에 대해 다르게 사용될 수 있습니다.

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

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

어느 시점에서든 지시문에서 filename 매개변수를 사용하면 ServerRoot 디렉토리에서 파일까지의 절대 경로("/"로 시작) 또는 상대 경로를 나타냅니다.

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

액세스 구성 파일 이름

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

AccessFileName 파일 파일 ...

즉석에서 구성하는 데 사용되는 액세스 파일의 이름을 설정합니다. 기본값은 .htaccess입니다.

AddModule 모듈 모듈 ... [A]

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

AddModule 모듈 모듈 ...

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

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

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

없음 - 무시합니다.

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

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

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

FileInfo - 파일 유형 및 해당 핸들러를 관리하기 위한 지시문.

AuthConfig - Auth* 디렉토리에 액세스하기 위한 지시문.

제한 - 허용/거부/주문 지시문.

AuthName 영역

인증 유형

웹 사이트 디렉토리에 액세스하기 위한 사용자 이름과 비밀번호를 요청하고 전달하는 방법을 지정하는 데 사용됩니다. 가장 자주 그들은 기본을 사용하고 덜 자주 - 다이제스트 및 기타를 사용합니다.

BindAddress 주소 [A]

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

ClearModuleList[A]

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

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

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

CoreDumpDirectory 디렉토리 이름 [A]

충돌에 의해 생성된 코어 덤프 파일이 저장될 디렉토리를 Apache에 지정합니다.

기본 유형 mimetype

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

...

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

...

정규식에 의해 제공된 디렉토리 그룹을 정의하고 Apache가 이 그룹의 디렉토리 및 파일과 함께 작동하도록 규칙을 설정합니다.

문서 루트 디렉토리 이름

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

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

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

오류 문서 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를 시작하고 환경에서 프로세스를 분기하고 지정된 이름에 해당하는 권한과만 관련이 있습니다.

HostName조회 on|off|더블

방문자의 호스트 이름을 역방향 DNS에서 결정할 수 있는지 여부를 제어합니다. 느리게 작동하며 기본적으로 비활성화된 것으로 간주됩니다. Double은 호스트 이름이 요청하는 호스트의 IP 주소에 대해 추가 검사를 받아야 함을 나타냅니다.

신원 확인 켜기|끄기

RFC1413 인증을 활성화합니다. 이 기능을 활성화하면 서버에 대한 액세스 시간이 크게 늘어납니다.

...

그리고이 옵션이 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 비상|경고|치명타|오류|경고|통지|정보|디버그

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

MaxClients 수[A]

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

MaxKeepAlive요청 수[A]

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

MaxRequestsPerChild 수[A]

이 지시문은 개별 자식 프로세스가 처리할 수 있는 요청 수를 제한합니다. MaxRequestsPerChild가 0으로 설정되면 요청 수는 무제한입니다.

MaxSpareServers 수[A]

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

MinSpareServers 수 [A]

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

NameVirtualHost 포트[A]

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

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

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

PidFile 파일 이름 [A]

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

Apache 포트를 지정합니다. 0에서 65535 사이의 숫자입니다(일부 포트는 다른 프로토콜에서 사용될 수 있다는 점에 유의하십시오. /etc/services 참조). http 프로토콜의 표준 포트는 80입니다.

사용자 ID 필요|그룹 ID|유효한 사용자|파일 소유자|그룹 소유자 [A]

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

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

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

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

ResourceConfig 파일 이름[A]

서버는 httpd.conf를 읽은 후 이 파일에서 추가 지시문을 읽습니다. 파일 이름은 ServerRoot에 상대적입니다. 비활성화 가능: ResourceConfig /dev/null

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

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

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

모두 만족|모두 [A]

Allow 및 Require가 모두 사용되는 경우 액세스 정책을 지정합니다. 사용자 이름/비밀번호 및 클라이언트 주소로 영역에 대한 접근이 제한된 경우에 사용합니다. 이 경우 기본값("all")을 사용하려면 클라이언트가 주소를 확인하고 올바른 사용자 이름과 암호를 입력해야 합니다. "any" 매개변수의 경우 클라이언트는 올바른 사용자 이름과 암호를 입력하거나 호스트 제한을 통과하면 액세스 권한을 얻습니다. 암호를 사용하여 액세스를 제한하는 데 사용할 수 있지만 암호가 없는 특정 주소의 클라이언트는 통과할 수 있습니다.

ScoreBoardFile 파일 이름 [A]

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

SendBufferSize 바이트[A]

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

서버관리자 이메일

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

ServerAlias ​​호스트 이름

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

서버 이름 호스트 이름

지시문은 서버의 이름을 설정합니다. 링크 빌딩에 사용됩니다. 이름이 설정되지 않은 경우 서버는 자체 IP 주소에서 이름을 가져오려고 시도합니다.

서버 경로 경로

지시문은 호스트에 대해 상속된 경로 이름을 설정합니다.

서버루트 경로[A]

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

서버 서명 온|ff|메일

서버 생성 문서의 맨 아래에 문자열을 구성합니다. 기본적으로 비활성화됨, 켜짐 - 가상 호스트의 서버 버전 및 ServerName 표시, 이메일은 ServerAdmin에 대한 mailto: 링크 추가

ServerTokens 최소|OS|전체 [A]

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

ServerType 독립형|inetd[A]

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

시작 서버 수[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 정규식 환경 변수[=값] ] ... [A]

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

BrowserMatchNoCase 정규식 환경 변수[=값] ] ... [A]

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

SetEnvIf 속성 정규식 환경 변수[=값] ] ... [A]

지시문이 수행하는 작업은 BrowserMatch와 완전히 유사하지만 User-Agent: Remote_Host 대신 다른 헤더를 사용할 수 있습니다. Remote_Addr; 원격 사용자; 요청_메소드; 요청_URI; 추천인

SetEnvIfNoCase 속성 정규식 환경 변수[=값] ] ... [A]

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

mod_unique_id - 고유한 UNIQUE_ID 환경 변수를 생성합니다.

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

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

mod_mime - 파일을 클라이언트에 전달할 때 파일의 MIME 유형을 결정하도록 설계됨

AddCharset 문자셋 확장자 ...

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

AddEncoding MIME-enc 확장자 ...

지정된 파일 확장자의 경우 원하는 MIME 인코딩을 사용하여 파일을 전송할지 여부를 Apache에 알립니다.

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

지정된 확장자를 가진 파일이 특정 핸들러에 전달되어야 한다고 Apache에 알립니다. 핸들러는 앞서 Action 지시문에서 설명한 것처럼 내부(cgi-sript 및 기타) 또는 외부일 수 있습니다.

AddLanguage MIME 언어 확장 ...

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

AddType MIME 형식 확장 ...

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

DefaultLanguage MIME 언어

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

ForceType MIME 유형

지정된 지시문이 관련된 디렉토리에서 지정된 MIME 유형으로 응답을 강제 실행합니다.

RemoveEncoding 확장 프로그램 ...

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

제거 핸들러 확장 ...

지정된 확장자를 가진 파일에 대한 처리기를 실행하지 않도록 Apache에 지시합니다.

RemoveType 확장자 ...

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

SetHandler 핸들러

이 지시문이 할당된 모든 파일에 대해 이 처리기를 강제로 호출합니다.

유형구성 파일 이름[A]

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

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

MimeMagicFile 파일 이름

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

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

CacheNegotiatedDocs[A]

중간 프록시 서버 및 클라이언트 컴퓨터에서 협상 가능한 콘텐츠가 있는 문서 캐싱을 활성화합니다.

LanguagePriority MIME 언어 ... [A]

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

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

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

주어진 URL "아래"에 있는 문서는 주어진 위치 "아래"에서 검색해야 한다고 Apache에 알립니다. 파일 시스템.

AliasMatch URL-regexp 파일 시스템 경로

URL을 정규식과 비교한 결과를 기반으로 파일 시스템에서 데이터를 찾기 위한 보다 복잡한 규칙을 정의합니다.

리디렉션 URL-경로 URL

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

RedirectMatch URL-regexp URL

리디렉션과 유사하게 정확히 일치하는 대신 지정된 정규식을 사용하여 전달된 URL을 비교합니다.

RedirectTemp URL-경로 URL

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

리디렉션영구 URL-경로 URL

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

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

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

ScriptMatch URL-regexp 파일 시스템-경로

ScriptAlias와 유사하며 URL의 정규식 유효성 검사가 포함됩니다.

mod_rewrite - 서버에서 문서 위치 관리

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

하위 프로세스 생성을 담당하는 단일 기본(상위) 프로세스가 있으며, 이는 차례로 연결을 수신 대기하고 클라이언트 요청을 처리합니다. Apache는 항상 들어오는 요청을 처리할 준비가 되어 있는 몇 개의 유휴 서버 프로세스를 유지하려고 합니다.따라서 클라이언트는 요청이 제공되기 전에 새로운 자식 프로세스가 생성될 때까지 기다릴 필요가 없습니다.부모 프로세스는 요청을 처리하기 위해 자식 프로세스를 만듭니다.

일반적으로 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 설정은 " httpd.conf" 디렉토리 " 회의".

Apache 및 PHP 구성 파일의 파일 경로에 특히 주의하십시오. 다양한 디렉토리와 파일에 대한 경로를 지정해야 하는 경우가 많습니다. UNIX 및 Windows 운영 체제는 서로 다른 디렉토리 구분 기호를 사용합니다. UNIX에서는 슬래시(/)가 사용되고 Windows에서는 백슬래시(\)가 사용됩니다. 일부 Apache 및 PHP 지시문은 두 가지 유형의 디렉토리 구분 기호와 함께 작동합니다. 그러나 Apache와 PHP는 원래 UNIX용으로 개발되었기 때문에 기본 형식을 사용하여 여러 문제를 피할 수 있습니다. 따라서 구성 파일의 경로 " httpd.conf" 그리고 " php.ini" UNIX 형식의 슬래시("/")로 작성하는 것이 좋습니다.

예를 들어:
ScriptAlias ​​​​"/php_dir/" "c:/php/" 파일 지시문 httpd.conf:

포트- Apache가 연결을 설정하는 데 사용하는 TCP 포트를 지정합니다. 기본적으로 포트 80이 지정됩니다. 지시문에서 포트를 지정할 수도 있습니다. 서버 이름.
포트 80 비표준 포트를 설정하는 유일한 이유는 표준 포트를 사용할 권한이 없는 경우입니다. 8080과 같은 비표준 포트를 사용할 때 포트 번호는 주소 " http://localhost:8080/".

서버 관리- 웹 서버 관리자의 지정된 전자 메일 주소를 포함합니다. 서버 동작 오류 시 표시되는 주소입니다.
서버 관리 [이메일 보호됨] 서버 이름- 서버에 대해 지정된 컴퓨터 이름을 포함합니다.
서버 이름 로컬 호스트:80 서버루트- Apache 웹 서버 파일이 포함된 디렉토리를 가리킵니다.
ServerRoot "C:/web_server/apache" 문서 루트- 웹 사이트 파일이 있는 디렉토리를 지정합니다.
DocumentRoot "C:/web_server/apache/htdocs" 컨테이너

이 컨테이너 내의 지시문 범위는 지시문에 지정된 디렉토리 내의 모든 파일 및 하위 디렉토리로 확장됩니다. 문서 루트.

옵션 FollowSymLinks에는 인덱스가 포함됩니다.
모두 재정의 허용
지령 재정의 허용값으로 설정 모두, 기본 구성 파일의 값을 재정의할 수 있습니다." httpd.conf"파일에서" .ht액세스".

지령 옵션 FollowSymLinks Apache가 심볼릭 링크를 따라갈 수 있도록 합니다.

지령 옵션 포함웹 사이트 페이지의 코드에서 SSI(Server Side Include) 지시문을 구현할 수 있습니다.

지령 옵션 인덱스인덱스 파일이 없는 경우 디렉토리의 내용을 반환하도록 지정합니다.

디렉토리 인덱스- 파일 이름을 지정하지 않고 디렉토리에 액세스할 때 표시되어야 하는 인덱스 파일의 지정된 목록을 포함합니다.
DirectoryIndex index.html index.htm index.php 지시문 스크립트별칭디렉토리 별칭을 만드는 데 사용됩니다. /cgi-bin/", 프로그램 및 CGI 스크립트가 포함되어 있습니다.
ScriptAlias ​​​​/cgi-bin/ "C:/web_server/apache/cgi-bin/" 다음으로 디렉토리에 대한 권한 및 제한을 구성해야 합니다. cgi-bin.

재정의 허용 없음
옵션 ExecCGI
주문 허용, 거부
모두에서 허용
이 작업은 보안 문제가 발생할 수 있으므로 디렉터리 옵션이 변경되지 않도록 하는 데 필요합니다.

지령 재정의 허용 없음이 디렉토리에 대한 옵션은 파일에 의해 재정의될 수 없다고 말합니다 " .ht액세스".

지령 옵션 ExecCGI CGI 스크립트의 실행을 허용합니다.

지시 주문 허용, 부인하다그리고 모두에서 허용디렉토리에 대한 액세스를 허용합니다.

추가 핸들러- Apache가 확장자가 있는 파일을 고려하도록 강제합니다. " exe" 그리고 " 박쥐", CGI 스크립트처럼.
AddHandler cgi 스크립트 .bat .exe 기본 유형확장자에서 유형을 결정할 수 없는 파일의 헤더를 설정합니다. 이 경우 모든 알 수 없는 파일일반 텍스트 파일처럼 취급됩니다. 알 수 없는 모든 파일 확장자를 HTML로 처리하려면 지시문을 다음과 같이 변경하십시오.
기본 유형 텍스트/html 기본 문자 집합 추가- HTML 문서의 헤더에 인코딩이 지정되지 않은 경우 기본 인코딩을 설정합니다.
AddDefaultCharset windows-1251

작업에 필요한 최소 속성을 설정합니다. 이를 위해 편집을 위해 파일을 엽니다. /etc/httpd/conf/httpd.conf

Apache는 세 가지 사용 가능한 다중 프로세서 모듈(mpm) 중 하나로 실행할 수 있습니다.

  1. 프리포크- 요청당 하나의 프로세스, 가장 일반적으로 사용되는 모듈
  2. 노동자- 각각에 대해 여러 스레드가 있는 여러 프로세스
  3. 이벤트- 표준 작업자 다중 프로세서 모듈의 새로운 실험 버전.

모듈에 대한 정보를 보려면 다음을 실행하십시오.

# httpd -V | grep "서버 MPM"

Apache 2.4의 구성 예


서버 제한 256
서버 시작 20
최소 예비 서버 20
최대 예비 서버 20
MaxRequestWorkers 256
MaxConnectionsPerChild 4000

MaxRequestWorkers를 ServerLimit과 같은 값으로 설정하십시오.

Apache 2의 구성 예

섹션에서 [다중 프로세서 모듈]> 예를 들어, 다음 값을 설정합니다.

서버 시작 5
MinSpareServers 10
MaxSpareServers 10
MaxClients 30
서버 제한 30

시작 서버— 시작될 프로세스의 수, 다음과 같이 계산됨 (총 메모리 - 서버, MySQL, Memcache 등의 메모리) / 프로세스 크기. 예를 들어 64Gb - 32Gb / 0.256Gb = 최대 125개 프로세스입니다.

최소 예비 서버- 유휴 프로세스의 최소 수.

MaxSpareServers최대 금액유휴 프로세스.

MaxClients- 프로세스 제한.

서버 제한- MaxClients와 동일한 값으로 설정합니다.

MaxClients의 계산에 신중하게 접근할 필요가 있습니다. 낮은 값으로 설정하면 클라이언트 요청당 웹 서버 서비스 거부 횟수가 증가할 수 있습니다. 설정도 매우 중요한이는 웹 서버의 스와핑 및 응답 시간의 상당한 증가로 이어질 수 있습니다.

vtb 서버의 1레벨 및 2레벨 구성을 사용하는 경우 제한이 다르게 설정됩니다. 생성된 페이지를 더 가벼운 웹 서버(예: nginx)에 제공하여 제한을 낮출 수 있습니다. 특정 값은 각 웹 서버에 대해 개별적으로 계산됩니다.

살아 유지

웹 서버에서 페이지를 요청할 때 브라우저는 CSS 스타일, 이미지 등을 로드하기 위해 많은 요청을 보냅니다. KeepAlive를 사용하면 단일 연결 내에서 페이지와 관련 파일을 요청할 수 있습니다.

  1. 이 라인에 대해 KeepAlive를 켜십시오. 킵 얼라이브 오프로 대체 킵 얼라이브 온.
  2. MaxKeepAlive요청 100으로 설정합니다.
  3. KeepAliveTimeout가장 자주 2 - 10 범위로 설정합니다. 5초로 설정하는 것이 좋습니다.

Linux Basics 시리즈의 앞부분에서 Apache 웹 서버 작업의 기본 사항을 다루었습니다. 인터넷에서 세계에서 가장 널리 사용되는 웹 서버입니다(2015년 7월 기준 Apache 38%, IIS 26%, Nginx 15%). 따라서 이에 대해 더 많이 알고 작동 방식을 이해할수록 해킹 시 더 많은 성공을 거둘 수 있습니다.

오늘 우리는 Apache 서버를 설정하는 기본 사항을 다룰 것입니다. 앞서 쓴 것처럼 Linux 또는 Unix의 거의 모든 응용 프로그램은 일반 텍스트인 구성 파일을 통해 구성 및 구성됩니다. 여기서 Apache도 예외는 아닙니다. 따라서 이 기사에서는 /etc/apache2 디렉토리에 있는 apache2.conf 구성 파일에 중점을 둘 것입니다.

1단계: Apache2 시작

Apache2를 시작하여 시작하겠습니다. 응용 프로그램 ->으로 이동하여 Kali 환경의 그래픽 셸을 통해 이 작업을 수행합니다. 칼리 리눅스-> 시스템 서비스 -> HTTP -> apache2는 아래 스크린샷과 같이 시작합니다.

또는 그것을 통해 실행 명령줄터미널에 다음 명령을 입력하여

칼리 > 서비스 apache2 시작

그러면 Apache2 데몬이 시작되고 이제부터 웹 서버는 웹에서 콘텐츠를 제공해야 합니다.

2단계: 서버 상태 확인

Apache 서버가 실행 중인지 확인하려면 브라우저에서 localhost 또는 127.0.0.1로 이동합니다. 아래 스크린샷과 같은 페이지가 표시되면 서버가 제대로 작동하고 있음을 의미합니다!

3단계: 구성 파일 열기

Apache를 구성하려면 /etc/apache2 디렉토리로 변경해야 합니다.

칼리 > cd /etc/apache2

이 디렉토리의 모든 파일 목록을 표시해 보겠습니다.

칼리 > ls -l

보시다시피 이 디렉토리에는 여러 파일과 하위 디렉토리가 있습니다. 지금은 apache2.conf 파일에만 관심이 있지만, 몇 가지 다른 구성 파일 및 폴더와 함께 나중에 필요하게 될 ports.conf 파일과 sites_available 폴더가 있습니다.

우리는 모든 곳에서 apache2.conf를 열 수 있습니다. 텍스트 에디터, 하지만 여기서는 Leafpad를 사용할 것입니다. 콘솔에 다음을 입력하기만 하면 파일을 열 수 있습니다.

칼리 > 리프패드 /etc/apache2/apache2.conf

보시다시피 이 명령이 열립니다. 텍스트 파일 Apache 웹 서버의 구성에 대한 모든 정보와 함께. 서버를 설정하기 위해 이제 이 파일의 모든 핵심 사항을 안내해 드리겠습니다.

4단계서버루트

아래로 스크롤하여 모든 주석을 건너뛰고 전역 설정 섹션이 시작되는 70행을 찾습니다. 여기에서 ServerRoot 설정을 볼 수 있습니다. 이것은 Apache 서버가 모든 서버 관련 파일을 저장하는 디렉토리 트리의 상단입니다. 84행은 ServerRoot를 정의합니다. /etc/apache2를 ServerRoot로 설정하려면 이 줄의 주석 처리를 제거하면 됩니다. 그렇게 하는 것이 좋습니다.

5단계: 시간 초과

다음 섹션에는 매개변수 값을 정의하는 변수가 있습니다: Timeout, KeepAlive, MaxKeepAliveRequests 및 KeepAliveTimeout.

  • 시간 초과: 서버가 사용자의 요청을 이행해야 하는 시간입니다. 기본값은 300이며, 이는 서버가 300초 또는 5분 이내에 각 요청을 처리해야 함을 의미합니다. 이것은 확실히 너무 길고 30초로 설정할 수 있습니다.
  • 살아 유지: 이는 동일한 클라이언트의 여러 요청에 대해 서버가 활성 상태(연결 유지)를 유지함을 의미합니다. 기본값은 "켜기"(활성화됨)입니다. 이것은 클라이언트가 우리 서버에 대한 모든 요청에 ​​대해 새로운 연결을 생성할 필요가 없다는 것을 의미합니다. 이 접근 방식은 서버 리소스를 절약합니다.
  • MaxKeepAlive요청: 이 값은 동일한 클라이언트와 설정된 연결에서 수신된 요청 사이에 허용되는 최대 시간(초)을 정의합니다. 이 값을 0으로 설정하면 시간이 무제한입니다.
  • KeepAliveTimeout: 연결이 아직 살아 있는지(설정) 확인하기 위한 요청 사이의 시간입니다.

"Timeout" 매개변수를 제외한 모든 기본값을 그대로 두는 것이 좋습니다. 각 상황은 다르며 특정 환경에 맞게 서버 성능을 조정하려면 이러한 기본값을 변경해야 할 수도 있습니다.

6단계Apache2 사용자 및 그룹

177번째 줄에 도달할 때까지 apache2.conf 파일에서 몇 줄을 다시 스크롤해 보겠습니다. 여기에서 Apache2 사용자 및 그룹을 설정할 수 있습니다. 라인 #177의 주석을 확인하십시오. envvars 파일( 환경 변수). 이 질문은 향후 기사를 위해 남겨두겠지만 지금은 User와 Group이 모두 /etc/apache2/envvars 파일에서 값을 가져오는 변수라는 점을 염두에 두시기 바랍니다.

그리고 마지막으로 마지막 섹션, Apache 보안에 매우 중요한 것은 #193행에서 시작됩니다. 이 섹션에서는 웹 클라이언트가 .htaccess 및 .htpasswd 파일에 액세스할 수 없도록 합니다.

7단계. 로깅

다음 섹션에서는 Apache가 로그(로그)를 관리하는 방법을 설명합니다.

첫 번째 하위 섹션에서는 HostNameLookups 매개변수를 참조합니다. 이 지시문은 설정된 연결을 기록할 때 DNS 조회를 수행해야 하는지 여부를 Apache2에 알려줍니다. 기본값 "Off"를 사용하면 Apache2가 훨씬 더 잘 작동합니다.

8단계 사용 가능한 사이트

이제 site_available 디렉토리(사용 가능한 사이트)를 살펴보고 가장 중요한 것은 기본적으로 이 디렉토리에 있는 파일을 살펴보겠습니다. 기본 가상 호스트 파일이라고도 합니다. 콘솔에 다음을 입력하여 이 파일을 엽니다.

칼리 > 리프패드 /etc/apache2/site_available/default

보시다시피 이 파일에는 세 가지 중요한 영역이 있습니다. 첫 번째 줄은 웹 서버가 수신 대기 중인 포트를 지정합니다. 포트 80(*:80)의 모든 인터페이스에서 수신 대기하도록 여기에서 정의됩니다. 두 번째 줄은 서버에 문제가 있는 경우 알림을 보낼 이메일 주소를 정의합니다. 기본적으로 주소가 있습니다. 시스템 관리자, 여기에 이메일 주소를 입력할 수 있습니다. 세 번째 요소는 가장 중요할 수 있는 DocumentRoot입니다. 이 가상 호스트의 콘텐츠가 배치될 위치를 정의하며 기본값은 /var/www 디렉토리입니다. 개발자가 정의한 대로 모든 것을 그대로 두는 것이 좋습니다.

9단계 포트

마지막으로 apache2.conf 파일에서 #248 행 - "port.conf 포함"으로 더 내려가 볼 수 있습니다. 이 지시문은 단순히 Apache가 수신해야 하는 포트를 찾기 위해 port.conf 파일로 이동하도록 지시합니다.

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

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

이 순간, 제일 새 버전따라서 프로그램 2.4에서는 Apache 2.4의 구성이 고려됩니다. 내가 말했듯이 Linux에서 프로그램은 몇 가지 명령으로 설치됩니다. Ubuntu에 설치하려면 먼저 시스템을 최신 버전으로 업데이트하십시오.

sudo apt 업데이트
$ sudo apt 업그레이드

그런 다음 apache2를 설치합니다.

sudo apt install apache2

다른 배포판에서는 프로그램 패키지를 that 또는 httpd라고 하며 설치에 어려움이 없습니다.

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

sudo systemctl apache2 활성화

아파치 설정

Apache 구성이 단일 파일에 저장되던 시대는 지났습니다. 그러나 모든 것이 해당 디렉토리에 분산되어 있으면 정확하며 구성 파일에서 탐색하기가 더 쉽습니다.

모든 설정은 /etc/apache/ 폴더에 있습니다.

  • 파일 /etc/apache2/apache2.conf기본 설정을 담당
  • /etc/apache2/conf-사용 가능/* - 추가 세팅웹 서버
  • /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 지시문을 사용하여 명시적으로 사용자를 지정할 수 있습니다.

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

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

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

프로그램에 작업할 포트를 알려주는 Listen 지시문이 하나만 있습니다.

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

htaccess를 통한 Apache 서버 설정

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

서버가 .htaccess에서 지침을 읽으려면 기본 파일 또는 가상 호스트 파일의 이 폴더에 대한 설정이 다음을 포함하지 않아야 합니다. 재정의 허용 없음모든 설정이 작동하려면 모두 재정의 허용.

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

주문 거부, 허용
모두 거부

이 폴더에 대한 모든 사람의 액세스를 거부합니다. 구성 폴더를 신청하는 것이 중요합니다. 대부분의 경우 .htaccess는 mod_rewrite 모듈을 사용하여 즉시 요청을 변경할 수 있도록 합니다.

재작성 엔진 켜기
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 재시작

이러한 명령 중 하나를 실행하는 동안 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/ 폴더에 있습니다. 새 호스트를 생성하려면 임의의 이름(호스트 이름으로 더 잘 마무리됨)으로 파일을 만들고 필요한 데이터로 채우면 충분합니다. 이 모든 매개변수를 지시문으로 래핑하십시오. 가상 호스트.여기에 설명된 매개변수 외에도 다음이 사용됩니다.

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

예를 들어:

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