라벨이 nginx인 게시물 표시

SSL 인증서 적용 방법

0. 환경 - 인증서는 Sectigo(구 COMODO)에서 발급 - AWS EC2 사용 - ELB는 쓰는 서버와 안쓰는 서버가 있다. - 웹서버는 Nginx 1. 도메인 소유자 인증 - HTML 인증    https://www.comodossl.co.kr/products/comodo-ssl-dcv.aspx  이 페이지에서 시키는 대로 하면 1 ~2시간 후에 인증서 메일이 온다. /.well-known이 설정되어 있지 않다면 nginx 설정에 아래 코드를 추가한다. 설정은 ubuntu 기준 /etc/nginx/sites-available/[FILENAME]에 있다. server { ...   location /.well-known {     alias [경로]   } ... } 2. 인증서 설치 - ELB 사용 안하는 서버 1) 한 서버에 한 도메인    https://www.comodossl.co.kr/certificate/ssl-installation-guides/Nginx.aspx  이 페이지에서 시키는 대로 하면 된다. 인증서 내용을 합친 후에 nginx 설정에 지정한 파일 외에는 삭제해도 되는 것 같다. 2) 한 서버에 여러 도메인(미완)   정확한 원인은 모르겠지만 체인인증서를 적용하면(인증서를 합치면) nginx를 재시작할 때 오류가 발생한다. 일단 인증서를 합치지 않고 서버 인증서(사이트이름.crt)와 인증서 개인키(사이트이름_SHA256WITHRSA.key)만 nginx에서 설정한 경로에 업로드하면 된다. 이런 식으로 인증서를 적용하면 "안전하지 않음"으로 나온다. => 인증서 문제가 아니라 nginx 설정의 ssl_protocols가 구버전TLS를 지원해서 그런 것 같다. TLS1.2 이상만 지원하도록 변경하면 정상적으로 나온다. 3. 인증서 설치 - ELB 사용 1) 한 서버에 한 도...

Ubuntu 16.04 + Nuxt 2 + Nginx 설정

0. 환경 - ubuntu 16.04 - nuxt 2.10 - node.js 4.6 -> 8.16.2 - npm 3.5 -> 6.4 - nginx 1.10 1. fibers 패키지 설치 오류   nuxt의 dependency인 fibers가 설치가 안돼서 nuxt도 설치되지 않는 문제가 발생했다. fibers 설치 시 node 명령어를 찾아오지 못하는 문제였다. 아래 명령어로 강제로 링크시키면 된다. ln -s /usr/bin/nodejs /usr/bin/node 오류 메시지에 ubuntu 사용자면 apt-get install g++ build-essential 를 실행하라는 메시지가 나오는데 이미 설치되어 있는 것 같다. 2. nuxt를 실행시킬 수 없는 오류   오류 메시지로 node.js를 최신 버전으로 업그레이드하라는 말이 나와서 업그레이드. https://github.com/nodesource/distributions/blob/master/README.md  이 페이지를 참조해서 8.6.12 버전으로 업그레이드했다. 참고로 "curl -sL https://deb.nodesource.com/setup_버전.x | sudo -E bash -" 로 바꾸면 다른 버전도 설치할 수 있다. nvm을 사용해도 되지만 사용자가 여럿일 경우 설치를 진행한 사용자가 아닌 사용자가 nodejs를 사용할 수 없어서 nvm 삭제 후 다시 설치했다. 어떻게(?) 하면 되는 것 같지만 저 위의 방법이 더 편하다. 3. fibers 문제 다시 발생  devDependencies에 있던 fibers를 지우니까 된다... node_modules/를 지우고 전체 패키지를 재설치했다 (sudo npm install) . 4. nginx 설정   사이트 주소로 들어오면 3000포트로 연결하도록 설정하면 된다. nginx경로/sites-enabled/default(파일 이름 변경...

Nginx + django + uwsgi 에서 ERR_CONTENT_LENGTH_MISMATCH 오류

0. 환경 - ubuntu 16.04 - nginx 1.10(버전이 낮아서 그런 걸 수도 있다) - django 1.11 + uwsgi - chrome 75 1. 오류 상황  2MB 정도의 json string을 request parameter로 넘기니 ERR_CONTENT_LENGTH_MISMATCH(400) 에러 발생 2. 해결방법 1) nginx nginx 설정 파일을 아래처럼 수정.     location / {         uwsgi_pass [경로]         include uwsgi_params;         uwsgi_buffering off;     } 일반 proxy(proxy_pass)를 사용한다면 proxy_buffering off; 모든 포트의 location /마다 추가해야 한다. 2) django settings.py에 아래 줄을 추가 혹은 수정. (django 홈페이지에 따르면 기본값은 2.5MB) DATA_UPLOAD_MAX_MEMORY_SIZE = [원하는 값(Bytes)] 수정 후 nginx와 uwsgi를 재시작한다.