nginx を使用して 1 つのサーバーに複数の Web サーバーをデプロイする

不言
リリース: 2023-04-02 20:36:01
オリジナル
8401 人が閲覧しました

この記事では、主に nginx を使用して 1 つのサーバー上に複数の Web サーバーをデプロイする方法を紹介します。これには特定の参考値があります。今、私はそれをあなたと共有します。必要な友人はそれを参照できます。

行ったことはありますか? 80ポートが占有されている場合、実際に占有されているため、ノードが直接サーバーを起動する方法は少し乱暴であるため、最初にこれを実行しようと考えました。80ポートを1つ使用するのは困難です。複数の Web サーバーをハングします。複数のポートにしかマウントできず、アクセスするには後から別のポートを追加する必要があり、あまりにも醜いので、Nginx を使用してマルチサービス構造を設定しました。このようにして、異なるサブドメイン名を介して異なるアプリケーションにアクセスできるようになります。

大まかな構造

nginx を使用して 1 つのサーバーに複数の Web サーバーをデプロイする

##本質的に、nginx は受信リクエストの転送を担当するため、転送の基礎はさまざまなサブドメイン名を決定することです

ステップ1 Nginx のインストール

最初のステップはもちろん nginx のインストールです。各プラットフォームは異なるため、共有することはできません。私自身の ubuntu 環境

apt-get isntall nginx
ステップ 2 DNS とポートの設定

ドメイン名マネージャーにアクセスして、必要なサブドメイン名を割り当てます。これらはすべて A レコードであり、すべて VPS パブリック IP に解決されます。

別の準備として、すべての NodeWebServer のポートを変更します。好みに応じて設定できますが、ポート 80 と 443 は占有しないでください。

ステップ 3 nginx config Node.js

nginx 構成ディレクトリに切り替えます

私のディレクトリの場所

/etc/nginx /
ここで、nginx には Include メカニズムがあり、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 ポートになります。

ステップ 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; // 必须填写,注意顺序
  }
}
ログイン後にコピー
1 つずつ説明します。ルート ディレクトリが重要になります。Nginx は PHP コードを実行するためにこのディレクトリを FPM に転送しますので、間違って書かないでください。次に、後続の転送を追加する必要があります

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;This fpm が正しいアドレス スプライシングを実行できるようにガイドできます。

ヒント: リマインダー
nginx と FPM のデフォルトのスタートアップ ユーザーは www-data であるため、Web サイトのルート ディレクトリの所有者を www に変更してください。 -data を使用し、権限の問題が発生するため、このディレクトリを /root/ の下に置かないでください。これを /var/www ディレクトリにコピーして所有者を設定することをお勧めします。

ステップ 5 を繰り返します

ステップ 3 と 4 を繰り返して、必要なプロジェクト構成をすべて作成します

ステップ 6 nginx を再起動します

service nginx restart
エラーが発生した場合は、情報をよく確認し、ネットで検索してください (通常、設定ファイルの形式が間違っていることが原因です)。

ステップ 7 実行

Web サイトを開くと、正常に動作するはずです。実際、将来新しいサーバーを追加する場合は、対応する conf ファイルを追加するだけで済みます。このファイルは簡単に水平に拡張でき、Web サイト全体がより美しく表示されます。

上記がこの記事の全内容です。皆様の学習に少しでもお役に立てれば幸いです。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

Nginx はアクセスを禁止するためにバインドされていないドメイン名を設定します

#Nginx はフロントエンドとバックエンドの分離サービスと構成を展開します説明書### ######

以上がnginx を使用して 1 つのサーバーに複数の Web サーバーをデプロイするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート