Nginx SSR 배포 전략 with EC2, CloudFront, pm2, NGINX (2) Ubuntu에서 기존의 http의 80번 포트로 리다이렉트할 수 있지만, 추가적으로 도메인을 등록하고 HTTPS 설정 등을 위해 NGINX를 사용해볼 것이다. 도메인을 등록하기 위해 AWS Route 53을 검색하고 도메인 등록을 누른다. [새 도메인 DNS 관리]에서 AWS Route 53을 이용할 경우 호스팅 영역이 자동으로 생성된다고 설명하고 있다. 이후 도메인 등록까지 최대 3일이 걸... ec2cloudfrontawsSSRnext.jsNginxNginx linux2에 nginx 설치 설치 가능한 nginx를 확인하고, 해당 nginx를 설치한다. localhost 혹은 해당 ip로 접속을 하면 nginx 화면을 볼 수 있다.... Nginxec2Nginx [Springboot] nginx 무중단 배포 환경 설정 nginx 설치하는 방법은 에서 확인할 수 있다. WebRestController를 통해서 현재 어떤 profile을 사용 중인지 확인할 수 있다. prod-application.yml 설정 jar 배포 파일이 존재하는 곳(프로젝트 폴더 안의 build/libs에 있다)으로 이동해서 config 폴더를 만들어 주고 안에 yml 설정 파일을 만들어준다. 위의 명령어를 실행하면 prod-appl... NginxSpringbootNginx 가상 호스트 - server 블록 Host : 네트워크에 연결된 하나의 컴퓨터를 의미 Virtual Host : 한대의 컴퓨터로 마치 여러대의 컴퓨터가 존재하는 것 처럼 동작하도록 한다는 뜻. ex) , 으로 접속 했을 때 둘 다 1.226.82.52 IP를 가르키고, 1.226.82.52 IP에 해당하는 Host가 각각의 도메인에 따라서 서로 다른 페이지를 서비스 하게 할 수 있다. 가상 호스트를 지정하기 위해서 nginx... 가상 호스트NginxNginx nginx+docker으로 무중단 배포 설정 참고한 싸이트 3000포트는 a컨테이너를 3001포트는 b컨테이너를 바라본다. nginx 는 리버스 프록시로 9090포트를 3000또는 30001 으로 연결시켜준다. a컨테이너가 배포중이였다면 b컨테이너를 띄운다. nginx의 9090포트가 바라보는 포트를 바꿔준다. nginx 리로드 a컨테이터 down nginx가 설치된 경로에 conf.d 폴더 생성 conf.d에 service-url.i... nextjsDeployNginxdockerNginx X - Reverse Proxy 이를 통해 nginx 서버 하나에 여러 서버를 붙일 수 있으며, 장애 발생 시 다른 서버로 연결하여 높은 사용자 경험을 제공한다. proxy_set_header는 프록시 서버에 대한 헤더를 설정합니다. proxy_b~ 프록시 서버가 특정 IP 네트워크 또는 IP 주소 범위의 연결을 허용하도록 구성된 경우에 유용할 수 있습니다. proxy_buffering on | off; proxy_buff... Nginx네트워크Nginx Spring Boot 프로젝트 Nginx 무중단 배포 스크립트 단일의 aws ec2 인스턴스에서 무중단 배포를 해야 하는 상황이 드디어 온것이다. 시행착오를 거치면서 완성한 배포 스크립트를 공유한다. 프로젝트는 spring boot + gradle 기반의 프로젝트이고 nginx 서버를 사용하였다. 어플리케이션 사이드에서 포트 프로파일 정보와 헬스 체크에 관련한 컨트롤러를 생성하고 그 정보를 토대로 배포할때 참고한다. 현재 구동중인 프로파일 응답 컨트롤러... NginxSpringbootSpringNginx TIL# 156 서버 하나에서 백엔드 프론트엔드 같이 배포하기 아마존 lightsail을 처음 사용해보게 되면서 하나의 서버에서 backend, frontend를 같이 배포하게 되었다. 하나의 nginx에서 같이 배포를 하게 된거라 많은 시행착오가 있었고 시간이 오래 걸렸지만 앞으로는 절대 안 까먹을 것 같다😅 📌 IP가 하나이기 때문에 프론트 엔드 프로젝트에서 백엔드로 요청 보내는 uri를 프론트엔드와 같은 IP로 설정해주면 된다. 물론 백엔드 api... TILgunicornawsNginxdjangovuejsNginx SSR 배포 전략 with EC2, CloudFront, pm2, NGINX (1) 이번에는 Next.js로 만든 프로젝트를 배포하기 위해 S3가 아닌 EC2를 사용하고 NGINX 리버스 프록시로 HTTPS 적용 등의 다양한 기능을 사용해보려 한다 👏. 1. EC2 인스턴스 생성 2. SSH 인스턴스 연결 EC2 배포는 가상 컴퓨팅 환경에서 서버를 가동시키는 것이므로 로컬에서 할 수 있는 거의 모든 일을 수행할 수 있다. 왜냐면 AWS의 컴퓨터 한 대(인스턴스)를 대여해서 ... ec2cloudfrontawsSSRnext.jsNginxNginx Nginx + https 1. Nginx 설치 2. nginx 서버 블록 설정 nginx 설정 파일 수정 http {} 블록 끝에 구문 추가 3. 서버 블록 파일 만들기 4. 서버 블록 파일 활성화 5. nginx 명령어 정리 nginx 재시작 nginx log 확인 6. https 적용 아래 링크를 참고해 적용하면 된다. 위 링크에서 ssl 적용시 $ sudo certbot --nginx -d example.com... httpsNginxNginx nginx proxy 프록싱은 일반적으로 여러 서버에 부하를 분산하고, 다른 웹사이트의 콘텐츠를 매끄럽게 표시하거나, HTTP 이외의 프로토콜을 통해 처리 요청을 애플리케이션 서버로 전달하는 데 사용된다. 프록시 서버는 여러 클라이언트의 콘텐츠 요청을 인터넷을 통해 다른 서버로 전달하는 중간 또는 중간 서버이다. 역방향 프록시 서버는 일반적으로 개인 네트워크에서 방화벽 뒤에 위치하여 클라이언트 요청을 적절한 백엔... NginxProxyNginx NGINX + HTTPS 적용하기(우분투) Nginx 는 정적파일 생성, 리다이렉팅, 캐싱 등 여러가지 기능을 해준다. 우분투 에서 Nginx 서버랑 Node.js 서버 두개를 서버를 구축 할 것이다. 위 사진은 프론트서버로 예를 들것인데 먼저 저희가 next프레임워크로 구축한 서버를 원래 80번 포트였지만 다시 원래대로 3000포트로 옮기고, nginx 서버를 80번 포트로 실행을 시킬꺼다. 그래서 만약에 외부에서 433포트로 (h... NginxhttpsNginx [Web/Error] Nginx 504, Nginx 502 에러 해결(Feat. Gunicorn) Nginx 504 Gateway Timeout 과, Nginx 502 Bad Gateway 에러였습니다. 확인해보니 Nginx 504 Gateway Time-out 에러가 떴더라구요. 웹서버로 Nginx를 사용하다 보면 504 Gateway Time-out Error가 발생할 때가 있다고 합니다. 그 이유는 서버와 클라이언트간 proxy 연결 시간이 default인 60초를 넘어서 나타나는 ... NginxerrorgunicornwebNginx HTTPS 적용된 것을 Nginx로 무중단 배포해보자. 그 이유는 대상 그룹에 포트가 8084로만 되있었기 때문이다. 그런데 Nginx + SSL + ELB 관련 예제를 보니 대상 포트가 80으로 되있었다. 다음과 같이 말이다. 아마 구조가 80 -> 443 으로 리다이렉트해서 HTTPS를 먼저 적용한 후 , Nginx가 이를 받아서 원하는 포트로 다시 리다이렉트하는 것 같다. 이제 사이트로 다시 접속해보니 다음과 같은 에러가 맞이했다. 일단 추... sslelb배포Nginx포트폴리오Nginx [nginx] Nginx에 이미지 등의 Static 파일 설정하기 nginx 서버에서 이미지 등의 static한 파일을 설정하여 serve 하는 방법에 대하여 알아봅니다. 예를들어 아래의 경로로 접근하는 모든 파일들은 서버의 특정 경로에 있는 파일에서 찾아 보여주도록 설정하려고 합니다. // 접근된 이미지 경로 mysite-address/uploadsImages/a.jpg // 연결할 서버의 경로 /home/ubuntu/abtest/uploadsImages... NginxNginx Nginx로 1대서버에서 HAProxy 적용하기 프록시의 이론을 공부했다면 바로바로바로바로 실습을 적용할때 일단 저에게 주어진 조건이 1대의 서버이므로 1대의 서버로 하겠다..ㅠㅠ 2대의 서버일경우 1대에서 nginx 설정하고 나머지 1대는 그냥 nohup이나 도커로 켜서 해주는거같다 만약 좀더 좋은 환경이라면 그 나머지 1대에서도 nginx설정하고 라우터에서 분기해주면 정말 베스트 짱짱이겟지만.. 이런걸 할바에 아마존 로드밸런스가 더 효... Nginx백엔드devopsNginx AWS EC2 리전 변경 후 ( resion, 지역 ) 웹서버( Web Server, Nginx ) 접속 시 접속 오류 해결 ( err_connection_timed_out aws ec2 ) EC2 지역을 미국(버지니아 북부)에서 서울(Seoul)로 변경해주었다. (err_connection_timed_out aws ec2 오류) AWS EC2 인스턴스 보안그룹 확인 Nginx default 파일 확인 도메인 관리 서비스 확인(가비아) HTTPS(Let's Encrypt 인증서) 확인 1. AWS EC2 인스턴스 보안그룹 확인 본인은 AWS EC2 지역 변경(새 인스턴스 생성)을... 가비아httpsNginxawsec2Lets EncryptLets Encrypt [Nginx] 서버 장애/배포시 점검중 페이지 redirect 기존 Nginx 설정파일에는 404 error를 받는 경우 '페이지를 찾을 수 없습니다' 페이지(NotFound.html)로 redirect 해주는 코드가 작성이 되어 있었다. 마찬가지로, 500번대 에러의 경우에도 동일하게 점검중 페이지인 maintenance.html로 redirect 해주면 될 것이라고 생각했다. Nginx 설정파일 접근 cd /etc/nginx sudo nano ngi... InterceptorNginxaxiosInterceptor AWS EC2 Ubuntu에서 Nginx의 HTTPS 세팅 - AWS EC2로 만든 Ubuntu 서버에서 Nginx를 이용해 HTTPS 세팅을 해보자. [작업하게된 EC2 Ubuntu 버전은 20.04이다.] [외부 인증서 등록 위주로 정리] [1] 인증서가 필요해! - 인증서를 발급 받는 방법은 Certbot을 통한 무료 인증서를 Nginx에 등록하는 것과 외부 인증서를 구매해서 Nginx에 등록해주는 것으로 두 가지 정도를 정리해 볼 것이다. N... ubuntuhttpNginxhttpsec2awsNginx
SSR 배포 전략 with EC2, CloudFront, pm2, NGINX (2) Ubuntu에서 기존의 http의 80번 포트로 리다이렉트할 수 있지만, 추가적으로 도메인을 등록하고 HTTPS 설정 등을 위해 NGINX를 사용해볼 것이다. 도메인을 등록하기 위해 AWS Route 53을 검색하고 도메인 등록을 누른다. [새 도메인 DNS 관리]에서 AWS Route 53을 이용할 경우 호스팅 영역이 자동으로 생성된다고 설명하고 있다. 이후 도메인 등록까지 최대 3일이 걸... ec2cloudfrontawsSSRnext.jsNginxNginx linux2에 nginx 설치 설치 가능한 nginx를 확인하고, 해당 nginx를 설치한다. localhost 혹은 해당 ip로 접속을 하면 nginx 화면을 볼 수 있다.... Nginxec2Nginx [Springboot] nginx 무중단 배포 환경 설정 nginx 설치하는 방법은 에서 확인할 수 있다. WebRestController를 통해서 현재 어떤 profile을 사용 중인지 확인할 수 있다. prod-application.yml 설정 jar 배포 파일이 존재하는 곳(프로젝트 폴더 안의 build/libs에 있다)으로 이동해서 config 폴더를 만들어 주고 안에 yml 설정 파일을 만들어준다. 위의 명령어를 실행하면 prod-appl... NginxSpringbootNginx 가상 호스트 - server 블록 Host : 네트워크에 연결된 하나의 컴퓨터를 의미 Virtual Host : 한대의 컴퓨터로 마치 여러대의 컴퓨터가 존재하는 것 처럼 동작하도록 한다는 뜻. ex) , 으로 접속 했을 때 둘 다 1.226.82.52 IP를 가르키고, 1.226.82.52 IP에 해당하는 Host가 각각의 도메인에 따라서 서로 다른 페이지를 서비스 하게 할 수 있다. 가상 호스트를 지정하기 위해서 nginx... 가상 호스트NginxNginx nginx+docker으로 무중단 배포 설정 참고한 싸이트 3000포트는 a컨테이너를 3001포트는 b컨테이너를 바라본다. nginx 는 리버스 프록시로 9090포트를 3000또는 30001 으로 연결시켜준다. a컨테이너가 배포중이였다면 b컨테이너를 띄운다. nginx의 9090포트가 바라보는 포트를 바꿔준다. nginx 리로드 a컨테이터 down nginx가 설치된 경로에 conf.d 폴더 생성 conf.d에 service-url.i... nextjsDeployNginxdockerNginx X - Reverse Proxy 이를 통해 nginx 서버 하나에 여러 서버를 붙일 수 있으며, 장애 발생 시 다른 서버로 연결하여 높은 사용자 경험을 제공한다. proxy_set_header는 프록시 서버에 대한 헤더를 설정합니다. proxy_b~ 프록시 서버가 특정 IP 네트워크 또는 IP 주소 범위의 연결을 허용하도록 구성된 경우에 유용할 수 있습니다. proxy_buffering on | off; proxy_buff... Nginx네트워크Nginx Spring Boot 프로젝트 Nginx 무중단 배포 스크립트 단일의 aws ec2 인스턴스에서 무중단 배포를 해야 하는 상황이 드디어 온것이다. 시행착오를 거치면서 완성한 배포 스크립트를 공유한다. 프로젝트는 spring boot + gradle 기반의 프로젝트이고 nginx 서버를 사용하였다. 어플리케이션 사이드에서 포트 프로파일 정보와 헬스 체크에 관련한 컨트롤러를 생성하고 그 정보를 토대로 배포할때 참고한다. 현재 구동중인 프로파일 응답 컨트롤러... NginxSpringbootSpringNginx TIL# 156 서버 하나에서 백엔드 프론트엔드 같이 배포하기 아마존 lightsail을 처음 사용해보게 되면서 하나의 서버에서 backend, frontend를 같이 배포하게 되었다. 하나의 nginx에서 같이 배포를 하게 된거라 많은 시행착오가 있었고 시간이 오래 걸렸지만 앞으로는 절대 안 까먹을 것 같다😅 📌 IP가 하나이기 때문에 프론트 엔드 프로젝트에서 백엔드로 요청 보내는 uri를 프론트엔드와 같은 IP로 설정해주면 된다. 물론 백엔드 api... TILgunicornawsNginxdjangovuejsNginx SSR 배포 전략 with EC2, CloudFront, pm2, NGINX (1) 이번에는 Next.js로 만든 프로젝트를 배포하기 위해 S3가 아닌 EC2를 사용하고 NGINX 리버스 프록시로 HTTPS 적용 등의 다양한 기능을 사용해보려 한다 👏. 1. EC2 인스턴스 생성 2. SSH 인스턴스 연결 EC2 배포는 가상 컴퓨팅 환경에서 서버를 가동시키는 것이므로 로컬에서 할 수 있는 거의 모든 일을 수행할 수 있다. 왜냐면 AWS의 컴퓨터 한 대(인스턴스)를 대여해서 ... ec2cloudfrontawsSSRnext.jsNginxNginx Nginx + https 1. Nginx 설치 2. nginx 서버 블록 설정 nginx 설정 파일 수정 http {} 블록 끝에 구문 추가 3. 서버 블록 파일 만들기 4. 서버 블록 파일 활성화 5. nginx 명령어 정리 nginx 재시작 nginx log 확인 6. https 적용 아래 링크를 참고해 적용하면 된다. 위 링크에서 ssl 적용시 $ sudo certbot --nginx -d example.com... httpsNginxNginx nginx proxy 프록싱은 일반적으로 여러 서버에 부하를 분산하고, 다른 웹사이트의 콘텐츠를 매끄럽게 표시하거나, HTTP 이외의 프로토콜을 통해 처리 요청을 애플리케이션 서버로 전달하는 데 사용된다. 프록시 서버는 여러 클라이언트의 콘텐츠 요청을 인터넷을 통해 다른 서버로 전달하는 중간 또는 중간 서버이다. 역방향 프록시 서버는 일반적으로 개인 네트워크에서 방화벽 뒤에 위치하여 클라이언트 요청을 적절한 백엔... NginxProxyNginx NGINX + HTTPS 적용하기(우분투) Nginx 는 정적파일 생성, 리다이렉팅, 캐싱 등 여러가지 기능을 해준다. 우분투 에서 Nginx 서버랑 Node.js 서버 두개를 서버를 구축 할 것이다. 위 사진은 프론트서버로 예를 들것인데 먼저 저희가 next프레임워크로 구축한 서버를 원래 80번 포트였지만 다시 원래대로 3000포트로 옮기고, nginx 서버를 80번 포트로 실행을 시킬꺼다. 그래서 만약에 외부에서 433포트로 (h... NginxhttpsNginx [Web/Error] Nginx 504, Nginx 502 에러 해결(Feat. Gunicorn) Nginx 504 Gateway Timeout 과, Nginx 502 Bad Gateway 에러였습니다. 확인해보니 Nginx 504 Gateway Time-out 에러가 떴더라구요. 웹서버로 Nginx를 사용하다 보면 504 Gateway Time-out Error가 발생할 때가 있다고 합니다. 그 이유는 서버와 클라이언트간 proxy 연결 시간이 default인 60초를 넘어서 나타나는 ... NginxerrorgunicornwebNginx HTTPS 적용된 것을 Nginx로 무중단 배포해보자. 그 이유는 대상 그룹에 포트가 8084로만 되있었기 때문이다. 그런데 Nginx + SSL + ELB 관련 예제를 보니 대상 포트가 80으로 되있었다. 다음과 같이 말이다. 아마 구조가 80 -> 443 으로 리다이렉트해서 HTTPS를 먼저 적용한 후 , Nginx가 이를 받아서 원하는 포트로 다시 리다이렉트하는 것 같다. 이제 사이트로 다시 접속해보니 다음과 같은 에러가 맞이했다. 일단 추... sslelb배포Nginx포트폴리오Nginx [nginx] Nginx에 이미지 등의 Static 파일 설정하기 nginx 서버에서 이미지 등의 static한 파일을 설정하여 serve 하는 방법에 대하여 알아봅니다. 예를들어 아래의 경로로 접근하는 모든 파일들은 서버의 특정 경로에 있는 파일에서 찾아 보여주도록 설정하려고 합니다. // 접근된 이미지 경로 mysite-address/uploadsImages/a.jpg // 연결할 서버의 경로 /home/ubuntu/abtest/uploadsImages... NginxNginx Nginx로 1대서버에서 HAProxy 적용하기 프록시의 이론을 공부했다면 바로바로바로바로 실습을 적용할때 일단 저에게 주어진 조건이 1대의 서버이므로 1대의 서버로 하겠다..ㅠㅠ 2대의 서버일경우 1대에서 nginx 설정하고 나머지 1대는 그냥 nohup이나 도커로 켜서 해주는거같다 만약 좀더 좋은 환경이라면 그 나머지 1대에서도 nginx설정하고 라우터에서 분기해주면 정말 베스트 짱짱이겟지만.. 이런걸 할바에 아마존 로드밸런스가 더 효... Nginx백엔드devopsNginx AWS EC2 리전 변경 후 ( resion, 지역 ) 웹서버( Web Server, Nginx ) 접속 시 접속 오류 해결 ( err_connection_timed_out aws ec2 ) EC2 지역을 미국(버지니아 북부)에서 서울(Seoul)로 변경해주었다. (err_connection_timed_out aws ec2 오류) AWS EC2 인스턴스 보안그룹 확인 Nginx default 파일 확인 도메인 관리 서비스 확인(가비아) HTTPS(Let's Encrypt 인증서) 확인 1. AWS EC2 인스턴스 보안그룹 확인 본인은 AWS EC2 지역 변경(새 인스턴스 생성)을... 가비아httpsNginxawsec2Lets EncryptLets Encrypt [Nginx] 서버 장애/배포시 점검중 페이지 redirect 기존 Nginx 설정파일에는 404 error를 받는 경우 '페이지를 찾을 수 없습니다' 페이지(NotFound.html)로 redirect 해주는 코드가 작성이 되어 있었다. 마찬가지로, 500번대 에러의 경우에도 동일하게 점검중 페이지인 maintenance.html로 redirect 해주면 될 것이라고 생각했다. Nginx 설정파일 접근 cd /etc/nginx sudo nano ngi... InterceptorNginxaxiosInterceptor AWS EC2 Ubuntu에서 Nginx의 HTTPS 세팅 - AWS EC2로 만든 Ubuntu 서버에서 Nginx를 이용해 HTTPS 세팅을 해보자. [작업하게된 EC2 Ubuntu 버전은 20.04이다.] [외부 인증서 등록 위주로 정리] [1] 인증서가 필요해! - 인증서를 발급 받는 방법은 Certbot을 통한 무료 인증서를 Nginx에 등록하는 것과 외부 인증서를 구매해서 Nginx에 등록해주는 것으로 두 가지 정도를 정리해 볼 것이다. N... ubuntuhttpNginxhttpsec2awsNginx