[Apache] 하나의 ip에서 여러 포트 서비스하기
Apache 하나의 서버로 여러 포트 서비스
ex) 80 81 82 ..
Apahce 특성상 기본 Listen 포트를 설정하는 곳인 httpd.conf 파일에 Listen Port를 여러개 넣어주면 포트를 띄우는 거는 바로 할 수 있지만 문제는 운영환경을 어떻게 가져갈 것인가에 따라서 여러가지 방법이 나올 수 있다.
## Apahce 기본 Listen Port 확인 ##
1. Apache conf 파일에서 Listen Port 확인
- 기본 Listen Port
2. Apahce 기동 후 Port 확인
## Apahce conf 파일에서 Listen Port 추가하기 ##
( * 이건 Apahce 상에서 Port 추가가 되는 걸 확인 하는 것이고 실제로 이렇게 단순하게 확장만 하는 건 별의미가 없다.)
1. Apache conf 파일에서 Listen Port 추가하기
2. Apahce 기동 후 Port 확인
기본 구성 환경
## VirtualBox 구성 ##
OS: CentOS-7.4
Apahce Version : Apache-2.4.29 컴파일 설치
A. Apache 서버 3개 설치
B. Apahce 엔진하나에서 설정파일 다르게 가져가기
C. VirtualHost 설정
1. httpd.conf 파일에서 원하는 포트 추가하기
[root@localhost bin]# pwd
/web/apache-2.4.29/bin
[root@localhost bin]# vim ../conf/httpd.conf
* 여기서는 80은 빼고 81, 82, 83 으로 진행
2. Virtulhost 설정 (httpd-vhost.conf 파일 수정)
[root@localhost extra]# pwd
/web/apache-2.4.29/conf/extra
[root@localhost extra]# vim httpd-vhosts.conf
-->> 각각의 VirtualHost마다 Port와 DocumentRoot를 다르게 설정
####VirtualHost test####
<VirtualHost *:81>
ServerAdmin admin@test81.com
DocumentRoot "/web/apache-2.4.29/htdocs/test1"
ServerName test1.com
ServerAlias www.test1.com
CustomLog "|/web/apache-2.4.29/bin/rotatelogs /web/apache-2.4.29/logs/test1/access-log/access.log.%Y%m%d 86400 +540" common
ErrorLog "|/web/apache-2.4.29/bin/rotatelogs /web/apache-2.4.29/logs/test1/error-log/error.log.%Y%m%d 86400 +540"
</VirtualHost>
<VirtualHost *:82>
ServerAdmin admin@test2.com
DocumentRoot "/web/apache-2.4.29/htdocs/test2"
ServerName test2.com
ServerAlias www.test2.com
CustomLog "|/web/apache-2.4.29/bin/rotatelogs /web/apache-2.4.29/logs/test2/access-log/access.log.%Y%m%d 86400 +540" common
ErrorLog "|/web/apache-2.4.29/bin/rotatelogs /web/apache-2.4.29/logs/test2/error-log/error.log.%Y%m%d 86400 +540"
</VirtualHost>
<VirtualHost *:83>
ServerAdmin admin@test3.com
DocumentRoot "/web/apache-2.4.29/htdocs/test3"
ServerName test3.com
ServerAlias www.test3.com
CustomLog "|/web/apache-2.4.29/bin/rotatelogs /web/apache-2.4.29/logs/test3/access-log/access.log.%Y%m%d 86400 +540" common
ErrorLog "|/web/apache-2.4.29/bin/rotatelogs /web/apache-2.4.29/logs/test3/error-log/error.log.%Y%m%d 86400 +540"
</VirtualHost>
3. Apache 기동 및 포트
[root@localhost bin]# pwd
/web/apache-2.4.29/bin
[root@localhost bin]# ./apachectl start
[root@localhost bin]# ps -ef |grep httpd
[root@localhost bin]# netstat -nlp |grep httpd
-->> 하나의 프로세스ID로 3개의 포트가 떠있는 모습 확인
4. 브라우저로 확인
a. 81번 포트 호출
b. 82번 포트 호출
c. 83번 포트 호출
* 특징
- Apache가 하나의 프로세스로 떠 있음
- Apache를 기동할 때 3개의 서비스를 모두 한꺼번에 올렸다 내려야함
(스크립트 작성으로 따로따로 해줄 수 있지만 그땐 일이 복잡해짐)