nginx
-
nginx에 무료 ssl 자동 갱신 명령어 묶음 (feat. let's encrypt)Infra/linux 2024. 3. 8. 14:38
OS 환경은 ubuntu이다. SSL 적용 1. letsencrypt 설치 $ sudo apt update $ sudo apt-get install letsencrypt -y 2. root 계정 전환 -> nginx 정지 $ sudo su - $ cd /root $ sudo service nginx stop 3. 인증서 생성 -d 뒤에 본인의 도메인을 입력하면된다. (서브도메인이 있는 경우 뒤에 개수만큼 추가하면 됨) 인증시 email을 입력하고 모두 'Y'를 한다. 성공시 축하 메시지가 나온다. $ sudo certbot certonly --standalone -d mydomain.com -d www.mydomain.com -d test.mydomain.com 4. 파일을 확인한다. 파일 위치 : /e..
-
[Github Action] 알리바바 클라우드에 무중단 서버 배포해보기(blue/green)Infra/DevOps 2023. 7. 5. 19:07
이전 글에서 알리바바 클라우드에 서버를 배포해 보았다. 2023.06.26 - [Infra/DevOps] - How to deploy service to ECS of Alibaba Cloud.(use github actions) How to deploy service to ECS of Alibaba Cloud.(use github actions) 중국 알리바바 클라우드 ECS에 프로젝트를 빌드&배포 하는 cicd github actions를 작성했다. 기본적으로 배포는 tag로 버전 관리를 했고, tag push를 trigger로 활용했다. 도커 이미지는 기본적으로 ACR에 push bekusib.tistory.com 이번엔 무중단으로 배포를 해보려고 한다. 배포 방식은 Blue/Green을 선택했다. ..
-
letsencrypt로 무료 ssl key 발급 후 적용시키기(nginx, certbot)Backend 2023. 4. 12. 18:41
무료 ssl을 등록시키기 위해 letsencrypt를 사용한다. 먼저 local OSX 환경에서 docker를 이용해 키 발급을 받으려니, 도메인 문제로 실패했다. 아무래도 로컬에 private한 환경이다보니 public 도메인과 연결하는게 여러가지로 상황에 맞지 않았다. 그래서 AWS EC2 인스턴스에서 작업을 했다.(ubuntu) ec2 접속 관련 명령어는 아래 글을 참고하면 된다. 2023.04.11 - [aws] - aws ec2 비밀번호로 ssh 접속하기 aws ec2 비밀번호로 ssh 접속하기 OS는 ubuntu $ sudo passwd ubuntu 비번 설정 $ sudo nano /etc/ssh/sshd_config (수정) PasswordAuthentication yes $ sudo ser..
-
(letsencrypt) error no valid A records found for ; no valid AAAA records found forBackend 2023. 4. 11. 18:40
소스코드 : https://github.com/wmnnd/nginx-certbot 무료 ssl을 발급받기 위해 letsencrypt 사용하려고 한다. 맥북환경에서 같은 작업을 했을때 계속 되지 않아서, AWS에 ubuntu ec2를 생성해서 시도해봤다. 작업 도중 아래와 같은 에러가 발생했다. $ sudo ./init-letsencrypt.sh 도메인 레코드가 A 또는 AAAA가 아니라고 한다. 말도 안된다. 분명하게 A라도 적혀 있다. 하지만, 도메인을 cafe24에서 발급 후 aws에 네임서버를 등록한 상태라, 그 부분이 좀 걸렸다. 구글링 중 아래 캡쳐를 보면 public한 IP 주소를 사용해야 한다고 한다. 이거 때문인가? 의문이 생겼다. 결과는 위의 이유가 아니었다. 도메인과 연결된 웹 사이트가..
-
[ssl] 가상서버 nginx에 ssl(https) 적용시키기 (feat. cafe24)Backend 2021. 12. 23. 14:28
cafe24에서 가상서버를 구축중이다. COIVD-19 중증도 예측모델 기반 웹 서비스이다. 도메인과 ssl(보안인증) 모두 cafe24에서 구매했다. 도메인 적용은, cafe24관리자 콘솔에서 쉽게 설정 할 수 있다. 자, 이제 ssl을 적용시켜보자. [순서] 구매/발급 후, 1. 인증서 및 키 다운로드 2. 인증서 합치기 (인증서 + 체인) 3. 개인키 암호화 풀기 4. nginx conf 수정 5. 확인 1. 인증서 및 키 다운로드 먼저 개인키를 포함한 각종 인증서를 다운로드 받는다. 4가지를 모두 받았다면(사실 3가지만 필요) 서버에 업로드한다. 2. 인증서 합치기 아래 명령어로 ssl.cer과 cain_all_ssl.cer 내용을 이어주고 [적당한이름].pem으로 출력한다. $ cat ssl...
-
[react] react-router 특정 URL로 바로 접근시 '404 페이지를 찾을 수 없습니다.' 에러 해결방법!Frontend/react 2020. 10. 5. 18:52
react-router의 경우 production으로 빌드 배포시 BASE URL이 index.html와 연결된다. 그래서 index.html을 통해 링크를 클릭하여 페이지(URL) 이동을 하면 문제 없이 잘 된다. 그런데 아래와 같이 브라우저에 BASE(/) 이외의 주소로 직접 접근 시 아래와 같이 HTTP 404 ERROR을 맞이하게 된다. http://127.0.0.1/signin 해결방법은 간단하다. nginx.conf를 아래와 같이 수정한다. ... # location / { # # First attempt to serve request as file, then # # as directory, then fall back to displaying a 404. # try_files $uri $uri..
-
How to configure gzip on Nginx?Backend 2019. 12. 18. 17:39
Nginx에서 Gzip 압축 설정을 할 수 있다. Gzip 설정을 On 하게 되면 보내야 하는 데이터의 용량을 줄여서 보내게 된다. 그 말은 브라우저에서 받은 파일을 압축해제 해야 한다는 것이다. Gzip OFF : 서버 반응 속도 상승 / 데이터 다운 시간 상승 Gzip ON : 서버 반응 속도 하강 / 데이터 다운 시간 절약 그 결과는 아래에서 확인 할 수 있다. 아래 결과를 비교해보자. 테스트한 사이트에서는 평균적으로 요청에 걸리는 총 시간은 비슷한걸 확인했다. 차이점은 'Waiting' 시간과 'Content Download' 시간의 비율이다. 압축을 할 경우 용량이 줄어들어 확실히 다운로드 시간은 절약이된다.(트래픽 비용 절약, 모바일 배려) 하지만 브라우저에서 압축을 해제 하는 과정이 추가되어..
-
How to configure nginx as reverse proxy for node.js(express) with aws ec2.Backend 2019. 12. 18. 16:31
node.js express memory optimization 관련해서 정보를 찾던 중 reverse proxy 레벨에서 압축(gzip)을 사용하면 도움이 된다는 사실을 알게 되었다. 그래서 내 프로젝트에 nginx로 reverse proxy를 구현하고자 한다. express 서버는 3000포트를 사용한다. nginx에서 8000포트로 들어오는 요청을 127.0.0.1:3000로 포워드한다. 대략 아래와 같은 구조로 만들려고 한다. 이렇게하면 요청이 Nginx를 거쳐서 접근이 되기 때문에 내부 서버의 포트를 외부로부터 숨길 수 있다. (이 글에선 node express 서버 구축과 aws 인프라 설정은 생략하겠다.) 먼저 nginx conf 파일을 아래와 같이 생성하자. $ nano /etc/nginx..