nginx 8

HTTP ETag에 대해 알아보자

ETag란? ETag란 EntityTag의 줄임말로, 웹 캐시 유효성 검증에 사용된다. 리소스의 특정 버전에대한 고유값이 ETag의 값이되고, 리소스의 내용이 업데이트되면 ETag도 바뀐다. 클라이언트에서 캐싱하고 있는 버전과 서버에서 가지고 있는 버전이 동일하다면 서버는 내용없이 304 Not Modified 라는 상태코드로만 응답을 내려주어 response body에 대한 트래픽을 아낄 수 있다. ETag 작동방식 먼저 HTTP Request를 날려보자. 서버는 ETag와 함께 응답 (상태코드 200)을 내려줄 것이다. 이 요청에 대한 응답의 사이즈는 43.9KB였다. ETag의 검사기 종류에는 약한(Weak)과 강한(Strong)검사가 있는데, 약한 검사를 하는 ETag는 W/로 시작하고, 강한 검..

NGINX 서브 도메인 설정하기 (feat.CloudFlare)

1. 서브도메인 추가하기 (CloudFlare) CloudFlare > DNS > Add record에서 서브 도메인 레코드를 추가한다. Type은 CNAME, name에 해당 서브도메인이 들어간다. test.com에 api 서브도메인을 추가하고 싶을때 설정은 다음과 같다. 2. NGINX 설정파일 작성 새로운 nginx 설정파일을 추가한다. 내용은 다음과 같다. server { listen 80; listen [::]:80; server_name api.test.com; // 서브도메인 rewrite ^ https://api.test.com/$request_uri; // https로 보내기 } server { listen 443 ssl; server_name api.test.com; // 서브도메인 s..

Docker 사용방법 실습 - Node.js / MySQL / Nginx 사용 서비스 만들기

Docker series [ - ] Docker 개념정리 포스팅 [https://jizard.tistory.com/322] [ x ] Docker 실습 포스팅 Project File Tree ├── app │ ├── Dockerfile │ ├── index.js │ ├── node_modules │ ├── package-lock.json │ └── package.json ├── docker-compose.yml ├── mysql │ └── Dockerfile └── nginx ├── Dockerfile └── default.conf *Github에서 전체 프로젝트 소스보기 [https://github.com/lx5475/Docker-] Docker를 사용하여 독립된 환경에서 mysql와 nginx를 구동..

[Nginx] 리버스 프록시로 사용하기 (백업 서버 설정, 로드 밸런싱)

Upstream Nginx를 리버스 프록시로 이용하기 위해서는 nginx의 내장 모듈 중의 하나인 upstream 모듈을 사용하면 된다. upstream 모듈은 proxy_pass등의 지시자에 의해 참조되며 nginx가 받은 요청들을 처리할 서버의 집합을 정의할 수 있다. *리버스 프록시가 무엇인가요? 가정 lou-server1.com, lou-server-2.com, lou-server-3.com이라는 3개의 서버에 각각 웹 애플리케이션이 동작하고 있다고 가정한다. upstream 지시자 바로 뒤의 'backend' 부분은 서버 집합의 그룹명이다. 나중에 proxy_pass에서 이 이름을 가지고 참조 할 수 있다. upstream 블록안에는 현재 동작중인 서버 목록이 들어가게 된다. server 지시자..

Ngnix의 개념과 작동방식 정리 (feat. Apache)

Nginx의 등장 배경: Apache 의 문제점 Apache 웹 서버에 대해서 들어본적이 있는가? 아주 어렸을때부터 수차례...(게임에 관심이 많았던 건지) 아파치 톰캣 서버 어쩌고 저쩌고를 많이 본 기억이있다. Apache는 Nginx의 등장 전 까지 가장 널리 쓰이던 웹 서버다. 웹 서버는 World Wide Web에서 만들어진 클라이언트 요청을 서비스하기위해 HTTP나 그 이외의 프로토콜(HTTPS/SMTP/FTP...)을 사용하는 SW/HW다. 하드웨어로서의 웹 서버는 웹 서버가 설치되어있는 컴퓨터를 의미하며, 소프트웨어로서의 웹 서버는 앞서말한 기능을 제공하는 컴퓨터 프로그램을 말한다. Apache, Nginx, IIS 등이 있다. 대부분은 웹 페이지 컨텐츠를 제공하는 역할을 한다. Nginx는..

[Nginx] Static 파일을 캐싱해서 웹 페이지 로딩 속도를 높이자

내가 운영하고 있는 동물의 숲 어플인 너굴리스트다. 그냥 컴퓨터에서 이용할때는 견딜만 하지만, 아이폰의 경우 웹뷰로 띄워서 보여주는데 로딩속도가 무지막지하게 느리다. 사진에서 봐도 Finish까지 15.90s. 이럴때 Nginx에서 css/js/image 파일 등을 캐싱 해 두면 좋다는 조언을 얻었다. 방법은 간단하다. nginx 설정 파일에서 자신이 사용하고 있는 location 전에 다음과 같이 또 하나의 location을 선언 해주면 된다. location ~* \.(?:ico|css|js|gif|jpe?g|png)$ { expires 30d; add_header Vary Accept-Encoding; access_log off; } 그리고나서 nginx 설정에 문법이 틀린 것이 없는지 검사 후 재..

Ubuntu 16.04 Node.js + MySQL + Nginx 서버 세팅해보자!

Node.js 개발자다보니 맨날 Node.js/MySQL/Nginx 서버 세팅할일이 많은데, 이번에 스크립트로 정리해보려한다.개별 옵션은 각자의 상황에 맞게 커스텀으로 입력하시고, 기본 서버에 필요한 명령어들은 아래와 같다! 1$ sudo apt-get updatecs Node.js 설치 (8 버전)12345cd ~curl -sL https://deb.nodesource.com/setup_8.x -o nodesource_setup.shsudo bash nodesource_setup.shsudo apt-get install nodejs -ysudo apt-get install npm -yColored by Color Scriptercs + sudo apt-get install build-essential ..

구매한 도메인을 Nginx 서버에 연동 / 등록하기(Ubuntu 16.04)

Godaddy나 기타 다른 사이트에서 도메인을 구입후, Nginx 서버에 등록해보자!포트가 3000이건 80이건 8080이건 상관없다. 예제 정보예제에서 사용할 도메인: http://ttukbboki.com도메인 구입처: Godaddy 예제 서버 IP: 비공개 (제 서버가 아닙니다! ㅎㅎ..)서버 OS: Ubuntu 16.04서버에 돌아가는 Node.js 프로그램이 사용중인 포트: 8080 *프로그램은 이미 돌아가고 있다고 가정하겠습니다! 서버에 Nginx 설치하기 우선 업데이트를 먼저 해주고, nginx 를 설치한다.아래의 명령어를 입력해주자! 12$ sudo apt-get update$ sudo apt-get install nginxcs * [선택사항 시작] 여기서부터는 선택 사항입니다. Nginx ..