Environment
- Ubuntu 14.x
- nginx 1.12.0
- spring boot 1.5.3 : executeable jar deploy(using embeded undertow)
nginx 공식 사이트 : http://nginx.org/en/download.html
# 컴파일시 필요한 의존성에 걸린 패키지들을 설치 한다.
root@freecatz:~# apt-get install openssl openssl-devel pcre pcre-devel zlib zlib-devel
root@freecatz:~# wget http://nginx.org/download/nginx-1.12.0.tar.gz
root@freecatz:~# tar zxvf nginx-1.12.0.tar.gz
root@freecatz:~# cd nginx-1.12.0
root@freecatz:~# ./configure --prefix=/usr/local/nginx-1.12.0 --with-http_ssl_module --with-http_v2_module --with-openssl=/root/archive/openssl-1.0.2l
* 참고 : --with-openssl 옵션을 적용하는 경우 openssl 의 소스 경로를 넣어 주어야 한다.
root@freecatz:~# make && make install
root@freecatz:~# cp /usr/local/nginx-1.12.0/conf/nginx.conf /usr/local/nginx-1.12.0/conf/nginx.conf.ori
# 설정 파일 편집
root@freecatz:~# vi /usr/local/nginx-1.12.0/conf/nginx.conf
worker_processes auto;
events {
worker_connections 1024;
use epoll;
multi_accept on;
}
http {
# 보안을 위해 서버 버전 정보 노출을 막는다.
server_tokens off;
sendfile on;
client_max_body_size 10M;
... 중략 ...
upstream undertow {
ip_hash;
server 127.0.0.1:8080 weight=1 max_fails=3 fail_timeout=5s;
server 127.0.0.1:8081 weight=1 max_fails=3 fail_timeout=5s;
server 127.0.0.1:8082 weight=1 max_fails=3 fail_timeout=5s;
}
server {
listen 80;
server_name freecatz.pe.kr;
# return 301 https://$server_name$request_uri;
rewrite ^ https://$server_name$request_uri? permanent;
}
listen 443 ssl;
server_name freecatz.pe.kr;
ssl on;
ssl_certificate /etc/fullchain.pem;
ssl_certificate_key /etc/privkey.pem;
# 보안상의 이유로 SSLv2 SSLv3 은 사용 하지 않는 것이 좋다고 한다. TLSv1.3을 지원 하기 위해서는 OpenSSL 1.1.1 이상의 버젼이 필요 하다고 한다.
ssl_protocols
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
location / {
charset utf-8;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Forwarded-Port $server_port;
proxy_connect_timeout 150;
proxy_send_timeout 100;
proxy_read_timeout 100;
proxy_redirect off;
proxy_pass http://undertow$request_uri;
} # location / end
} # server end
... 중략 ...
# nginx 설정 파일 테스트
root@freecatz:~# nginx -t
nginx: the configuration file /usr/local/nginx-1.12.0/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx-1.12.0/conf/nginx.conf test is successful
root@freecatz:~# /usr/local/nginx-1.12.0/sbin/nginx
# nginx 종료
root@freecatz:~# /usr/local/nginx-1.12.0/sbin/nginx -s quit
# nginx 재시작
root@freecatz:~# /usr/local/nginx-1.12.0/sbin/nginx -s reload
댓글 없음 :
댓글 쓰기