목차 1. 개요 2. nginx 설정 파일 3. SSL 설정 및 HTTP2 protocol 지원 4. 안녕에서 제공하는 추가 모듈 5. PHP 연동 6. JAVA(tomcat)/Python/Perl 연동 7. nginx 구동
1. 개요
안녕 리눅스에서 제공하는 nginx는 1.10 stable branch를 제공합니다.
참고로, 안녕 리눅스에서 제공하는 error page는 공식적인 서비스에 활용하기에 적합하지 않은 표현을 사용하고 있습니다. 공식적인 서비스 사용 시에는 꼭 에러 페이지들을 별도로 만드는 것을 권고합니다.
2. ningx 설정 파일
[root@an3 ~]$ tree /etcetc├──logrotate.d│└──nginx├──nginx│├──common.d││├──core-alias.conf││├──core-logging.conf││└──core-secure.conf│├──conf.d││├──Default.conf││├──ssl.conf││└──vhost.conf│├──koi-utf│├──koi-win│├──mime.types│├──nginx.conf│├──modules.conf│├──params││├──fastcgi.conf││├──fastcgi_params││├──scgi_params││└──uwsgi_params│└──win-utf└──sysconfig└──nginx
/etc/ngninx/nginx.conf는 구동을 위한 최소한의 설정만을 가지고 있습니다. 그러므로 이 파일을 수정하지 마십시오.
사용자 설정은 /etc/nginx/conf.d 에서 하십시오.
/etc/logrotate.d/nginx 에서 log ratation 설정을 하고 있습니다. 기본으로 10일치의 로그를 남기도록 되어 있습니다.
/etc/sysconfig/nginx에서 init script에 필요한 옵션을 설정하고 있습니다.
server block의 마지막에 아래 예제와 같이 common.d/*.conf를 include 하십시오.
/etc/nginx/common.d/core-secure.conf에서 취약한 웹 접근을 막는 설정이 있습니다. 운영에 문제가 될 수 있는 설정이니, 서비스 전에 꼭 확인 하십시오.
nginx의 인증서는 chain 인증서가 존재할 경우, 인증서와 chain 인증서를 합쳐서 만들어야 합니다.
다음은 startssl class 2 chain 인증서를 이용하여 만드는 경우 입니다.
key 파일의 암호를 제거하지 않으면, ngninx 구동 시에 key 암호를 입력해야 합니다. 이를 해결하기 위해서 암호를 제거한 key 파일을 설정 합니다.
또한, ningx 는 http2 protocol을 1.9 main line에서 지원하고 있습니다. 안녕 리눅스는 stable 버전인 1.10을 제공하고 있으므로 h2c protocol 을 지원합니다. 이전에 1.8을 설치했었다면, spdy 옵션을 http2로 변경 하십시오.
안녕 리눅스의 ssl 설정 예제는 기본으로 h2c(http2)를 사용 하도록 되어 있습니다.
server {
listen 443 ssl spdy;
server_name annyung-sample.org;
root /home/httpd/annyung-smaple.org;
index index.html;
# ** 중략 **
# Load configuration files for the default server block.
include /etc/nginx/common.d/*.conf;
}
server {
listen 443 ssl http2;
server_name annyung-sample.org;
root /home/httpd/annyung-smaple.org;
index index.html;
# for ssl certificate configuration
ssl on
ssl_certificate annyung-sample.org.pem
ssl_certificate_key annyung-sample.org.decrypt.key
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:ECDH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/common.d/*.conf;
}