-
[Apache] 하나의 ip에서 여러 포트 서비스하기WEB/Apache 2018. 8. 10. 11:01
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개의 서비스를 모두 한꺼번에 올렸다 내려야함
(스크립트 작성으로 따로따로 해줄 수 있지만 그땐 일이 복잡해짐)
'WEB > Apache' 카테고리의 다른 글