서버 운영/APM 서버 구축

[Ubuntu 20.04 - Apache2 서버] ports.conf 의 기본값에 사용된 지시어 설명

씨실과 날실 2020. 10. 11. 09:00

 

[관련 게시물]

Ubuntu 20.04 LTS에서 APM 설치

2020/09/14 - [서버 운영/APM 서버 구축] - 우분투(Ubuntu) 20.04에서 APM 설치 - 아파치(Apache2 설치

2020/09/16 - [서버 운영/APM 서버 구축] - 우분투(Ubuntu) 20.04에서 APM 설치 - 마리아DB(MariaDB) 10.3 설치

2020/09/18 - [서버 운영/APM 서버 구축] - 우분투(Ubuntu) 20.04에서 APM 설치 - 마리아DB(MariaDB) 10.5 설치

2020/09/20 - [서버 운영/APM 서버 구축] - 우분투(Ubuntu) 20.04에서 APM 설치 - PHP 7.4 설치

2020/09/22 - [서버 운영/APM 서버 구축] - 우분투(Ubuntu) 20.04에서 APM 설치 - APM 설치 후 방화벽 설정

2020/09/24 - [서버 운영/APM 서버 구축] - MariaDB 10.4 이후의 계정 인증 관련 변화(unix_socket, mysql_native_password 인증 / 계정, 암호 및 전역 권한 정보 저장 테이블 변경 등)

2020/09/26 - [서버 운영/APM 서버 구축] - 우분투 20.04 APM 서버 기본 환경 파일 설정 - apache2.conf 기본 설정

2020/09/28 - [서버 운영/APM 서버 구축] - 우분투 20.04 APM 서버 기본 환경 파일 설정 - php.ini 기본 설정

 

Ubuntu 20.04에서 설치한 Apache2 서버 주요 설정 파일 원문

2020/09/30 - [서버 운영/APM 서버 구축] - 우분투 20.04 APM 서버 주요 환경 파일 목록

2020/10/05 - [서버 운영/APM 서버 구축] - 우분투 20.04 APM 서버 주요 환경 파일 원문 - Apache2

2020/10/07 - [서버 운영/APM 서버 구축] - 우분투 20.04 APM 서버 주요 환경 파일 원문 - PHP 7.4 - php.ini

Ubuntu 20.04에서 설치한 Apache2 서버 주요 설정 파일 내 지시어 설명

2020/10/09 - [서버 운영/APM 서버 구축] - [Ubuntu 20.04 - Apache2 서버] apache2.conf의 기본값에 사용된 지시어 설명

2020/10/11 - [서버 운영/APM 서버 구축] - [Ubuntu 20.04 - Apache2 서버] ports.conf 의 기본값에 사용된 지시어 설명

2020/10/13 - [서버 운영/APM 서버 구축] - [Ubuntu 20.04 - Apache2 서버] envvars의 기본값에 사용된 지시어 설명

2020/10/15 - [서버 운영/APM 서버 구축] - [Ubuntu 20.04 - Apache2 서버] security.conf의 기본값에 사용된 지시어 설명

2020/10/17 - [서버 운영/APM 서버 구축] - [Ubuntu 20.04 - Apache2 서버] 000-default.conf의 기본값에 사용된 지시어 설명

2020/10/19 - [서버 운영/APM 서버 구축] - [Ubuntu 20.04 - Apache2 서버] default-ssl.conf의 기본값에 사용된 지시어 설명


Ubuntu 20.04에서 phpMyAdmin 설치 및 설정

2021.02.20 - [서버 운영/APM 서버 구축] - 우분투 20.04에서 phpMyAdmin 설치 01 - 저장소 설치

2021.03.15 - [서버 운영/APM 서버 구축] - 우분투 20.04에서 phpMyAdmin 설치 02 - Apache 서버 관리자를 위한수동 설치(버전 5.1.0 기준)

2021.03.17 - [서버 운영/APM 서버 구축] - 우분투 20.04에서 phpMyAdmin 설치 03 - 보안강화 작업

2021.03.19 - [서버 운영/APM 서버 구축] - phpMyAdmin 설치 04 - 웹호스팅 사용자를 위한 수동 설치(버전 5.1.0 기준)

2021.03.21 - [서버 운영/APM 서버 구축] - phpMyAdmin 설치 05 - setup 페이지를 통한 구성 파일 생성

Ubuntu 18.04 LTS에서 APM 설치

2018/11/09 - [서버 운영/APM 서버 구축] - Apache 서버 설치

2018/11/14 - [서버 운영/APM 서버 구축] - MariaDB 설치

2018/11/16 - [서버 운영/APM 서버 구축] - MariaDB 업그레이드 1

2018/11/16 - [서버 운영/APM 서버 구축] - MariaDB 업그레이드 2 - ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded

2018/11/16 - [서버 운영/APM 서버 구축] - MariaDB 업그레이드 3

2018/11/19 - [서버 운영/APM 서버 구축] - PHP7 설치

2018/11/21 - [서버 운영/APM 서버 구축] - 서버 환경 파일 수정 - php.ini, apache2.conf

 

Ubuntu 18.04 LTS에서 MariaDB 백업 및 업그레이드

2019/01/15 - [서버 운영/APM 서버 구축] - MariaDB & MySQL 백업과 복원 - Nextcloud 14

2019/06/27 - [서버 운영/APM 서버 구축] - MariaDB 업그레이드 (Upgrading from MariaDB 10.3 to MariaDB 10.4)

 

Ubuntu 18.04 LTS에서 PHP 버전 전환

2019/07/05 - [서버 운영/APM 서버 구축] - Apache와 Shell에서 PHP 버전 전환하기(How to Switch between Multiple PHP Version)

 

Ubuntu 18.04 LTS에서 phpmyadmin 설치 및 운용

2018/11/23 - [서버 운영/APM 서버 구축] - phpmyadmin 설치 - APT 패키지 관리자를 통한 설치

2019/06/18 - [서버 운영/APM 서버 구축] - APT 패키지 관리자를 통해 설치한 phpMyAdmin 업그레이드 방법(업그레이드 버전 4.9.0.1)

2019/07/01 - [서버 운영/APM 서버 구축] - phpMyAdmin 수동 설치 01 - 일반 설치

2019/07/03 - [서버 운영/APM 서버 구축] - phpMyAdmin 수동 설치 02 - 심볼릭 링크를 이용한 보안 접속

2019/06/16 - [서버 운영/APM 서버 구축] - phpMyAdmin 4.6.6deb5와 PHP 7.2 간 호환성 문제 해결 - Warning in ./libraries/sql.lib.php#613

 

XAMPP 설치 및 운용

2019/04/20 - [서버 운영/서버 구축 꾸러미] - XAMPP에 대하여(버전 7.1.28 / 7.2.17 / 7.3.4)

2019/04/22 - [서버 운영/서버 구축 꾸러미] - XAMPP for Windows 7.3.4 인스톨러 설치

2019/04/25 - [서버 운영/서버 구축 꾸러미] - XAMPP for Windows 설정

2019/06/03 - [서버 운영/서버 구축 꾸러미] - XAMPP 포터블(portable) 사용법

2019/06/05 - [서버 운영/서버 구축 꾸러미] - XAMPP for Linux 4.3.5 설치 및 사용법

 

서버 운영을 위한 관련 연재글

2018/11/07 - [리눅스/Ubuntu] - 방화벽 설정 - ufw

2018/11/12 - [서버 운영/버추얼박스(VirtualBox)] - 가상머신(Virtualbox) 내 서버 외부접속

2019/01/05 - [미디어위키/미디어위키 설치 및 관리] - 호스트 컴퓨터에서 가상머신 내 미디어위키 접속 및 작업을 위한 버추얼박스 포트포워딩 설정

2019/03/15 - [서버 운영/APM 서버 구축] - PHP 7.3으로의 업그레이드 및 사용 연기 권장 안내 - PHP Notice: compact(): Undefined variable:

 

 

ports.conf  파일에 대한 개략적인 설명

Apache2 서버에서 사용할 수신 포트를 설정하는 파일입니다. 모듈별로도 지정할 수 있습니다.

 

ports.conf 원문

2020/09/30 - [서버 운영/APM 서버 구축] - 우분투 20.04 APM 서버 주요 환경 파일 목록

2020/10/05 - [서버 운영/APM 서버 구축] - 우분투 20.04 APM 서버 주요 환경 파일 원문 - Apache2

 

지시어 사용 안내 설명 주석 제거 후 원문

Listen 80


<IfModule ssl_module>
    Listen 443
</IfModule>


<IfModule mod_gnutls.c>
    Listen 443
</IfModule>


# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

 


 

포트(Ports) 설정

 

포트를 변경하거나 추가하는 경우, /etc/apache2/sites-enabled/000-default.conf의 가상 호스트(VirtualHost) 구문도 수정해주어야 합니다.

 

Listen 80

클라이언트의 요청을 수신할 포트를 지정합니다. 여기서는 개방할 포트 번호를 80으로 지정합니다.

포트 번호별 일반적 쓰임이 있습니다. 아래 링크의 글을 참고하시기 바랍니다.

2018/11/12 - [서버 운영/버추얼박스(VirtualBox)] - 가상머신(Virtualbox) 내 서버 외부접속

 

지시어 : Listen

요약 설명 : 서버가 수신할 IP 주소 밒 포트 지정

구문 : Listen [IP-address:]portnumber [protocol]

기본값 :

사용 장소 : 주서버 설정(server config) - httpd.conf 또는 apache2.conf

상태 : MPM

모듈 : event, worker, prefork, mpm_winnt, mpm_netware, mpmt_os2

Listen은 필수 지시어로 이 지시문이 구성 파일에 없으면 서버가 구동되지 않습니다.

Listen 지시어는 Apache2 서버 지정된 포트 또는 주소:포트 조합에서 들어오는 요청만을 수락하도록 설정합니다.

위와 같이 포트 번호만 지정하면 서버는 모든 인터페이스에서 지정된 포트를 통해 들어오는 요청을 수신합니다. IP 주소와 포트가 제공되면 서버는 지정된 포트와 인터페이스에서 들어오는 요청만을 수신합니다.

 

Listen 지시어의 설정 예시는 다음과 같습니다.

Listen 80
Listen 8000

포트 번호 지정을 통한 설정입니다.

 

Listen 192.170.2.1:80
Listen 192.170.2.5:8000

IP v4 주소:포트 번호 지정을 통한 설정입니다.

 

Listen [2001:db8::a00:20ff:fea7:ccea]:80

IPv6 주소:포트 번호 지정을 통한 설정입니다.

IPv6 주소는 위 예시와 같이 대괄호로 묶어 주어야 합니다.

 

Listen 192.170.2.1:8443 https

IP 주소:포트 번호와 프로토콜 지정을 통한 설정입니다. 대부분의 경우 위와 같은 프로토콜 인수가 필요하지 않습니다.

프로토콜은 요청을 처리할 모듈을 결정하고 AcceptFilter 지시어을 사용하여 프로토콜별 최적화를 적용하는 데 사용됩니다.

https는 443 포트가 표준이고, http는 그외 다른 모든 포트의 표준값입니다.

만약 비표준 포트에서 실행해야 하는 경우, 위와 같이 해당 프로토콜을 지정해야합니다.

위 예시는 https 프로토콜 요청을 비표준 포트인 8433 포트로 처리하는 경우 지시문 설정입니다.

프로토콜 인수는 Apache2 2.1.5 이후부터 지원합니다.

 

보다 자세한 내용은 아래 링크를 참고하시기 바랍니다.

https://httpd.apache.org/docs/2.4/mod/mpm_common.html#listen

 


 

<IfModule ssl_module>
    Listen 443
</IfModule>

HTTPS 프로토콜을 처리하기 위해선, SSL 모듈을 사용해야 합니다. 이때 수신 포트를 433 포트로 설정한다는 의미입니다.

 

지시어 : IfModule

요약 설명 : 특정 모듈의 유무에 따라 처리되는 지시어 설정

구문 : <IfModule [!]module-file|module-identifier> ... </IfModule>

기본값 :

사용 장소 : 주서버 설정(server config) - httpd.conf 또는 apache2.conf

   가상호스트 (virtual host) 섹션 안

   디렉터리 섹션 안

   .htaccess 파일

Override 옵션 : All

상태 : Core

모듈 : core

호환성 : Apache 2.1 이후부터 이용 가능

<IfModule> 컨테이너 지시어는 <IfModule Module_Name> ... </ IfModule> 형식으로 작성되며 해당 부분을 <IfModule> 섹션이라고 부릅니다.

이때 사용되는 Module_Name은 모듈 식별자(예 : rewrite_module)나 컴파일 당시 모듈의 파일 이름(예 : mod_rewrite.c)입니다. 만약 해당 모듈이 여러 소스파일로 구성된 경우 STANDARD20_MODULE_STUFF 문자열이 포함된 파일 이름을 사용합니다.

 

이 <IfModule> 컨테이너 섹션은 특정 모듈을 대상 조건으로 하는 지시어를 표시하는 데 사용됩니다.

<IfModule> 섹션 내의 지시어는 조건이 참(true)인 경우에만 처리됩니다. 주어진 조건이 false이면 시작 마커와 끝 마커 <IfModule Module_Name> ... </ IfModule> 사이의 모든 것이 무시됩니다.

<IfModule> 섹션 시작 마커 내 Module_Name은 아래와 같은 형식으로 지정됩니다.

Module

!Module

전자(Module)의 경우 시작 마커와 끝 마커 사이의 지시어는 Module이라는 모듈이 Apache httpd에 포함된 경우에만 처리됩니다 (LoadModule을 사용하여 컴파일되거나 동적으로로드 됨).

후자(!Module)은 지정 모듈이 포함되지 않은 경우에 지시어를 처리합니다.

 

<IfModule> 섹션은 중첩하여 사용할 수 있으며 간단한 다중 모듈 처리를 구현하는 데 사용할 수 있습니다.

 

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

GnuTLS는 SSL의 뒤를 잇는 통신보안 규약 표준인 TLS 프로토콜을 지원하기 위해 개발된 라이브러리 소프트웨어입니;다.

mod_gnutls는 Apache의 httpd에 대한 확장으로 GnuTLS 라이브러리를 사용하여 HTTPS 연결을 지원합니다.

위와 같이 <IfModule> 컨테이너 섹션을 중첩 사용하여  다중 모듈 섹션을 설정할 수 있습니다.

 

보다 자세한 내용은 아래 링크를 참고하시기 바랍니다.

https://httpd.apache.org/docs/2.4/mod/core.html#ifmodule