httpd를 더 작은 파일로 분할

httpd를 더 작은 파일로 분할

안녕하세요. 보다 쉬운 관리를 위해 파일을 분리하기 위해 httpd.conf에서 각 VirtualHost를 추출해야 합니다.

원본 httpd.conf .

..
<VirtualHost *:XXXX>
  SuexecUserGroup user1 groupX
  ...
</VirtualHost>
<VirtualHost *:XXXY>
  SuexecUserGroup user2 groupY
  ...
</VirtualHost>
<VirtualHost *:XXYY>
  SuexecUserGroup user3 groupZ
  ...
</VirtualHost>
...

그리고 다음과 같은 파일을 갖고 싶습니다: - XXXX_user1.conf에는 다음이 포함되어 있습니다.

Listen XXXX
<VirtualHost *:XXXX>
  SuexecUserGroup user1 groupX
  ...
</VirtualHost>

- 다음을 포함하는 XXXY_user2.conf:

Listen XXXY
<VirtualHost *:XXXY>
  SuexecUserGroup user2 groupY
  ...
</VirtualHost>

조금 복잡해 보이지만 손으로 ​​해야 할 일이 500개 정도 됩니다 ;(

답변해 주셔서 감사합니다.

답변1

이것을 시도해 보십시오:

#!/usr/bin/gawk -f
BEGIN {
    RS = "</VirtualHost>\n"
}
{
    prefix = gensub("*:([^>]*)>", "\\1", "1", $2)
    filename = prefix "_" $4 ".conf"
    print "Listen " prefix "\n" $0 "\n" RS > filename
}

"httpdsplit"이라는 이름의 파일에 저장하고 다음을 수행하십시오.

$ chmod u+x httpdsplit
$ ./httpdsplit httpd.conf

답변2

언급하지는 않았지만 이는 Apache httpd.conf처럼 보입니다. 파일을 분할하는 기존 답변을 권장하지만 다른 옵션이 있습니다.

만약에아파치 서버는 mod_perl다음과 같이 구축되었습니다.만약에Perl을 알고 있거나 배울 의향이 있다면 Perl mod_perl이 구성을 포함하여 Apache의 모든 측면과 결합된다는 것을 기억하십시오. Perl 스탠자로 구성을 작성하고 Perl 자체 내에서 VirtualHost 구성을 생성할 수 있습니다.

관련 정보