반응형
각 서버의 포트별로 나누어 이중화 하는 방법
데이터베이스 이중화는 MySQL/MariaDB :: 단방향, 양방향 이중화 (Replication) 에서 확인할 수 있습니다.
테스트 서버 정보
- 대상서버: 0.0.0.1
- 대상포트: 5000, 5010, 5020
Nginx 환경 설정 (기본)
upstream serv_a {
server 0.0.0.1:5000;
server 0.0.0.1:5000 backup;
}
upstream serv_b {
server 0.0.0.1:5010;
server 0.0.0.1:5010 backup;
}
upstream serv_c {
server 0.0.0.1:5020;
server 0.0.0.1:5020 backup;
}
server {
listen 5000;
server_name example.com;
location / {
proxy_pass http://server_a
}
}
server {
listen 5010;
server_name example.com;
location / {
proxy_pass http://server_b
}
}
server {
listen 5020;
server_name example.com;
location / {
proxy_pass http://server_c
}
}
backup
이 되는 서버는 기본 서버가 죽었을 경우 자동으로 backup 서버로 연결된다.
SSL 추가
SSL 인증서를 등록하는 과정
server {
listen 5000 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
location / {
proxy_pass https://npm;
}
}
listen
사용하려는 포트 뒤에 ssl 을 추가한다.ssl_certificate
인증서 파일의 경로
Nginx 이중화 할 때에는 도메인 인증서를 그대로 사용하면 안 된다.
도메인 인증서, 중간 인증서, 루트 인증서 를 합친다.
중간 인증서가 없다면 도메인 인증서와 루트 인증서만 합쳐도 된다.
이렇게 합친 인증서를 사용해야 한다.
$ cat [도메인인증서] [중간인증서] [루트인증서] > [원하는이름.crt] ssl_certificate_key
인증서 개인키의 경로ssl_protocols
사용하려는 ssl 프로토콜proxy_pass
https로 변경
WebSocket 사용 시
WebSocket 사용 시 failed: Error during WebSocket handshake
에러가 발생한다면 아래 코드를 추가
server {
listen 5000 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
location / {
proxy_pass https://npm;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}
location 내에 header 정보 추가
참고자료
🔥Nginx에서 SSL 적용해서 https 로 접속 되게 해볼까?
반응형
'Development > Environment' 카테고리의 다른 글
Amazon Linux 서버에서 Selenium 사용하기 (0) | 2023.06.22 |
---|---|
Nginx :: 이중화 과정에서 발생한 오류들 정리 (0) | 2022.12.05 |
SSL :: crt와 key 파일로 pfx 만들기 (0) | 2022.12.05 |
nginx :: [warn] the "ssl" directive is deprecated 오류 해결 (0) | 2022.12.01 |
CentOS7에 MariaDB 설치하기 :: MariaDB install for CentOS7 (0) | 2022.11.17 |