> 백엔드 개발 > PHP 튜토리얼 > nginx를 사용하여 하나의 서버에 여러 웹 서버 배포

nginx를 사용하여 하나의 서버에 여러 웹 서버 배포

不言
풀어 주다: 2023-04-02 20:36:01
원래의
8414명이 탐색했습니다.

이 글은 주로 하나의 서버에 여러 개의 웹 서버를 배포하기 위한 nginx의 사용을 소개합니다. 이는 특정 참고 가치가 있습니다. 이제 필요한 친구들이 참고할 수 있도록 공유하겠습니다. 최근에는 이렇게 생각했는데, 노드가 서버를 직접 시작하는 방식이 좀 폭력적이어서, 포트 80이 점유되어 있으면 여러 개의 웹 서버를 매달기에는 정말 어렵기 때문입니다. 여러 개의 포트에만 마운트할 수 있고, 나중에 접속하려면 또 다른 포트를 추가해야 하는데 너무 보기 흉해서, 헤매다가 Nginx를 이용해서 멀티 서비스 구조를 구성했습니다. 이러한 방식으로 다양한 하위 도메인 이름을 통해 다양한 애플리케이션에 액세스할 수 있습니다!

대략적인 구조

nginx를 사용하여 하나의 서버에 여러 웹 서버 배포기본적으로 nginx는 들어오는 요청을 전달하는 역할을 하며 전달의 기본은 다양한 하위 도메인을 판단하는 것입니다.

STEP 1 Nginx 설치

첫 번째 단계는 물론 nginx를 설치하는 것입니다. 각 플랫폼은 다음과 같습니다. 마찬가지로 공유할 방법도 없습니다. 나만의 우분투 환경

apt-get은 nginx가 아닙니다

STEP 2 DNS 및 PORT 설정

도메인 이름 관리자로 이동하여 원하는 하위 도메인 이름을 할당하세요. 물론 모두 A 레코드이고 모두 VPS On으로 해결됩니다. 또 다른 준비는 모든 NodeWebServer의 포트를 수정하는 것입니다. 기본 설정에 따라 설정할 수 있지만 포트 80 및 443을 사용하지 마세요.

STEP 3 nginx config Node.js

nginx로 전환하세요. 구성 디렉터리

내 디렉터리 위치/etc/nginx/

여기서 nginx에는 포함 메커니즘이 있으며 기본 구성에서 conf.d 디렉터리의 모든 _.conf_를 자동으로 로드한다는 점에 유의해야 합니다. 이므로 nginx.conf 파일을 수정할 필요가 없습니다. 다음으로 conf.d 디렉토리에 일련의 구성 파일을 생성해야 합니다. 파일 이름에 해당 프로젝트 이름을 사용하십시오(예:

project1.conf

그렇지 않은 경우 수동으로 추가하십시오

        include /etc/nginx/conf.d/*.conf;
        # include /etc/nginx/sites-enabled/*; // 最好给他注释了 默认页面没啥用
로그인 후 복사
작성 시작) 프로젝트 구성

cd conf.d

touch project1.conf

vim project1.conf

자세한 전달 규칙을 작성해 보겠습니다

// 这是一个NODE Web Server
// 我已经将这个服务的端口改成了8000端口
// 当nginx捕获到访问域名为api.yinode.tech的时候
// 就会转发到本地的8000端口
server{
    server_name api.yinode.tech;
    listen 80;
    location / {
        # proxy_http_version 1.1;
        proxy_set_header Connection "";
        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_pass http://127.0.0.1:8000$request_uri;
        proxy_redirect off;
    }
}
로그인 후 복사
HTTPS를 전달해야 하는 경우 위 내용을 복사하여 아래에 붙여넣고, 수신 대기 포트는 443입니다. 전달된 포트는 수신 대기 중인 https 포트입니다!

STEP 4 nginx config PHP

php의 전달 설정은 약간 다를 것입니다. (기본적으로 이미 PHP를 설치했습니다.)

server {
  listen 80;
  root /var/www/longqiyoutian/wordpress; // 你的根目录
  index index.php;
  server_name dragon.yinode.tech;
  error_page 404 /404.html;
  location ~ \.php$ {
    try_files $uri = 404;
    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; // 你的fpm地址
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; // 必须填写,注意顺序
  }
}
로그인 후 복사

하나씩 설명하면 우선 루트 디렉터리가 중요해지며 Nginx가 이를 다음으로 전달합니다. FPM을 사용하여 PHP 코드를 실행하므로 잘못 작성하지 마세요. 둘째, 후속 전달을 추가해야 합니다.

이렇게 하면 fpm이 올바른 주소 접합을 수행하도록 안내할 수 있습니다.

팁: 알림

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;nginx와 FPM 모두의 기본 시작 사용자는 다음과 같습니다. www -data이므로 웹 사이트 루트 디렉터리의 소유자를 www-data로 변경하고 이 디렉터리를 /root/ 아래에 두지 마십시오. 권한 문제가 발생하므로 /var/www 디렉터리에 복사하는 것이 가장 좋습니다. 소유자를 설정하세요.

STEP 5 반복

3단계와 4단계를 반복하여 필요한 프로젝트 구성을 모두 생성합니다

STEP 6 nginx 재시작

service nginx restart

오류가 발생하면 정보를 잘 확인하고 온라인에서 검색하기 때문입니다. 구성 파일 형식 오류입니다.

STEP 7 실행

웹사이트를 열면 정상적으로 실행됩니다! 실제로 향후 새 서버를 추가할 경우 해당 conf 파일만 추가하면 수평으로 쉽게 확장할 수 있으며, 액세스할 때 전체 웹사이트가 더욱 아름다워질 것입니다!

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장 사항:

Nginx 액세스를 금지하도록 바인딩되지 않은 도메인 이름 설정

Nginx 배포 프런트 엔드 및 백엔드 분리 서비스 및 구성 지침

위 내용은 nginx를 사용하여 하나의 서버에 여러 웹 서버 배포의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿