Nginx + SSL + Node. js 실행 환경 설정 튜 토리 얼

6051 단어
Nginx 는 고성능 HTTP 서버 이자 효율 적 인 리 버스 프 록 시 서버 이다.전통 적 인 서버 와 달리 Nginx 는 이벤트 구동 을 바탕 으로 하 는 비동기 구조 로 메모리 사용량 은 적 지만 성능 이 좋 습 니 다.웹 애플 리 케 이 션 이 Node. js 를 기반 으로 한다 면 Nginx 를 사용 하여 역방향 대 리 를 하 는 것 을 고려 하 는 것 이 좋 습 니 다. Nginx 는 정적 파일 서 비 스 를 매우 효율적으로 제공 할 수 있 기 때 문 입 니 다.본 논문 의 주요 내용 은 서로 다른 운영 체제 에서 Nginx 와 SSL 을 설정 하고 Node. js 운영 환경 을 구축 하 는 것 이다.
Nginx 설치
서버 에 Node. js 를 설치 했다 고 가정 하면 Nginx 를 설치 하 겠 습 니 다.
Mac 시스템 에 Nginx 설치 하기
chown 명령 을 사용 하여 / usr / local 폴 더 에 접근 할 수 있 는 권한 을 가 져 옵 니 다. 명령 코드 는 다음 과 같 습 니 다.
 
  
sudo chown -R ‘username here' /usr/local

다음 두 줄 명령 은 Nginx 를 설치 할 수 있 습 니 다.
 
  
brew link pcre
brew install nginx

Nginx 설치 가 완료 되면 다음 명령 으로 Nginx 를 시작 할 수 있 습 니 다.
 
  
sudo nginx

마지막 으로 디 렉 터 리 / usr / local / etc / nginx / nginx. conf 에서 Nginx 설정 파일 을 볼 수 있 습 니 다.
Ubuntu 에 Nginx 설치 하기
Ubuntu 를 사용 하면 Nginx 를 다음 과 같이 설치 할 수 있 습 니 다.
 
  
sudo apt-get update
sudo apt-get install nginx

Nginx 설치 완료 후 자동 으로 시작 합 니 다.
윈도 에 Nginx 설치 하기
windows 버 전의 nginx 는 여기에서 다운로드 할 수 있 습 니 다. 다음 에 설치 패 키 지 를 지정 한 디 렉 터 리 에 압축 을 풀 고 cmd 명령 도구 에서 다음 코드 를 실행 할 수 있 습 니 다.
 
  
unzip nginx-1.3.13.zip
cd nginx-1.3.13
start nginx

마찬가지 로 start nginx 명령 은 nginx 를 시작 합 니 다.
현재 우 리 는 Ngnix 를 설 치 했 으 니 서버 를 설정 해 야 합 니 다.
Node. js 서버 설정
우선 간단 한 Node. js 서버 를 만 들 겠 습 니 다. 여기 서 Express 버 전의 Node. js 를 다운로드 할 수 있 습 니 다.원본 코드 를 다운로드 한 후 demoApp 폴 더 에 압축 을 풀 고 3000 포트 에서 서버 를 시작 하도록 다음 명령 을 입력 하 십시오.
 
  
npm install
node bin/www
1

Configuring Nginx


Now let's open up Nginx config file. As I am on Mac, I can just use nano to start editing the file:


1
nano /usr/local/etc/nginx/nginx.conf

필요 하 다 면 폴 더 아래 에서 가장 좋아 하 는 텍스트 편집기 로 config 파일 을 열 수도 있 습 니 다. 파일 에서 server 설정 노드 를 찾 을 수 있 습 니 다. 아래 코드 와 유사 합 니 다.
 
  
server {
listen       8080;
server_name  localhost;
….
more config goes here
}

그 다음 에 저 희 는 server 노드 에 대해 자신의 요구 에 부 합 된 설정 을 할 것 입 니 다. 저 희 는 사이트 의 정적 파일 요청 을 Nginx 에 맡 기 고 다른 파일 요청 은 Node. js 백 엔 드 서버 에 맡 겨 야 합 니 다.저 희 는 아래 코드 로 위의 server 설정 노드 를 교체 할 것 입 니 다.
 
  
server {
listen       8080;
server_name  localhost;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection ‘upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /public {
root /usr/local/var/www;
}
}

이렇게 해서 저희 가 Nginx 를...http://localhost:8080. 도청 당 했 어.location / 설정 노드 는 Nginx 에 게 임의의 요청 을 받 도록 알려 줍 니 다. location 설정 노드 에서 우 리 는 proxy 를 사용 합 니 다.pass 에서 Node. js 백 엔 드 서버 를 지정 하 였 습 니 다.http://localhost:3000 。
현재 우 리 는 다른 설정 노드 location / public 로 Nginx 에 정적 파일 처리 요청 을 알려 야 합 니 다. 그 중에서 내부 의 location 노드 는 루트 디 렉 터 리 를 / usr / local / var / www 으로 설정 하 였 습 니 다. 물론 다른 디 렉 터 리 로 바 꿀 수도 있 습 니 다.이렇게 되면, 이와 같은 요청 이 있 을 때http://localhost:8080/public/somepath/file.html , Nginx 는 / usr / local / var / www / public / somepath / file. html 에서 정적 파일 을 읽 습 니 다.
설정 파일 을 수정 한 후 다음 코드 로 Nginx 를 다시 시작 해 야 합 니 다.
Mac:
 
  
sudo nginx -s stop && sudo nginx

Ubuntu:
 
  
sudo service nginx restart

혹은
 
  
sudo /etc/init.d/nginx restart

Windows:
 
  
nginx -s reload

다음은 Node. js 대신 Nginx 로 CSS 스타일 파일 을 제공 합 니 다. Node. js 템 플 릿 은 / public / stylesheets / style. css 아래 파일 을 사용 합 니 다./ usr / local / var / www / public / stylesheets 폴 더 아래 style. css 라 는 파일 을 만 들 면 Nginx 가 정확하게 해석 합 니 다.예 를 들 어 CSS 파일 에 다음 코드 를 쓸 수 있 습 니 다.
 
  
body {
padding: 50px;
font: 14px “Lucida Grande”, Helvetica, Arial, sans-serif;
}
a {
color: #00B7FF;
}

그리고 로그 인 할 수 있 습 니 다.http://localhost:8080 웹 애플 리 케 이 션 을 내 려 다 보면 Nginx 서버 에 접근 하 더 라 도 요청 은 실제 Node. js 백 엔 드 서버 를 통 해 처 리 됩 니 다. CSS 정적 파일 만 Nginx 에서 처리 합 니 다.
SSL 생 성
사이트 제품 을 많이 만 들 면 민감 한 정 보 를 보호 하기 위해 SSL 을 만들어 야 한 다 는 것 을 알 게 될 것 이다.인증서 발급 기관 에서 사이트 인증 서 를 신청 하 는 것 이 첫 번 째 반응 일 수도 있 지만 서명 증 서 를 만 들 수도 있 습 니 다.유일한 문 제 는 브 라 우 저 에서 '이 인증 서 는 믿 을 수 없습니다' 라 는 경고 정 보 를 알려 주 는 것 이지 만 로 컬 테스트 로 도 충분 합 니 다.서명 SSL 인증 서 를 만 드 는 방법 을 설명 하 는 강좌 가 있 습 니 다.
인증서 가 있 으 면 Nginx 에 SSL 을 설치 할 수 있 습 니 다. 수 정 된 프로필 은 코드 가 다음 과 같 습 니 다.
 
  
server {
listen       8080;
listen       443 ssl;
server_name  localhost;
ssl_certificate  /etc/nginx/ssl/server.crt
ssl_certificate_key /etc/nginx/ssl/server.key
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection ‘upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /public {
root /usr/local/var/www;
}
}

완성!이렇게 방문 하면https://localhost:8080 SSL 로 작업 을 시작 할 수 있 습 니 다.인증 서 를 / etc / nginx / ssl / server. crt 디 렉 터 리 에 기본적으로 저장 합 니 다.비밀 키 를 / etc / nginx / ssl / server. key 디 렉 터 리 에 저장 하면 저 장 된 디 렉 터 리 를 변경 할 수 있 습 니 다.
총결산
본 논문 에서 우 리 는 Nginx 를 Node. js 에 역방향 대 리 를 하고 SSL 을 설정 하 는 방법 을 배 웠 다.Nginx 가 전단 에서 정적 파일 요청 을 처리 하면 Node. js 백 엔 드 서버 의 압력 을 크게 줄 일 수 있 습 니 다.스스로 해 보 세 요. 어떤 문제 가 있 으 면 댓 글 에서 소통 할 수 있 습 니까?

좋은 웹페이지 즐겨찾기