# 테스트 환경

  • OS : Oracle Linux Server release 8.6
  • JDK : 1.8
  • Tomcat : 9.0.89
  • Nginx ver. : 1.14.1

 

1. Log 경로 변경

NGINX의 기본 로그 경로는 다음과 같다.

access_log /var/log/nginx/access.log
error_log /var/log/nginx/error.log

 

log를 따로 빼서 보관하기 위해 아래의 경로를 생성 후

access_log  /logs/nginx/access_log/access.log
error_log /logs/nginx/error_log/error.log

 

해당 경로로 nginx.conf에서 설정 값을 변경 후 재 실행하게 되면 Permission denied 에러가 떨어지게 된다.

systemctl status nginx 명령어로 상태 확인 결과 해당 에러 확인 가능

 

새로 생서한 Log 경로에 권한 때문에 발생한 문제였다.

drwxr-xr-x.  2 nginx root  41 Oct 31 11:13 nginx

 

위와 같이 접근 권한을 올바르게 잡아주니 정상적으로 Log 경로가 변경되어 쌓이기 시작했다.

 

2. server 별 Log 경로 분기

포괄적인 Log 정보 보다는 Server 별 상세 Log를 따로 관리하는 것이 유지보수 및 문제점을 찾는 데 있어서 더 수월하다.

 

Servrer 별로 Log 정보를 분기 시키기 위해서는 아래와 같은 설정이 필요하다.

 

1. 전역 설정으로 되어 있는 error_log, error_log 설정 구문 주석 처리

# error_log /var/log/nginx/error.log;
# access_log /var/log/nginx/access.log;

 

2. server 블럭마다 Log 경로 설정

 server {
        listen       80;
        server_name  www.tjddus97.or.kr;
        return 301 https://$host$request_uri;
        access_log /logs/nginx/tjddus97_80/access.log;
        error_log /logs/nginx/tjddus97_80/error.log;
    }

    server {
        listen       443;
        server_name  www.tjddus97.or.kr;
        root         /usr/share/nginx/html;
        access_log /logs/nginx/tjddus97_443/access.log;
        error_log /logs/nginx/tjddus97_443/error.log;
    }

 

server 블럭마다 원하는 dir 및 log명, log 형식을 지정하여 설정 파일 저장 후 reload 한다.

 

설정 적용 후 각 server마다 설정한 log 디렉터리로 잘 쌓이는 것이 확인 가능하다.

'WEB > NGINX' 카테고리의 다른 글

NGINX Health Check  (0) 2024.10.30
Nginx 보안 취약점  (0) 2024.08.22
HTTP to HTTPS Redirect  (0) 2024.07.31
13: Permission denied while connecting to upstream  (0) 2024.07.30
nginx & WAS 연동  (0) 2024.07.30

# 테스트 환경

  • OS : Oracle Linux Server release 8.6
  • JDK : 1.8
  • Tomcat : 9.0.89
  • Nginx ver. : 1.14.1

 

Nginx와 Nginx Plus는 upstream에 속해 있는 서버들을 지속적으로 테스트하고 사용 불가능한 서버에는 요청을 분기시키지 않으며 다시 복구된 서버를 LB 그룹에 추가할 수 있다.

 

다만 Open Source Nginx의 경우엔 수동적인 health check만 가능하며 활성 상태 및 active 활동 모니터링 대시보드 사용을 위해서는 Nginx Plus를 사용해야 한다.

 

따라서 현재 환경에선 수동 Health Check만 테스트 진행

 

1. 테스트 환경 및 설정

WAS는 tomcat으로 통일하여 tomcat_1, tomcat_2 두 대를 준비

 

테스트 환경 구성도

 

nginx.conf에 max_failsfail_timeout 설정을 추가

 

  • max_fails : 서버가 사용할 수 없음으로 표시되는 동안 발생하는 실패 시도 횟수를 지정할 수 있음
max_fails=3 으로 설정할 경우

트랜잭션이 들어왔을 때 해당 서버에 3회 연결을 요청하고 
만약 3회 모두 응답이 없을 경우 사용 불가능한 서버로 인식

 

  • fail_timeout : 서버가 사용 불가능하다고 판단되기까지 실패한 시도 횟수가 발생하는 시간과 사용 불가능하다고 판단되면 해당 판단이 유지되는 시간
fail_timeout=30s 으로 설정할 경우

30초 안에 max_fails 설정값 만큼을 서버에 요청하고 사용 불가능한 서버라고 판단될 경우 30초 동안 해당 상태를 유지
또한 30초마다 서버 사용 가능, 불가능을 판단하기 위해 요청을 보냄

 

 

아래는 테스트를 위해 로컬에 설정한 내용이다.

upstream was {
        server 192.168.56.230:8080;
        server 192.168.56.231:8080 max_fails=5 fail_timeout=20s;
    }

 

LB 방식은 Round Robin 형태로 하여 각 서버로 번갈아 가며 요청을 보낸다.

 

231 서버에 추가적으로 설정한 값에 대한 설명은 아래와 같다.

  1. 231 서버에 최초 5회 호출 요청응답이 없을 경우 사용 불가능한 상태로 인식으로 하고 해당 상태를 20초 동안 유지한다.
  2. 20초가 지난 시점 231 서버에 다시 호출 요청을 하여 여전히 사용 불가능 상태인지 아니면 현재는 active 한 상태인지 확인한다.

 

 

2. 테스트 진행

각 tomcat 서버에 배포되어 있는 어플리케이션 중 sessionTest.jsp 페이지를 지속적으로 호출하는 테스트를 진행.

sessionTest.jsp

 

현재 LB 형태는 Round Robin으로 tomcat_1과 tomcat_2에 1:1로 요청을 분기 및 호출을 요청하였다.

 

tomcat_1의 경우 Running 상태이기 때문에 지속적으로 호출이 쌓이고 있지만 tomcat_2의 경우 Shutdown 상태이기 때문에 upstream에 작성한 설정값대로

 

5번 호출 후 사용 불가능 서버로 판단되어 더이상 요청을 분기시키지 않는 것을 확일 할 수 있다.

error.log를 tail 해 놓은 후 호출하여 테스트 결과 값 확인

 

해당 상태 유지 및 재 테스트 시간인 20초가 지나자 nginx는 tomcat_2번 서버에 다시 호출을 요청했고 여전히 사용 불가능인 상태라고 판단하여 다시 20초 동안 호출을 분기시키지 않는다.

20초 후 231 서버에 다시 호출 요청을 했지만 여전히 사용 불가능

'WEB > NGINX' 카테고리의 다른 글

NGINX Log 설정  (0) 2024.10.31
Nginx 보안 취약점  (0) 2024.08.22
HTTP to HTTPS Redirect  (0) 2024.07.31
13: Permission denied while connecting to upstream  (0) 2024.07.30
nginx & WAS 연동  (0) 2024.07.30

# DocumentRoot 영역 분리

최초에 nginx 설치 시 /usr/share/nginx/html를  DocumentRoot 디렉터리로 사용

 

해당 html 디렉터리는 공격받기 쉬운 문서들 및 공격에 이용될 수 있는 시스템 관련 정보도 포함되어 있기 때문에 필히 변경이 필요

 

 

조치 방법

최초 설치 시 설정되는 root 경로 말고 커스텀 경로로 변경

/usr/share/nginx/html → /usr/local/nginx/html

수정 후 정상 기동 확인 및 호출 테스트

 

# Symbolic Link 사용 제한

어느 WEB Server든 공통적으로 가지고 있는 보안 취약점 사항인 symbolic link에 대한 사용을 제한하는 설정을 필수적으로 해야 한다.

(링크를 통해 편의성은 제공 가능하지만 관리자 말고 다른 일반 사용자들도 시스템의 중요 파일에 접근할 수 있는 보안 문제를 발생시킬 수 있기 때문)

 

조치 방법

nginx.conf 파일에 disable_symlinks 설정 적용

disable_symlinks on;

 

 

# 파일 업로드 및 다운로드 용량 제한 설정

불필요한 파일의 대량 업로디 및 다운로드 시 서비스에 영향을 미칠 수 있기 때문에 용량 제한 설정 필요

 

 

조치 방법

ex)

client_max_body_size 20M;

 

제한 설정의 용량같은 경우 애플리케이션 및 시스템의 환경에 맞게 설정

 

 

# Directory Listing 제거

디렉터리 요청 시 해당 디렉터리에 기본 문서(index.html)가 존재하지 않을 경우 디렉터리 내 모든 파일 목록을 화면에 보여주는 기능으로 apache 기반의 OHS에서도 동일하게 나타나는 보안 취약점 부분

 

해당 기능이 비활성화 되어 있지 않을 시 외부에서 해당 폴더 내의 모든 파일에 대한 접근이 가능하기 때문에 치명적인 보안 취약점이 될 수 있음

 

조치 방법

nginx.conf 파일에 autoindex off 설정 추가

autoindex off;

'WEB > NGINX' 카테고리의 다른 글

NGINX Log 설정  (0) 2024.10.31
NGINX Health Check  (0) 2024.10.30
HTTP to HTTPS Redirect  (0) 2024.07.31
13: Permission denied while connecting to upstream  (0) 2024.07.30
nginx & WAS 연동  (0) 2024.07.30

# 테스트 환경

  • OS : Oracle Linux Server release 8.6
  • JDK : 1.8
  • WebLogic ver. : 12cR2
  • Nginx ver. : 1.14.1

 

블로그에 작성되어 있는 nginx ssl 설정 / nginx&WAS 연동 글을 종합하여 작성

 

1. SSL 인증서 세팅

https://tjddus97.tistory.com/10

 

nginx ssl 설정

# 테스트 환경OS : Oracle Linux Server release 8.6JDK : Oracle jdk1.8.0_321nginx ver. : 1.14.1 1. openssl을 이용한 인증서 생성① ssl 디렉터리에 root key 생성openssl genrsa -aes256 -out root.key 4096root key password : ... ② roo

tjddus97.tistory.com

 

위의 글을 참고하여 SSL 인증서 준비

 

2. nginx.conf 파일 수정

80 → 443 즉, http to https Redirect를 설정하기 위해 nginx.conf 파일 수정

 

http {
	...
	...
    
	upstream weblogic {
		server 192.168.56.230:8002;
		server 192.168.56.231:8002;
	}

	server {
		listen       443;
		server_name  www.tjddus97.or.kr;
		root         /usr/share/nginx/html;

		ssl on;
		ssl_certificate /etc/nginx/ssl/root.pem;
		ssl_certificate_key /etc/nginx/ssl/private.pem;
		ssl_prefer_server_ciphers on;


		location / {
			proxy_pass         http://weblogic;
			proxy_http_version 1.1;
			proxy_redirect     off;
			proxy_set_header   Host $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-Host $server_name;
	}
        
	server {
		listen 80;
		server_name www.tjddus97.or.kr;
		return 301 https://$host$request_uri;
	}
        
}

 

upstream

nginx&WAS 연동 글과 동일하게 Round Robin 방식 사용하여 WebLogic Server 2개를 연동

 

http 통신 server {}

80 port를 사용하며 server_name은 www.tjddus97.or.kr  이라는 도메인 네임을 사용

 

해당 port 및 도메인 네임을 통해 요청이 들어오게 되면 HTTP Status Code 중 하나인 301 즉, 영구이동을 시켜주게 됨

→ 들어온 요청에 대한 페이지가 영구 이전되었기 때문에 https://$host$request_uri 주소로 return

 

https 통신 server {}

https://$host$requrest_uri 로 redirect 된 요청을 처리하는 server 컨텍스트

 

ssl 통신을 위해 443 port를 사용하며 기존과 동일하게 Round Robin 방식을 사용하는 weblogic upstream의 서버들에 요청을 proxy

 

 

3. TEST

http://www.tjddus97.or.kr:80  호출

 

 

 

https://www.tjddus97.or.kr:443  으로 redirect 된 것 확인 가능

'WEB > NGINX' 카테고리의 다른 글

NGINX Health Check  (0) 2024.10.30
Nginx 보안 취약점  (0) 2024.08.22
13: Permission denied while connecting to upstream  (0) 2024.07.30
nginx & WAS 연동  (0) 2024.07.30
nginx Load Balancing  (0) 2024.07.29

 

위와 같은 Permission denied 오류가 발생하며 nginx가 정상 기동 되지 않을 때

 

① http_port_t에 명시되어 있는 port를 사용하고 있는지 확인

semanage port -l | grep http_port_t
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988

 

 

② OS의 SELinux 설정값 확인 및 변경

httpd_can_network_connect

httpd 프로세스에서 네트워크 연결에 대한 하용 여부를 결정하는 설정

getsebool -a | grep httpd

 

위의 사진과 같이 httpd_can_network_connect 설정이 off일 경우 on으로 변경

 

setsebool httpd_can_network_connect on -P

'WEB > NGINX' 카테고리의 다른 글

Nginx 보안 취약점  (0) 2024.08.22
HTTP to HTTPS Redirect  (0) 2024.07.31
nginx & WAS 연동  (0) 2024.07.30
nginx Load Balancing  (0) 2024.07.29
nginx ssl 설정  (0) 2024.07.29

# 테스트 환경

  • OS : Oracle Linux Server release 8.6
  • JDK : 1.8
  • WebLogic ver. : 12cR2
  • nginx ver. : 1.14.1

# 연동 과정에서 nginx의 역할 - Reverse Proxy

nginx는 리버스 프록시의 개념을 가짐 (Reverse Proxy - Client의 요청을 받아 내부 서버로 분기 전달 해주는 개념)

 

사용자가 요청을 보내게 되면 Reverse Proxy 역할을 수행하는 nginx가 Application이 배포되어 있는 WAS로 요청을 전달

 

사용자의 요청 → nginx → Web Application Server

 


 

(테스트 환경에 설치되어 있는 WebLogic과의 연동 과정을 작성)

 

# nginx / WAS 연동 과정

 

① WAS 기동 및 Application Test

WAS 기동 상태 확인 

ps -ef | grep weblogic.Server

ps -ef | grep tomcat

ps -ef | grep lena

ps -ef | grep jboss

WebLogic Admin / Instance Server process 확인 - WAS1 장비
WebLogic Instance Server process 확인- WAS2 장비

 

AdminServer / testM1 / testM2

→ instance server인 testM1, testM2는 testCluster로 묶여있는 상태

 

WebLogic Application 배치 상태 및 대상 확인

 

② nginx.conf 수정

http {
   .
   .
   .
   .
    upstream weblogic {
    	# RoundRobin 방식
        server 192.168.56.230:8002;
        server 192.168.56.231:8002;
    }

    server {
        listen       80;
        server_name  www.tjddus97.or.kr;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        # Application의 context-root에 따라 location 설정
        # 요청이 들어올 주소
        
            proxy_pass         http://weblogic;
            proxy_http_version 1.1;
            proxy_redirect     off;
            proxy_set_header   Host $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-Host $server_name;
        }
   }

 

proxy_pass

location을 통해 들어온 요청에 대한 포워딩 주소를 정의

http://weblogic 즉, upstream에 정의된 주소 2개를 뜻함

 

proxy_set_header

proxy 된 서버에 전달된 요청 헤더에 필드를 재 정의하거나 추가 가능

즉, 들어온 요청의 형식이 proxy_set_header에 설정한 형식과 일치할 경우 해당 요청을 WAS로 보냄

 

https://nginx.org/en/docs/http/ngx_http_proxy_module.html?&_ga=2.128603204.951985637.1722226277-238946016.1716873354#proxy_set_header

 

Module ngx_http_proxy_module

Module ngx_http_proxy_module The ngx_http_proxy_module module allows passing requests to another server. Example Configuration location / { proxy_pass http://localhost:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } Directives

nginx.org

 

 

③ 호출 TEST

WebLogic IP를 통한 직접 호출 화면

 

nginx를 통한 호출 화면

 

nginx access log

 

'WEB > NGINX' 카테고리의 다른 글

HTTP to HTTPS Redirect  (0) 2024.07.31
13: Permission denied while connecting to upstream  (0) 2024.07.30
nginx Load Balancing  (0) 2024.07.29
nginx ssl 설정  (0) 2024.07.29
nginx.conf (2)  (0) 2024.07.29

# nginx Load Balancing

애플리케이션 성능 향상, 대규모 애플리케이션 제공, 컨테이너 및 microservices 배포를 위한 기본 도구

 

Load Balancing 기술은 nginx에서는 4가지 nginx Plus에서는 5가지 기술을 제공하고 있음

 

nginx

Round robin, Hish, IP Hash, Least connections 총 4가지 Load Balancing 기술을 제공

 

nginx Plus

Least Time 한 가지를 더 제공하여 총 5가지 Load Balancing 기술을 제공

 


 

# upstream

TCP Load Balancing에서 사용되는 태그로 http context 내에서 사용

 

1. server 블록에서 사용자가 정의한 특정 트래픽을 수신 대기하는 가성 서버를 정의

2. 이를 지정된 upstream 서버 그룹에 Proxy

 

upstream test {
	server was1;
	server was2;
}

server {
	listen 80;
	server_name localhost;
	# 192.168.56.xxx와 같은 real ip / www.test123.co.kr과 같은 도메인 네임이 들어갈 수 있음
    
	location / {
		proxy_pass http://test;
        # 어떤 upstream 서버로 요청을 분기할지 작성
	}
}

 

 


 

① Round Robin

nginx / nginx Plus 모두에 포함되어 있는 Load Balancing 기술

upstream 서버 목록을 순차적으로 실행하여 다음 연결 요청을 각 서버에 차례대로 할당

 

upstream test {
	server was1;
	server was2;
}

server {
	listen 80;
	server_name www.test123.co.kr;
    
	location / {
		proxy_pass http://test;
	}
}

 

 최초 요청은 was1로 proxy 하고 두 번째 요청은 was2로 proxy, 세 번째 요청은 다시 was1로 proxy

→ upstream에 선언되어 있는 서버들에게 요청을 순차적으로 분기

 

Round Robin Load Balancer 호출 테스트

 

 

② Hash

nginx / nginx Plus 모두에 포함되어 있는 Load Balancing 기술

사용자가 지정한 텍스트 및 nginx 변수의 조합을 기반으로 hash를 계산하고 해당 hash를 upstream에 선언된 서버 중 하나와 연결

upstream test {
    hash $scheme$request_uri;

    server was1;
    server was2;
}

server {
    server_name www.test123.co.kr;

    location / {
       proxy_pass http://test;
    }
}

 

 

③ IP Hash

HTTP에서만 사용 가능하며 Client IP 주소를 기반으로 Hash를 설정

upstream test {
    ip_hash;

    server was1;
    server was2;
}

server {
    server_name www.test123.co.kr;

    location / {
       proxy_pass http://test;
    }
}

 

Client에 IPv6 주소가 있는 경우 Hash는 전체 주소를 기반으로 하며 IPv4 주소가 있는 경우에는 주소의 처음 3욱텟만을 기반으로 함

 

이는 서브넷 범위 즉, /24에서 동적으로 IP 주소를 할당받는 ISP 클라이언트에 최적화되도록 설계

 

동일한 주소에서 온 요청이 동일한 서버에 도달하도록 보장하는 Load Balancing 방법

 

④ Least Connections

Load Balancer가 각 서버에 대한 현재 활성화된 연결 수를 비교하여 연결이 가장 적은 서버로 요청을 proxy

 

Least Connections은 가장 광범위하게 사용되는 사례로 다양한 production 트래픽에 적합한 Load Balancing 방법

서버의 용량에 따라 트래픽을 효과적으로 분산

upstream test {
    least_conn;

    server was1;
    server was2;
}

server {
    server_name www.test123.co.kr;

    location / {
       proxy_pass http://test;
    }
}

 

→ 연결 수에 비례하여 Request를 각 서버로 고르게 분해 (동일한 서버 환경이기 때문에 번갈아 가며 각 서버에 요청을 분배)

 

⑤ Least Time

nginx Plus에서만 사용 가능한 Load Balancing 방법

 

평균 응답 시간을 포함하여 서버의 최근 성능 기록을 고려하여 요청을 proxy

upstream 서버의 평균 응답 시간이 매우 다른 경우에 특히 적합

upstream test {
    least_time (header | last_byte);

    server was1;
    server was2;
}

server {
    server_name www.test123.co.kr;

    location / {
       proxy_pass http://test;
    }
}

 

 


 

# 서버 가중치 설정

서버 가중치 설정이 적절치 않을 경우 성능이 낮은 서버는 과부하에 걸리고 성능이 높은 서버는 전체적 또는 부분적으로 유휴 상태가 될 수 있음

 

가중치 설정을 위해서는 upstream 블록 내의 server 지시문에 weight 매개변수를 포함시켜야 함

upstream test {
    server was1 weight=6;
    server was2 weight=3;
    server was3;
}

 

① Round Robin

각 서버는 들어오는 요청의 가중치를 가중치의 합으로 나눈 값과 동일한 비율을 가져옴

 

ex) 요청이 10건인 경우 → was1 : 6건 / was2 : 3건 / was3 : 1건

 

② Hash, IP Hash

가중치가 없는 경우에는 Hash 알고리즘은 가능한 모든 Hash 값 집합을 Upstream 그룹의 각 서버에 대해 하나씩 Bucket 으로 균등하게 분배

 

가중치를 사용하면 가중치를 합산하여 가능한 Hash 집합을 해당 수의 Bucket으로 나누고 각 서버를 가중치에 해당하는 Bucket 수와 연결

 

ex) 요청이 10건인 경우  was1 : 6 bucket / was2 : 3 bucket / was3 : 1 bucket

 

③ Least Connections, Least Time

해당 Load Balancing 알고리즘들은 가중치 없이도 서버 용량에 따라 부하를 분산하는데 매우 효과적임

여기서 가중치를 추가로 설정할 경우 관련 성능이 훨씬 향상

 

해당 알고리즘들은 각 요청을 가장 낮음 점수를 가진 서버로 보내게 됨

따라서 가중치를 할당하면 각 서버의 점수를 가중치로 나눈 후 다시 가장 낮은 값을 가진 서버로 요청을 proxy

was1의 점수가 100으로 가장 낮으며 연결 수가 600으로 가정할 경우

was 1 -> 연결 수 600 / 6 = 100점
was 1 -> 연결 수 400 / 3 = 133점
was 1 -> 연결 수 120 / 1 = 120점

was1이 연결 수가 600으로 가장 많은 연결을 유지하고 있지만 점수가 100점으로 가장 낮기 때문에
요청을 받게 됨

 


 

참조 문헌

 

https://nginxstore.com/blog/nginx/nginx-load-balancing-%EC%82%AC%EC%9A%A9-%EC%82%AC%EB%A1%80/

 

NGINX Load Balancing 사용 사례

NGINX Load Balancing 기술에 중점을 두고 다양한 사용 사례에 적합한 방법을 선택하는 방법에 대한 조언을 제공합니다. NGINX는 네 가지 Load Balancing 기술을 제공합니다.

nginxstore.com

 

'WEB > NGINX' 카테고리의 다른 글

13: Permission denied while connecting to upstream  (0) 2024.07.30
nginx & WAS 연동  (0) 2024.07.30
nginx ssl 설정  (0) 2024.07.29
nginx.conf (2)  (0) 2024.07.29
nginx.conf (1)  (0) 2024.07.26

# 테스트 환경

  • OS : Oracle Linux Server release 8.6
  • JDK : 1.8
  • nginx ver. : 1.14.1

 

1. openssl을 이용한 인증서 생성

① ssl 디렉터리에 root key 생성

openssl genrsa -aes256 -out root.key 4096
root key password : ...

root.key 생성

 

② root.csr 생성

openssl req -new -key root.key -sha256 -out root.csr
Enter pass phrase for root.key: ...

root.csr 생성

 

③ root.crt 생성 및 설치

openssl x509 -req -days 3653 -extensions v3_ca -set_serial 1 -in root.csr -signkey root.key -sha256 -out root.crt
Signature ok
subject=C = XX, L = Default City, O = Default Company Ltd
Getting Private key
Enter pass phrase for root.key: ...

root.crt 생성
root.crt 설치

 

④ pem 파일로 변환

전체 pem 파일

cat root.crt > root.pem

 

private key 파일

openssl rsa -in root.key -text > private.pem

 

 

2. ssl 인증서 적용을 위한 nginx.conf 파일 수정

① 443 port 사용 및 인증서 적용을 위한 server 태그 설정

    server {
        listen       443;
        server_name  localhost;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        ssl on;
        # SSL-TLS on
        
        ssl_certificate /etc/nginx/ssl/root.pem;
        # root.pem 경로
        
        ssl_certificate_key /etc/nginx/ssl/private.pem;
        #private.pem(root.key) 경로
        
        ssl_prefer_server_ciphers on;
        # off일 경우 보안에 취약할 수 있기 때문에 on으로 설정

        location / {
        }
    }

 

② 80 port로 들어오는 요청을 443으로 redirect 시켜주는 sever 태그 설정

    server {
        listen       80;
        server_name  localhost;
        return 301 https://$host$request_uri;
        # http 요청이 들어오면 https로 강제로 보내기 위해 return 301 태그 사용
    }

 

 

3. TEST 호출

http로 호출

 

https로 redirect 완료

 

'WEB > NGINX' 카테고리의 다른 글

nginx & WAS 연동  (0) 2024.07.30
nginx Load Balancing  (0) 2024.07.29
nginx.conf (2)  (0) 2024.07.29
nginx.conf (1)  (0) 2024.07.26
nginx 설치  (0) 2024.07.25

+ Recent posts