CentOS 7 / Apache / 하나의 서버에 여러 사이트 운영하기

하나의 서버에 하나의 사이트만 운영하는 것이 가장 이상적일 것입니다. 하지만 사이트 접속자가 많지 않거나 서버 사양이 훌륭하다면 여러 사이트를 하나의 서버에서 운영하는 게 경제적입니다.

CentOS에 Apache 웹서버를 설치하고 운영하는 경우 여러 사이트를 운영할 수 있게 설정하는 방법을 요약해보겠습니다.

네임 서버 설정

각 도메인의 네임 서버의 호스트 IP를 웹서버 아이피로 설정합니다.

디렉토리 만들기

한 서버에 aaa.com과 bbb.bom이란 홈페이지를 운영한다고 할 때, 각 사이트의 파일이 들어갈 디렉토리를 만듭니다. aaa.com은 /www/aaa라는 디렉토리에, bbb.com은 /www/bbb라는 디렉토리에 만든다고 가정하겠습니다.

Apache 설정 파일 수정

CentOS에서 Apache 설정 파일은

/etc/httpd/conf/httpd.conf

입니다. 설정 파일을 열고 맨 밑에 다음을 추가합니다.

NameVirtualHost *:80
<VirtualHost *:80>
  DocumentRoot /www/aaa
  ServerName aaa.com
</VirtualHost>
<VirtualHost *:80>
  DocumentRoot /www/bbb
  ServerName bbb.com
</VirtualHost>

첫번째 줄은 여러 사이트를 운영하겠다는 뜻이고, 나머지는 각 도메인으로 접속했을 때 연결할 디렉토리를 설정하는 것입니다.

위 예에서는 aaa.com로 접속했을 때만 연결시켰는데, www.aaa.com으로도 접속 가능하게 하려면

ServerName aaa.com

밑에 다음의 코드를 추가합니다.

ServerAlias www.aaa.com

Apache 재시작

설정을 마쳤으면 웹서버를 다시 시작합니다.

service httpd restart

이제 웹브라우저로 각 도메인에 접속하면 해당 디렉토리를 접속이 됩니다. 만약 접속했을 때 forbidden error가 나면 대부분 selinux 때문이므로

setenforce 0

라고 명령하여 selinux를 중지시킵니다.

같은 카테고리의 다른 글

CentOS 7 / firewall-cmd 명령어로 방화벽 관리하기

CentOS 7 / firewall-cmd 명령어로 방화벽 관리하기

CentOS 7의 방화벽 관리 데몬은 firewalld입니다. 설정은 firewall-cmd 명령어로 합니다. 방화벽 실행 여부 확인 firewall-cmd --state 실행 중이면 running, 실행 중이 아니면 not running을 출력합니다. 방화벽 다시 로드 firewall-cmd --reload 방화벽 설정 후 다시 로드해야 적용됩니다. 존(Zone) 출력하기 firewall-cmd --get-zones 존(zone) 목록을 출력합니다. firewall-cmd --get-default-zone 기본 존을 출력합니다. firewall-cmd --get-active-zones 활성화된 존을 출력합니다. 사용 가능한 서비스/포트 출력하기 firewall-cmd --list-all 사용 가능한 모든 서비스/포트 목록을 출력합니다. firewall-cmd --zone=public --list-all public 존에 ...

CentOS 8 / rsyslog / 로그 서버 구축하는 방법

CentOS 8 / rsyslog / 로그 서버 구축하는 방법

CentOS 8 패키지에 포함된 rsyslog로 로그 서버를 구축하는 방법입니다. rsyslog 패키지는 CentOS 8 설치 시 자동으로 설치되고 실행되지만, 만약 설치되어 있지 않다면 다음과 같이 명령하여 설치하세요. yum install rsyslog 로그 서버 만들기 텍스트 편집기로 설정 파일을 엽니다. vi /etc/rsyslog.conf 다음 두 줄을 찾아... #module(load="imtcp") # needs to be done just once #input(type="imtcp" port="514") 주석을 지우고 저정합니다. module(load="imtcp") # needs ...

CentOS 8 / 원격 데스크톱으로 연결하는 방법

CentOS 8 / 원격 데스크톱으로 연결하는 방법

서버용으로 CentOS를 사용하는 경우 보통 Minimal로 설치하고, 원격 접속은 SSH로 합니다. 하지만 하드웨어 사양이 좋아지고 사용의 편리함으로 GUI(Graphical User Interface)를 설치하는 경우도 많아지고 있습니다. GUI가 설치되어 있다면 SSH보다는 원격 데스크톱으로 관리하는 게 편합니다. CentOS에 원격 데스크톱으로 접속하는 방법을 알아봅니다. 패키지 설치 다음과 같이 명령하여 EPEL(Extra Packages of Enterprise Linux) 저장소를 추가합니다. dnf install ...

CentOS 8 / Samba / 설치하고 공유 폴더 만드는 방법

CentOS 8 / Samba / 설치하고 공유 폴더 만드는 방법

Samba를 이용하면 컴퓨터 간 파일을 주고 받거나 공유하는 게 수월해집니다. CentOS 8에 Samba를 설치하고 공유 폴더를 만드는 방법을 알아보겠습니다. Samba 설치와 설정 Samba는 CentOS 패키지에 포함되어 있어서 dnf 명령으로 설치할 수 있습니다. dnf install samba firewall-cmd로 Samba가 사용하는 포트를 열어줍니다. firewall-cmd --permanent --add-service=samba 방화벽을 다시 로드합니다. firewall-cmd --reload 사용자 추가 기존 사용자에게 권한을 줄 수도 있고, 새 사용자를 만든 ...

CentOS 8 / Squid로 Proxy Server 만드는 방법

CentOS 8 / Squid로 Proxy Server 만드는 방법

리눅스로 프록시 서버(Proxy Server)를 만들 때 스퀴드(Squid)를 주로 사용합니다. 오픈 소스이고, 대부분의 리눅스 배포판에 패키지로 포함되어 있습니다. 스퀴드(squid)는 대중적인 오픈 소스(GPL)소프트웨어 프록시 서버이자 웹 캐시이다. 반복된 요청을 캐싱함으로 웹서버의 속도를 향상시키는 것부터, 네트워크 자원을 공유하려는 사람들에게 웹, DNS와 다른 네트워크 검색의 캐싱을 제공하고, 트래픽을 걸러줌으로써 안정성에 도움을 주는 등에 이르기까지 광범위 ...

CentOS 7 / MySQL 설치하고 root 사용자 비밀번호 만드는 방법

CentOS 7 / MySQL 설치하고 root 사용자 비밀번호 만드는 방법

CentOS 7 패키지에는 MySQL 대신 MariaDB가 들어있습니다. 이런저런 이유로 MySQL을 꼭 사용해야 한다면 좀 번거로운 과정을 거쳐야 합니다. 일단 다음 사이트에 접속합니다. https://dev.mysql.com/downloads/repo/yum/ CentOS 7에 맞는 패키지 이름을 확인합니다. CentOS 7에서 다음과 같이 명령하여 패키지를 다운로드합니다. wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 패키지를 설치합니다. rpm -ivh mysql57-community-release-el7-11.noarch.rpm MySQL을 설치합니다. yum install mysql-server 시스템을 시작할 때 자동으로 MySQL이 시작되도록 합니다. systemctl enable mysqld MySQL을 시작합니다. systemctl start mysqld MySQL을 ...

CentOS 8 / NAS의 공유 폴더 마운트하는 방법

CentOS 8 / NAS의 공유 폴더 마운트하는 방법

저장소로 또는 공유 목적으로 NAS를 사용합니다. 윈도우라면 네트워크 드라이브 연결로 NAS의 파일에 접근합니다. 리눅스라면 좀 번거로운 과정을 거칩니다. 아래는 CentOS 8에서 NAS의 공유 폴더에 접근하는 방법입니다. TUI cifs-utils 패키지를 설치합니다. dnf install cifs-utils 다음과 같이 마운트합니다. 192.168.0.101은 NAS의 IP, file은 공유 폴더 이름, /mnt/file는 마운트가 될 폴더, jb는 사용자 이름, 1234는 비밀번호입니다. 환경에 맞게 수정합니다. mount ...

CentOS 7 / Apache / 하나의 서버에 여러 사이트 운영하기

CentOS 7 / Apache / 하나의 서버에 여러 사이트 운영하기

하나의 서버에 하나의 사이트만 운영하는 것이 가장 이상적일 것입니다. 하지만 사이트 접속자가 많지 않거나 서버 사양이 훌륭하다면 여러 사이트를 하나의 서버에서 운영하는 게 경제적입니다. CentOS에 Apache 웹서버를 설치하고 운영하는 경우 여러 사이트를 운영할 수 있게 설정하는 방법을 요약해보겠습니다. 네임 서버 설정 각 도메인의 네임 서버의 호스트 IP를 웹서버 아이피로 설정합니다. 디렉토리 만들기 한 서버에 aaa.com과 ...

CentOS 7 / mod_security 설치하는 방법

CentOS 7 / mod_security 설치하는 방법

mod_security는 아파치 웹서버에 사용할 수 있는 방화벽 모듈입니다. ModSecurity is an open source, cross-platform web application firewall (WAF) module. Known as the "Swiss Army Knife" of WAFs, it enables web application defenders to gain visibility into HTTP(S) traffic and provides a power rules language and API to implement advanced protections. 설치 yum install ...

CentOS 8 / hostname 확인하고 변경하는 방법

CentOS 8 / hostname 확인하고 변경하는 방법

명령어 이용하기 hostname 확인 다음과 같이 명령하면 hostname을 출력합니다. hostname hostname 변경 다음과 같이 명령하면 hostname을 abc로 변경합니다. hostnamectl set-hostname abc 설정 파일 이용하기 hostname 확인 hostname 설정 파일은 /etc/hostname입니다. 그 파일을 열거나 다음과 같이 명령하여 설정 파일의 내용을 볼 수 있습니다. cat /etc/hostname hostname 변경 텍스트 편집기로 열면 한 줄의 코드가 있는데, 그것이 hostname입니다. 그 코드를 바꾸고 저장하면 hostname이 변경됩니다. 변경 사항 ...