개요
현대 웹 애플리케이션 개발에서 Nginx와 Node.js는 고성능 웹 서버로서 주로 HTTP 요청과 정적 파일 액세스를 처리하는 데 사용되는 반면 Node.js는 널리 사용됩니다. 고성능 웹 애플리케이션과 서버 측 API를 구축하는 데 사용되며 뛰어난 비동기식, 비차단 IO 모델과 풍부한 타사 모듈 에코시스템으로 인해 선호됩니다.
이 기사에서는 Linux 서버에 Nginx와 Node.js를 동시에 배포하는 방법을 소개하고 Nginx의 역방향 프록시 기능을 사용하여 웹 애플리케이션의 성능과 안정성을 향상시키고 궁극적으로 효율적인 작업을 달성하는 방법을 소개합니다. 안정적인 웹 서비스를 제공합니다.
준비
이 튜토리얼을 완료하려면 Ubuntu 18.04 LTS 운영 체제를 실행하는 서버가 필요합니다. 또한 최신 버전의 Node.js와 Nginx를 설치해야 합니다.
Node.js 설치
먼저 서버에 Node.js를 설치해야 합니다. 우리는 nvm(Node Version Manager)을 사용하여 Node.js 버전을 관리할 것입니다. 이를 통해 다른 Node.js 버전을 쉽게 설치하고 전환할 수 있습니다.
먼저 컬 명령을 사용하여 nvm 설치 스크립트를 다운로드해야 합니다.
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.36.0/install.sh | bash
그런 다음 다음 명령을 실행하여 구성 변경 사항을 적용합니다.
source ~/.bashrc
이제 nvm이 서버에 설치됩니다. .
다음 명령을 사용하여 사용 가능한 Node.js 버전을 확인할 수 있습니다.
nvm ls-remote
그런 다음 설치하려는 Node.js 버전을 선택하고 다음 명령을 사용하여 설치합니다.
nvm install 14.16.1 // 这里我们选择的是 v14.16.1 版本
이제 Node.js가 성공적으로 설치되었습니다.
Nginx 설치
다음으로, HTTP 요청을 처리하고 정적 파일을 읽으려면 Nginx 서버를 설치해야 합니다. Ubuntu 18.04에서는 다음 명령을 사용하여 Nginx를 설치할 수 있습니다.
sudo apt-get update sudo apt-get install nginx
설치가 완료된 후 다음 명령을 사용하여 Nginx 서비스를 시작할 수 있습니다.
sudo systemctl start nginx
그런 다음 다음 명령을 사용하여 Nginx를 확인할 수 있습니다. 서비스 상태:
sudo systemctl status nginx
Nginx 서비스가 성공적으로 시작되면 브라우저에서 서버의 공용 IP 주소에 액세스하여 Nginx의 기본 시작 페이지를 볼 수 있습니다.
Nginx 역방향 프록시 구성
이제 Nginx와 Node.js가 성공적으로 설치되었습니다. 다음으로 Nginx의 역방향 프록시 기능을 사용하여 외부 HTTP 요청을 Node.js 서버의 지정된 포트 번호로 전달합니다.
Nginx 구성 파일 /etc/nginx/nginx.conf를 편집하고 http 세그먼트에서 서버 노드를 찾은 다음 여기에 다음 코드를 추가합니다.
upstream nodejs_backend { server 127.0.0.1:3000; # 这里的端口号需要和我们 Node.js 端口号一致 } server { listen 80 default_server; listen [::]:80 default_server; server_name _; location / { proxy_pass http://nodejs_backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
여기에서는 Nginx의 업스트림 모듈 An을 사용합니다. nodejs_backend라는 업스트림 서버가 정의되어 있으며 이는 나중에 실행할 Node.js 서버의 포트 번호인 127.0.0.1:3000을 가리킵니다.
다음으로 포트 80에서 수신 대기하고 HTTP 요청을 nodejs_backend로 전달하는 default_server라는 가상 호스트를 정의합니다. 세 개의 Proxy_set_header 매개변수는 요청 전달을 위한 추가 정보를 설정하는 데 사용됩니다.
위 단계를 완료한 후 Nginx 서비스를 다시 시작해야 효과가 적용됩니다.
sudo systemctl restart nginx
이제 역방향 프록시가 성공적으로 구성되었습니다. Nginx의 기능을 수행하고 Nginx로부터 요청을 받기 위해 Node.js 서버에서 서비스를 시작할 준비를 합니다.
app.js라는 파일을 생성하고 다음 코드를 사용하여 간단한 http 서버를 시작합니다.
const http = require('http'); const server = http.createServer((req, res) => { res.writeHead(200); res.end('Hello, World!'); }); server.listen(3000, () => { console.log('Server running on http://127.0.0.1:3000/'); });
이제 다음 명령을 사용하여 Node.js 앱을 시작합니다.
node app.js
성공적으로 실행되면 서버의 공개 서버에 액세스할 수 있습니다. 브라우저에서 IP 주소를 확인하고 Node.js 애플리케이션이 "Hello, World!" 메시지를 출력하는지 확인하세요.
Summary
축하합니다. Linux 서버에 Nginx와 Node.js를 동시에 배포하는 튜토리얼을 완료했습니다. Nginx의 역방향 프록시 기능을 사용하여 HTTP 요청을 전달함으로써 Node.js에서 웹 애플리케이션과 API를 작성할 수 있고 Nginx를 사용하여 정적 파일 및 로드 밸런싱을 처리함으로써 웹 애플리케이션의 성능과 안정성을 향상시킬 수 있습니다.
위 내용은 nginx nodejs를 배포하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!