동일한 시스템에서 두 개의 아파치 인스턴스를 실행하는 방법 (우분투) 인스턴스를 실행하고 서로 독립적으로 시작하고

동일한 시스템에서 두 개의 아파치 인스턴스를 실행하고 서로 독립적으로 시작하고 중지하려면 어떻게해야합니까? 도움이나 리드를 부탁드립니다.



답변

나는 이것이 당신이 찾고있는 것이라고 생각합니다
http://wiki.apache.org/httpd/RunningMultipleApacheInstances

위 링크의 내용 참조

1) 서버에 Apache를 설치하십시오.

sudo apt-get install apache2
sudo apt-get install libapache2-mod-perl2
sudo apt-get install other-lib-mods-needed

2) 실행하려는 각 인스턴스에 대해 별도의 아파치 구성을 구성하십시오.

우분투의 경우 이것은 / etc / apache2에 있어야합니다. 기본적으로 각 인스턴스마다 다른 포트에서 청취해야합니다.

# httpd-proxy.conf
Listen 80
ErrorLog /var/log/httpd-proxy-error.log
LoadModule proxy_module                 libexec/apache22/mod_proxy.so
LoadModule proxy_http_module            libexec/apache22/mod_proxy_http.so

# httpd-perl.conf
Listen 81
ErrorLog /var/log/httpd-perl-error.log
LoadModule perl_module                  libexec/apache22/mod_perl.so

# httpd-python.conf
Listen 82
ErrorLog /var/log/httpd-python-error.log
LoadModule python_module                libexec/apache22/mod_python.so

# httpd-php.conf
Listen 83
ErrorLog /var/log/httpd-php-error.log
LoadModule php5_module                        libexec/apache22/libphp5.so

이 예에서는 4 개의 서로 다른 인스턴스가 실행되며 각각 다른 모듈 유형 (예 : perl, python 등)을 처리합니다.

이제 프록시 인스턴스에서 가상 호스트를 구성해야 Subversion DAV 서버에 대한 요청이 올 때마다 ‘python-dav’아파치로 전달되고 워드 프레스 블로그에 대한 요청은 ‘ php ‘아파치 인스턴스. ‘httpd-proxy.conf’를 다시 편집하십시오 :

# httpd-proxy.conf
NameVirtualHost *:80
<VirtualHost *:80>
 DocumentRoot /www/wordpress
 ServerName blog.company.com
 ProxyPass / http://localhost:83/
 ProxyPassReverse / http://localhost:83/
 [... additional directives here ... ]
</VirtualHost>
<VirtualHost *:80>
 DocumentRoot /www/svn
 ServerName svn.company.com
 ProxyPass / http://localhost:82/
 ProxyPassReverse / http://localhost:82/
 [... additional directives here ... ]
</VirtualHost>
# you get the idea ...

2b) 모두 테스트
이제 구성을 마쳤으므로 이제 모든 아파치 인스턴스를 시작하고 모든 것이 예상대로 작동하는지 테스트해야합니다. 물론 ‘apachectl’을 사용 하여이 작업을 수행 할 수 있습니다.

 /usr/local/sbin/apachectl -f /usr/local/etc/apache22/proxy-httpd.conf configtest
 /usr/local/sbin/apachectl -f /usr/local/etc/apache22/proxy-httpd.conf start
 /usr/local/sbin/apachectl -f /usr/local/etc/apache22/perl-httpd.conf configtest
 /usr/local/sbin/apachectl -f /usr/local/etc/apache22/perl-httpd.conf start
 # and so on ...

3) 적절한 구성 파일로 아파치를 시작하도록 init 스크립트를 구성하십시오

링크 된 리소스는 이것을 위해 rc.conf 파일을 편집하는 것에 대해 자세히 설명하지만 Ubuntu를 다루는 것과 특히 관련이 있으므로이 두 섹션을 모두 강조 표시합니다.

FreeBSD의 ‘/etc/rc.conf’는 시스템 구성 정보를 포함하는 마스터 파일입니다. 이 파일은 커널 부팅 후 읽히고 서비스, 데몬, 네트워크 인터페이스 설정 등을 시작하는 데 사용됩니다. 레시피를 위해 Apache 서버를 활성화하고 사용 가능한 인스턴스 (프로파일), 구성 파일 및 > 시스템 부팅 후 이들 중 어느 것을 실행 (활성화)해야하는지 FreeBSD에 알립니다.

# /etc/rc.conf
apache22_enable="YES"
apache22_profiles="proxy perl python php"

# the apache proxy instance
apache22_proxy_configfile="/usr/local/etc/apache22/httpd-proxy.conf"
apache22_proxy_enable="YES"

# the apache perl instance
apache22_perl_configfile="/usr/local/etc/apache22/httpd-perl.conf"
apache22_perl_enable="YES"

# the apache python instance
apache22_python_configfile="/usr/local/etc/apache22/httpd-python.conf"
apache22_python_enable="YES"

# the apache php instance
apache22_php_configfile="/usr/local/etc/apache22/httpd-php.conf"
apache22_php_enable="YES"

이러한 프로파일이 /etc/rc.conf에서 구성되고 활성화되면 시스템을 성공적으로 부팅 한 후 시작됩니다. 프로파일을 선언하고 싶지만 해당 아파치 인스턴스를 수동으로 시작하기 만하려면 ‘/etc/rc.conf’및> say를 편집하면됩니다.

 # the apache php instance
 apache22_php_configfile="/usr/local/etc/apache22/httpd-php.conf"
 apache22_php_enable="NO"

나중에 다음과 같이 프로파일 이름> (proxy, perl, python, php) 만 사용하여 아파치 인스턴스를 수동으로 시작 / 중지 할 수 있습니다.

 /usr/local/etc/rc.d/apache22 start php
 /usr/local/etc/rc.d/apache22 stop perl
 ...

3b) 우분투

이것이 FreeBSD의 경우와 비슷하고 고통스럽지 않을 것입니다 (위의 rc.conf 섹션 참조). FreeBSD에서 아파치 포트와 함께 설치된 아파치 rc 스크립트는 수년 동안 서로 다른 프로파일의 가능성을 알고 있습니다.

최근 Ubuntu / Debian init 스크립트 (예 : /etc/init.d/apache2)가 여러 아파치 인스턴스 (예 : / etc / apache2- $ SUFFIX라는 여러 구성)를 지원하도록 업데이트되었습니다. Ubuntu / Debian 릴리스에 따라 사용중인 운이 좋을 수도 있습니다.

이 기능은 2010 년 2 월 Debian 2.2.14-6 버전에 나타났습니다. http://lists.alioth.debian.org/pipermail/pkg-apache-commits/2010-February/000295.html

Ubuntu에서 Maverick (10.10)의 apache2 패키지에는 다음 패치가 포함되어 있습니다. http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.16-1ubuntu3.1/changelog

그러나 Lucid (10.04, 장기 지원 릴리스) apache2는 분명히 다음을 수행하지 않습니다 : http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.14-5ubuntu8.4/changelog

설명서는 /usr/share/doc/apache2/README.multiple-instances에 있습니다.


답변

자세한 답변을 보내 주셔서 감사하지만 나중에이 링크를 찾았습니다 http://someofmylearnings.wordpress.com/2011/07/02/multiple-apache2-instances-on-ubuntu/ 절차는 매우 간단합니다.

Apache를 설치할 때 /usr/share/doc/apache2.2-common/README.multiple-instancesApache 인스턴스를 작성하기 위해 정확히 수행해야하는 작업에 대한 아이디어를 제공하는 파일이 있습니다.

동일한 디렉토리에는 Apache 인스턴스를 작성하는 데 사용할 수 examples있는 스크립트가 포함 된 디렉토리가 있습니다 setup-instance. 따라서 다른 Apache 인스턴스를 작성하려면 다음을 수행하십시오.

sh /usr/share/doc/apache2.2-common/examples/setup-instance web-server1

web-server1접미사는 어디에 있습니까 ? 즉, 기본적으로 인스턴스 이름에“apache2-”가 추가됩니다.

/etc/apache-web-server1모든 구성 파일이 포함 된 새 디렉토리가 생성됩니다 . 또한 /etc/init.d/apache-web-server1새 Apache 인스턴스를 시작하는 데 사용할 수있는 것도 작성 합니다.