웹서버/Apache 29

[정보] CORS 설정

기본적으로 교차 도메인 요청(Cross Domain Requests)는 Apache 웹 서버에서 비활성화되어 있습니다. Apache에서 CORS(Cross Origin Resource Sharing)를 활성화하려면 Access-Control-Allow-Origin 헤더를 설정해야 합니다. 다음은 Apache 웹 서버에서 CORS를 활성화하는 단계입니다. 1. headers 모듈 활성화 LoadModule headers_module modules/mod_headers.so 2. CORS 활성화 요구 사항에 따라 "Header add Access-Control-Allow-Origin *" 지시문을 Apache 구성 파일, htaccess 파일 또는 가상 호스트 구성 파일에 추가합니다. CORS를 기본 구성 ..

웹서버/Apache 2023.03.20

[Tips] Apache에서 gzip으로 압축하기

Apache에서 GZIP 압축으로 전송되는 데이터 크기를 줄 일 수가 있습니다. 설정하는 순서는 아래와 같습니다. 1. gzip 압축하는 모듈 사용하도록 설정 httpd.conf 파일에서 #(주석)을 제거하거나, 아래와 같이 LoadModule을 통해 압축 기능을 제공하는 deflate_module을 설정합니다. LoadModule deflate_module modules/mod_deflate.so 2. 압축에 적용될 확장자 설정 httpd.conf 파일에 압축에 적용할 확장자 목록을 나열합니다. # GZIP compression for text files: HTML, CSS, JS, Text, XML, fonts AddOutputFilterByType DEFLATE application/javascri..

웹서버/Apache 2023.03.20

[정보] Apache 웹서버에 HTTS를 위한 설정 및 인증서 설치

* 웹서버에 서버 인증서(CRT) 설정 및 테스트 1) SSL 설정 2) 인증서 설정 3) 웹서버(httpd.exe) 기동 4) 브라우저로 HTTPS 테스트 1. SSL/HTTPS 설정 1) httpd.conf에서 SSL 설정 아래 2개 모듈을 로딩. 맨앞의 '#' 주석 문자를 제거하면 됨 LoadModule socache_shmcb_module modules/mod_socache_shmcb.so ...... LoadModule ssl_module modules/mod_ssl.so extra/httpd-ssl.conf 구성 파일을 include함. 맨앞의 '#' 주석 문자를 제거하면 됨 # Secure (SSL/TLS) connections Include conf/extra/httpd-ssl.conf 2..

웹서버/Apache 2022.10.25

[정보] Apache MPM(Multi-Processing Module) 이해

아파치 v2.4에서 기존에 지원하던 prefork, worker 방식의 MPM(Multi-Processing Module)에 event 방식을 추가로 지원합니다. 아파치 v2.4이전에는 거의 worker 방식으로 설정하여 대부분 고객사에서 사용하였습니다. worker 는 쓰레드(Thread) 방식이라 메모리 등의 리소스 활용에 유리하고, prefork 는 프로세스를 새로 생성(fork)하는 방식이라 메모리는 많이 차지하지만, 초기에는 보다 안정적이었기 때문에, PHP 등의 모듈에서는 prefork 방식을 사용하도록 권장하였습니다. 아파치가 현재 사용하고 있는 MPM 방식은 아래와 같이 확인하면 됩니다. $ apachectl -V | grep mpm 1. prefork MPM 아파치가 기동되면서 설정된 개..

웹서버/Apache 2022.10.19

[Tips] 일반 계정으로 80 포트 서비스 하기

Unix/Linux에서 포트번호 1~1023은 시스템 예약 포트로서 root 외의 일반 계정으로는 LISTEN을 통해 서비스할 수 없습니다. 그러므로, root 계정이 아닌 일반계정으로 apache를 설치한 경우 Apache 웹서버 포트를 80 포트로 서비스 하기 위해서는 추가적인 작업이 필요합니다. 아파치를 기동하는 계정이 아닌, 해당 바이너리(httpd) 파일 소유자 권한으로 기동할 수 있도록 sticky bit를 설정하는 것입니다. 설정법 $ cd $APACHE_HOME/bin # httpd 있는 디렉터리로 이동 $ chown root:root httpd # httpd 파일의 소유자를 root 로 변경 $ chmod +s httpd # httpd 파일에 sticky bit 추가 $ ls -l htt..

웹서버/Apache 2022.03.06

[Tips] Apache 프로세스 user/group에 별도 설정 방법

보안 또는 다른 이유 때문에 Apache를 설치 또는 관리 계정외에 별도 계정(예, nobody 등)으로 기동하고자 한다면 아래와 같이 설정하면 됩니다. 1. User/Group 옵션 설정 $APACHE_HOME/conf/httpd.conf 파일을 열어, user/group (예, nobody/nobody)을 설정하면 된다. User nobody Group nobody 참고로, ps 명령어로 httpd 프로세스의 소유 user를 확인하면, httpd 부모 프로세스는 root (root로 설치했다면)로 실행되고, child process는 해당 위에서 설정한 User/Group으로 생성됩니다. 위의 예시에서는 nobody/nobody로 실행됩니다. 실제 서비스는 User/Group 으로 기동된 httpd에..

웹서버/Apache 2022.03.06

[Tips] 아파치 Error Log 이해

아파치는 에러가 발생한 경우에 에러 로그 파일에 출력한다. 또한 로그 레벨을 설정하여 필요시에 디버깅, trace 등 상세한 로그를 출력하여 이슈 해결하는데 활용할 수 있다. 아파치 구성파일에 로그 레벨(LogLevel) 과 에러 파일(ErrorLog) 위치정보를 설정한다. 1. Error로그 파일 설정 - 설정 방법 (기본) ErrorLog "디렉터리/파일명" 예시) ErrorLog "/logs/apache/error_log" - 설정 방법 (파일 로테이션) ErrorLog "|/usr/sw/apache/bin/rotatelogs 디렉터리/파일명.확장자형식 주기" 예시) ErrorLog "|/usr/sw/apache/bin/rotatelogs /logs/apache/error_log.%Y%m%d 864..

웹서버/Apache 2022.02.05

[Tips] SSL 인증서 만료기간 확인하는 방법

인증서는 보통 1년 또는 2년짜리로 발급받으며, 제때에 인증서를 업데이트 하지 않으면 사용자에 불편을 초래할 수 있다. SSL 인증서 만료기간을 확인하는 방법은 아래와 같다. 1. 브라우저 주소창에서 인증서 확인하기 브라우저 주소 입력창에서 https:// 로 호출 한 후, "자물쇠" 모양을 클릭하면 인증서 기간(시작일자 - 만료일자)을 확인할 수 있다. 2. openssl 명령어로 cert 파일 해독하기 * 명령어 $ openssl x509 -in [SSL 인증서 경로]/[cert 파일명] -noout -dates * 예시) $ openssl x509 -in /data/www_sample.crt -noout -dates notBefore=May 2 09:10:11 2020 GMT notAfter=May..

웹서버/Apache 2021.11.08

[정보] Apache 모니터링 툴 - ApacheTop

ApacheTop은 Apache에 의해 생성된 AccessLog 파일을 감시하여, 시스템모니터링 툴로 알려진 top 형식의 Apache 실시간 모니터링 기능을 제공한다. 설치 방법은 아래 URL에 설명되어 있다. https://github.com/tessus/apachetop/commit/269588d68c9c7acf09d778399fb86ca09a81d11d [사용법] $ apachetop [옵션] 예제) $ apachetop -f /log/access/access.log [주요 옵션] -f [Access 로그 파일] : 감시할 Access 로그 파일을 지정한다. -H hits | -T time -H hits : hits(호출) 수 정보 기준을 의미한다. -T time : time(기준시간) 동안 정보..

웹서버/Apache 2021.09.11

[Tips] Apache 웹서버에 gzip 압축 적용하기

mod_deflate 모듈은 네트워크를 통해 클라이언트로 보내기 전에 서버의 출력을 압축할 수 있는 DEFLATE 출력 필터를 제공한다. gzip 압축 기능을 사용하기 위해서는 해당 웹서비스를 사용하는 사용자의 브라우저가 HTTP/1.1을 지원하는 최신 브라우저이어야한다. 참고로, 브라우저와 Apache 웹서버간의 압축 및 해제를 설정하면, 네트워크 구간에 전송되는 컨텐츠 크기는 줄어 네트워크 시간은 줄어들지만, 브라우저와 Apache 서버에서는 압축/해제를 위해 CPU를 소모해야하므로, 자원 사용률과 실질적인 응답속도는 늦을 수도 있음에 주의해야 한다. 1. gzip 모듈 활성화 Apache 구성 파일 httpd.conf 파일에 아래와 같이 mod_deflate 모듈을 로딩해야 한다. LoadModul..

웹서버/Apache 2021.08.26