2023. 12. 5. 14:45ㆍ개인노트
아파치 웹서버 설치 시작
- 아파치 웹서버 설치시 주의사항 및 설치 시나리오아파치
- 웹서버 최신버전 httpd-2.4.58.tar.gz을 사용해서 설치한다.
- 톰캣과 연결시켜주는 jboss모듈의 경우(mod_jk) 기본적으로 포함되어 있다.(해당버전기준.)
- (아파치 2.4 이상부터 apr-1.7.4.tar.gz, apr-util-1.6.3.tar.gz, pcre-8.45.tar.gz 3개를 필수로 같이 설치해야한다.)
- 아파치 웹서버의 경우 tar.gz로 설치를 수행하는데 몇가지 주의사항이 있다.
완전 초기설치시에는 아파치가 소스를 컴파일 할수 있도록 별도로 gcc가 필요하다고 한다.
1. 필수파일 설치 진행(yum)
sudo yum install -y gcc gcc-c++
apr, apr-util, pcre 패키지를 위해서 xml관련 패키지가 또 필요한데 이부분을 설치한다
sudo yum install -y expat expat-devel expat-static
2. wget으로 기타 필요한 파일 받아오기
기본적으로 설치파일들의 위치는 관례를 따른다(/usr/local/src 하위에 존재한다고 가정한다.)
cd /usr/local/src
다운로드(버전은 계속 변경될 수 있음. 2023-12-05 현재기준 httpd 2.4.58)
wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz
wget https://downloads.apache.org/httpd/httpd-2.4.58.tar.gz
wget https://downloads.apache.org/apr/apr-1.7.4.tar.gz
wget https://downloads.apache.org/apr/apr-util-1.6.3.tar.gz
압축해제
tar -zxvf pcre-8.45.tar.gz
tar -zxvf httpd-2.4.58.tar.gz
tar -zxvf apr-1.7.4.tar.gz
tar -zxvf apr-util-1.6.3.tar.gz
3. apr, apr-util, pcre 설치 진행
apr설치
src 하위에 apr폴더에 필요한 파일들 설치.
cd /usr/local/src/apr-1.7.4
./configure --prefix=/usr/local/src/apr
make
make install
apr-util 설치
cd /usr/local/src/apr-util1.6.3
./configure --prefix=/usr/local/src/apr-util --with-apr=/usr/local/src/apr
make
make install
pcre설치
src 하위에 pcre폴더에 필요한 파일들 설치.
cd /usr/local/src/pcre-8.45
./configure --prefix=/usr/local/src/pcre \\
--with-apr-util=/usr/local/src/apr-util \\
--with-apr=/usr/local/src/apr
make
make install
4. 아파치(apache)설치
(각종 모듈을 추가 설치하는데 ssl 모듈을 적용하려면 openssl 설치가 선행되어야 한다.)
/usr/local/apache2 해당 경로에 일단 설치를 지정했다.
개발서버의 경우 apache라는 폴더에 설치를 진행함.
cd /usr/local/src/httpd-2.4.58
./configure --prefix=/usr/local/apache2 \\
--with-apr=/usr/local/src/apr \\
--with-apr-util=/usr/local/src/apr-util \\
--with-pcre=/usr/local/src/pcre/bin/pcre-config \\
--enable-so \\
--enable-ssl --with-ssl=/usr/bin/openssl
make
make install
make install 과정중 문제가 발생한 경우 prefix에 지정된 폴더가 생기지 않음.
설치확인(prefix경로 호출시 디렉토리라고 반응함.)
/usr/local/apache2
5. 추가 모듈 적용 및 주석해제
추가로 적용 시킬 모듈 리스트(주석해제 필요)
mod_rewrite
mod_userdir
mod_negotiation
mod_slotmem_shm
mod_proxy_wstunnel
mod_proxy_http
mod_proxy
mod_socache_shmcb
mol_ssl
모듈에 대한 간단한 설명
- mod_rewrite:
- 설명: URL 리디렉션, 리라이팅, 그리고 리버스 프록시와 같은 요청을 재작성하는데 사용되는 모듈입니다.
- 사용 예시: 웹 사이트의 URL을 간결하게 하거나, SEO 목적으로 URL을 변경하는데 사용될 수 있습니다.
- mod_userdir:
- 설명: 각 사용자의 홈 디렉토리에서 웹 컨텐츠를 제공하는데 사용되는 모듈입니다.
- 사용 예시: 사용자마다 개별적인 홈 디렉토리를 가지고 웹 페이지를 호스팅할 때 사용됩니다.
- mod_negotiation:
- 설명: 클라이언트와 서버 간에 문서 협상(Content Negotiation)을 허용하는 모듈로, 클라이언트의 요청에 가장 적합한 문서를 제공합니다.
- 사용 예시: 서로 다른 언어 또는 문서 형식의 버전을 가진 콘텐츠를 클라이언트에게 적절히 제공할 때 사용됩니다.
- mod_slotmem_shm:
- 설명: Apache 서버의 여러 인스턴스 간에 데이터를 공유하기 위한 공유 메모리 슬롯을 관리하는 모듈입니다.
- 사용 예시: 여러 Apache 서버 인스턴스 간에 정보를 공유하고 조정할 때 사용됩니다.
- mod_proxy_wstunnel:
- 설명: WebSocket 터널링을 위한 모듈로, HTTP 요청을 WebSocket으로 업그레이드하는 역할을 합니다.
- 사용 예시: 웹 소켓을 지원하는 애플리케이션과 웹 서버 간에 통신할 때 사용됩니다.
- mod_proxy_http:
- 설명: HTTP 백엔드 서버로 요청을 프록시하는데 사용되는 모듈입니다.
- 사용 예시: Apache 서버가 클라이언트로부터의 요청을 다른 HTTP 서버에게 전달하고 응답을 클라이언트에게 반환할 때 사용됩니다.
- mod_proxy:
- 설명: 일반적인 프록시 서버로 동작하는데 사용되는 모듈입니다. mod_proxy_http, mod_proxy_wstunnel 등이 이 모듈을 기반으로 동작합니다.
- 사용 예시: 클라이언트의 요청을 다른 서버로 전달하고 응답을 받아 클라이언트에게 반환할 때 사용됩니다.
- mod_socache_shmcb:
- 설명: SSL 세션 캐시를 관리하는데 사용되는 모듈입니다.
- 사용 예시: SSL/TLS 연결을 빠르게 수립하고 성능을 향상시키기 위해 SSL 세션 정보를 캐시할 때 사용됩니다.
httpd.conf 파일 수정(설치경로/conf/httpd.conf )
간단하게 파일 몇부분만 수정 처리.
#원하는포트 추가
Listen 80
#도메인인데 없는경우 내부ip주소 적용.
ServerName www.example.com
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule rewrite_module modules/mod_rewrite.so
6. 아파치 웹서버 서비스 등록
파일생성
# vi /usr/lib/systemd/system/httpd2.service
파일내용
[Unit]
Description=Apache Service
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/apache2/bin/apachectl start
ExecReload=/usr/local/apache2/bin/apachectl graceful
ExecStop=/usr/local/apache2/bin/apachectl stop
KillSignal=SIGCONT
PrivateTmp=true
[Install]
WantedBy=multi-user.target
데몬 리로드
systemctl daemon-reload
재시작시 동작되는 서비스로 등록 or 해제
syetemctl enable httpd2
systemctl disable httpd2
서비스 실행
systemctl status httpd2
systemctl start httpd2
systemctl stop httpd2
systemctl restart httpd2
- 아파치 웹서버 설치시 참고한 사이트 리스트참고해서 설치하면 좋을듯 하다.
- 모두 설치버전이 조금만 다르지 비슷한 절차대로 진행하고있다.
[Linux] 아파치 서버 컴파일 설치 (httpd-2.4.52)
[Apache] 아파치 HTTPD Server v2.4.52 설치 (Source Compile)
'개인노트' 카테고리의 다른 글
왜 구글 시니어 개발자는 코딩을 안할까(이다니엘) - 인프콘 2023 (1) | 2023.12.15 |
---|---|
개발자의 회고록…(2023년) (0) | 2023.12.14 |
Apache ActiveMQ 설치 및 서비스 등록 간단 설정. (0) | 2023.12.04 |
톰캣(Tomcat) 서비스 등록 및 실행(리눅스기준) (0) | 2023.12.04 |
Openssl를 Centos에 설치(1.1.1.1 tar.gz파일 기준) (0) | 2023.12.04 |