WEB/Apache

[Apache] 하나의 ip에서 여러 포트 서비스하기

감자밭아이 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개의 서비스를 모두 한꺼번에 올렸다 내려야함

(스크립트 작성으로 따로따로 해줄 수 있지만 그땐 일이 복잡해짐)