Back to Question Center
0

아파치 설정 파일의 Semalt 변수

1 answers:

필자는 파일에 저장되어 있고 DocumentRoot, 로그 파일 이름, 포트 (Semalt의 경우)와 같은 속성이 대부분 다른 여러 가상 호스트 구성을 가지고 있습니다.

때로는 이러한 구성을 변경해야합니다. 구성 시간에 일부 변수를 해결하는 템플릿에서 변경 사항을 간단하게 적용 할 수 있다면 매우 편리하다고 생각할 것입니다.이자형. 재 장전 ); 예 :

    
ServerName $ {줄기}. com
ServerAlias ​​www. $ {줄기}. com
#if $ {more_aliases}
ServerAlias ​​$ {more_aliases}
#endif
DocumentRoot / var / www / $ {줄기}
CustomLog / var / log / httpd / $ {stem}. 결합 된 로그
ErrorLog / var / log / httpd / $ {stem}. 오류. 로그
다시 쓰기 엔진 켜기
다시 쓰기 연결 # 일부 내용은 Apache에서 직접 제공 할 수 있습니다.
# $ {port}는이 가상 호스트의 속성입니다 :
다시 쓰기 규칙 ^ / (. *) http : // localhost : $ {port} / VirtualHostBase / http / % {HTTP_HOST} : 80 / unitracc / VirtualHostRoot / $ 1 [L, P]
    

이것이 가능합니까? 그리고 구성 시간 변수를 어떻게 정의하고 참조합니까?

나는 아파치 2를 사용한다.2 (가상 개발 머신) 및 2. Linux에서 4 개 (프로덕션 서버) Source .

February 7, 2018

mod_macro 살펴보기, 사용 사례에 꼭 필요한 것 같은데요.

둘다; 예. 아니요..

아파치는 구성 파일 내에서 변수를 기대하지 않습니다.그것을 위해 코딩되지 않았습니다.또한 논리 관점에서 보자면 Apache가 다른 구성 계층없이 다양한 구성 파일의 변수를 채우는 것은 비현실적입니다. 아파치는 이유 때문에 의도적으로 가볍다.메모리에 상주하는 서비스는 가능한 한 작아야합니다. 특히 프로세스가 많은 수의 요청을 즉시 처리 할 수있는 충분한 상주 대기 프로세스로 분할되고 잠재적으로로드에서 스파이크를 처리하기 위해 더 많은 프로세스를 스핀 오프해야하는 경우.

예 부분에 대한 지금.

데이터 자체에서 볼 수있는 내용을 기반으로 새로운 구성 파일을 생성하는 데이터베이스와 코드를 언제든지 만들 수 있습니다. 이와 관련하여 구성 파일을 다시 작성하기 위해 채울 수있는 변수가있는 단일 구성 파일을 사용할 수 있습니다. 이것은 매우 가능하고 간단합니다.

@PlanetScaleNetworks에서, mod_macro 를 사용하라는 제안은 위의 예입니다. mod_macro의 단점은 구성을 만들려는 각 사이트의 매개 변수로 실행해야한다는 것입니다. 이것은 자신 만의 코드를 작성하지 않을 정도로 사소한 것일 수 있습니다.이 배치 파일을 만들면됩니다.그러나 많은 사이트를 구성하는 데있어 더 간단하고 편리한 시스템이라고 상상할 수 없습니다. 특히 000- 기본값. conf 파일은 표준으로 한 번만 수정하거나 새로운 구성이 필요할 때 복사 한 다음 편집 할 수 있습니다. 이것은 또한 매우 빠르고 간단 할 정도로 사소한 것입니다.

지금 나쁜 소식.

아파치는 항상 재시작이 필요합니다. 이는 사이트 구성이 메모리 내에 캐시되어 반복적으로 하드 다이브를 치는 필요성을 줄이기 때문입니다. 영구 저장 장치에서 읽는 것보다 메모리에서 읽기가 항상 훨씬 빠르고 자원 집약적입니다.아파치가 매우 가볍기 때문에 아파치는 매우 빨리 재시작 할 수 있습니다. 따라서 재시작은 매우 바쁜 시스템의 경우 매우 짧습니다.요청이 거의 없거나 전혀없는 대부분의 시스템에서 답이 나오지 않을 수도 있습니다. 그러나, 매우 바쁜 시스템의 경우, 재시작 할 때마다 약간의 요청이 응답되지 않을 수도 있습니다. 이것은 어쨌든 일어날 것입니다.이것은 비용이 자연스런 결과라는 것을 의미합니다.설정 파일을 다시 작성하기 위해 작성한 코드가 무엇이든간에 다시 시작할 수도 있습니다.