찾다
운영 및 유지보수엔진스Nginx 서버를 사용하도록 Node.js를 구성하는 방법


Flowchart

Nginx 서버를 사용하도록 Node.js를 구성하는 방법

nginx 구성은 다음과 같습니다.

 http {
  proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=one:8m max_size=3000m inactive=600m;
  proxy_temp_path /var/tmp;
  include    mime.types;
  default_type application/octet-stream;
  sendfile    on;
  keepalive_timeout 65;
 
  gzip on;
  gzip_comp_level 6;
  gzip_vary on;
  gzip_min_length 1000;
  gzip_proxied any;
  gzip_types text/plain text/html text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
  gzip_buffers 16 8k;
 
  ssl_certificate /some/location/sillyfacesociety.com.bundle.crt;
  ssl_certificate_key /some/location/sillyfacesociety.com.key;
  ssl_protocols    sslv3 tlsv1;
  ssl_ciphers high:!anull:!md5;
 
  upstream silly_face_society_upstream {
   server 127.0.0.1:61337;
   server 127.0.0.1:61338;
   keepalive 64;
  }
 
  server {
   listen 80;
   listen 443 ssl;
 
   server_name sillyfacesociety.com;
   return 301 $scheme://www.sillyfacesociety.com$request_uri;
  }
 
  server {
    listen 80;
    listen 443 ssl;
 
    server_name www.sillyfacesociety.com;
 
    error_page 502 /errors/502.html;
 
    location ~ ^/(images/|img/|javascript/|js/|css/|stylesheets/|flash/|media/|static/|robots.txt|humans.txt|favicon.ico) {
     root /usr/local/silly_face_society/node/public;
     access_log off;
     expires max;
    }
 
    location /errors {
     internal;
     alias /usr/local/silly_face_society/node/public/errors;
    }
 
    location / {
     proxy_redirect off;
     proxy_set_header  x-real-ip      $remote_addr;
     proxy_set_header  x-forwarded-for $proxy_add_x_forwarded_for;
     proxy_set_header  x-forwarded-proto $scheme;
     proxy_set_header  host          $http_host;
     proxy_set_header  x-nginx-proxy  true;
     proxy_set_header  connection "";
     proxy_http_version 1.1;
     proxy_cache one;
     proxy_cache_key sfs$request_uri$scheme;
     proxy_pass     http://silly_face_society_upstream;
    }
  }
}

구성 섹션 설명

http {
  ...
  upstream silly_face_society_upstream {
   server 127.0.0.1:61337;
   server 127.0.0.1:61338;
   keepalive 64;
  }
  ...
}

nginx는 여러 nodo.js 인스턴스의 부하를 분산합니다. keepalive 64는 nginx에게 언제든지 프록시 서버에 대한 최소 64개의 http/1.1 연결을 유지하도록 지시합니다. 트래픽이 더 많으면 nginx는 더 많은 연결을 엽니다.

http {
  ...
  server {
    ...
    location / {
     proxy_redirect off;
     proxy_set_header  x-real-ip      $remote_addr;
     proxy_set_header  x-forwarded-for $proxy_add_x_forwarded_for;
     proxy_set_header  host          $http_host;
     proxy_set_header  x-nginx-proxy  true;
     ...
     proxy_set_header  connection "";
     proxy_http_version 1.1;
     proxy_pass     http://silly_face_society_upstream;
    }
    ...
  }
}

일치하는 요청을 프록시에 보냅니다. nginx의 일치 규칙에 대해서는 이전 기사를 읽을 수 있습니다.
nginx는 정적 콘텐츠를 처리합니다

http {
  ...
  server {
    ...
    location ~ ^/(images/|img/|javascript/|js/|css/|stylesheets/|flash/|media/|static/|robots.txt|humans.txt|favicon.ico) {
     root /usr/local/silly_face_society/node/public;
     access_log off;
     expires max;
    }
    ...
  }
}

캐시 ​​설정

http {
  ...
  proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=one:8m max_size=3000m inactive=600m;
  proxy_temp_path /var/tmp;
  ...
}


http {
 server {
   ...
   location / {
     ...
     proxy_cache one;
     proxy_cache_key sfs$request_uri$scheme;
     ...
   }
   ...
 }
}

캐시는 http 헤더를 통해 제어됩니다.

helloworld
한번 시도해 보겠습니다. helloworld.js

var http = require('http'); 
 
 
http.createserver(function (request, response) { 
  
 response.writehead(200, {'content-type': 'text/plain'}); 
 response.end('hello world\n'); 
}).listen(61337); 
 
 
console.log('server running at http://127.0.0.1:61337/');

를 작성하고 node helloworld.js 명령을 사용하여 열어보겠습니다. 이렇게 하면 로컬 머신에서 실행 중인 nodejs 프로그램이 열리고 차지하게 됩니다. 포트 8000. 직접 수정할 수 있습니다.

이 시점에서 nginx의 vhost.conf 설정이 다음과 같아야 합니다:

server { 
  listen 80; 
  server_name jb51.net.jb51.net; 
  location / { 
  proxy_pass http://127.0.0.1:61337; 
  } 
}

웹사이트 도메인 이름을 설정한 다음 포트를 80으로 설정하고 마지막으로 Proxy_pass를 http://127.0.0.1:61337로 설정합니다. , 그리고 jb51.net:80의 요청이 nodejs 프로그램으로 전달됩니다.
nginx를 다시 시작하고 도메인 이름에 액세스하면 helloworld를 볼 수 있습니다.
node.js 자체가 서버로 사용될 수 있는 것은 사실이지만, 예를 들어 Welcome.js에 포트 80을 설정하면 됩니다.
그러나 하나의 기계가 여러 웹사이트를 운영하고 다른 웹사이트는 다른 서버를 사용합니다. 포트 80이 이미 사용 중이면 다른 포트로 프록시를 통해 처리될 수 있습니다.

위 내용은 Nginx 서버를 사용하도록 Node.js를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 亿速云에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
Nginx : 고성능 웹 서버 소개Nginx : 고성능 웹 서버 소개Apr 29, 2025 am 12:02 AM

Nginx는 2002 년에 시작하여 Igorsysoev가 C10K 문제를 해결하기 위해 개발했습니다. 1.NGINX는 고성능 웹 서버, 이벤트 중심의 비동기 아키텍처로 높은 동시성에 적합합니다. 2. 리버스 프록시,로드 밸런싱 및 캐싱과 같은 고급 기능을 제공하여 시스템 성능 및 신뢰성을 향상시킵니다. 3. 최적화 기술에는 HTTP/2 및 보안 구성을 사용하여 작업자 프로세스 수 조정, GZIP 압축 가능성이 포함됩니다.

Nginx vs. Apache : 아키텍처를 살펴 봅니다Nginx vs. Apache : 아키텍처를 살펴 봅니다Apr 28, 2025 am 12:13 AM

Nginx와 Apache의 주요 아키텍처 차이점은 Nginx가 이벤트 중심의 비동기 비 블로킹 모델을 채택하는 반면 Apache는 프로세스 또는 스레드 모델을 사용한다는 것입니다. 1) NGINX는 이벤트 루프 및 I/O 멀티플렉싱 메커니즘을 통해 고유 한 연결을 효율적으로 처리하며, 정적 컨텐츠 및 리버스 프록시에 적합합니다. 2) Apache는 다중 프로세스 또는 다중 스레드 모델을 채택하는데,이 모델은 매우 안정적이지만 자원 소비가 높으며 풍부한 모듈 확장이 필요한 시나리오에 적합합니다.

Nginx vs. Apache : 장단점 검사Nginx vs. Apache : 장단점 검사Apr 27, 2025 am 12:05 AM

Nginx는 동시 및 정적 컨텐츠가 높은 반면 Apache는 복잡한 구성 및 동적 컨텐츠에 적합합니다. 1. Nginx는 교통량이 많은 시나리오에 적합한 동시 연결을 효율적으로 처리하지만 동적 컨텐츠를 처리 할 때 추가 구성이 필요합니다. 2. Apache는 복잡한 요구에 적합하지만 동시성 성능이 좋지 않은 풍부한 모듈과 유연한 구성을 제공합니다.

Nginx 및 Apache : 주요 차이점 이해Nginx 및 Apache : 주요 차이점 이해Apr 26, 2025 am 12:01 AM

Nginx와 Apache는 각각 고유 한 장점과 단점이 있으며 선택은 특정 요구에 기초해야합니다. 1.NGINX는 비동기 비 블로킹 아키텍처로 인해 높은 동시 시나리오에 적합합니다. 2. Apache는 모듈 식 설계로 인해 복잡한 구성이 필요한 저소성 시나리오에 적합합니다.

NGINX 장치 : 주요 기능 및 기능NGINX 장치 : 주요 기능 및 기능Apr 25, 2025 am 12:17 AM

NginXunit은 여러 프로그래밍 언어를 지원하고 동적 구성, 제로 다운 타임 업데이트 및 내장로드 밸런싱과 같은 기능을 제공하는 오픈 소스 응용 프로그램 서버입니다. 1. 동적 구성 : 다시 시작하지 않고 구성을 수정할 수 있습니다. 2. 다국어 지원 : Python, Go, Java, PHP 등과 호환됩니다. 3. 제로 다운 타임 업데이트 : 서비스를 중단하지 않는 응용 프로그램 업데이트를 지원합니다. 4. 내장로드 밸런싱 : 요청을 여러 응용 프로그램 인스턴스에 배포 할 수 있습니다.

NGINX 장치 대 기타 응용 프로그램 서버NGINX 장치 대 기타 응용 프로그램 서버Apr 24, 2025 am 12:14 AM

NginxUnit은 다국어 프로젝트 및 동적 구성 요구 사항에 적합한 Apachetomcat, Gunicorn 및 Node.js 내장 HTTP 서버보다 낫습니다. 1) 여러 프로그래밍 언어를 지원하고, 2) 동적 구성 재 장전을 제공합니다. 3) 확장 성과 신뢰성이 높은 프로젝트에 적합한 내장로드 밸런싱 기능.

Nginx 장치 : 아키텍처 및 작동 방식Nginx 장치 : 아키텍처 및 작동 방식Apr 23, 2025 am 12:18 AM

NginxUnit은 모듈 식 아키텍처 및 동적 재구성 기능으로 응용 프로그램 성능 및 관리 가능성을 향상시킵니다. 1) 모듈 식 설계에는 마스터 프로세스, 라우터 및 응용 프로그램 프로세스가 포함되어 효율적인 관리 및 확장을 지원합니다. 2) 동적 재구성을 통해 CI/CD 환경에 적합한 런타임시 구성을 완벽하게 업데이트 할 수 있습니다. 3) 다국어 지원은 언어 런타임의 동적로드를 통해 구현되어 개발 유연성을 향상시킵니다. 4) 고성능은 이벤트 중심 모델과 비동기 I/O를 통해 달성되며 높은 동시성에서도 효율적으로 유지됩니다. 5) 응용 프로그램 프로세스를 분리하고 응용 프로그램 간의 상호 영향을 줄임으로써 보안이 향상됩니다.

Nginx 장치 사용 : 응용 프로그램 배포 및 관리Nginx 장치 사용 : 응용 프로그램 배포 및 관리Apr 22, 2025 am 12:06 AM

NginxUnit을 사용하여 여러 언어로 응용 프로그램을 배포하고 관리 할 수 ​​있습니다. 1) nginxunit을 설치하십시오. 2) Python 및 PHP와 같은 다른 유형의 응용 프로그램을 실행하도록 구성하십시오. 3) 응용 프로그램 관리에 동적 구성 기능을 사용하십시오. 이러한 단계를 통해 응용 프로그램을 효율적으로 배포하고 관리하고 프로젝트 효율성을 향상시킬 수 있습니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구