目次
概要:
インストール:
設定の詳細:
共通コマンド:
ホームページ バックエンド開発 PHPチュートリアル Nginx負荷分散サーバーエントリーケース

Nginx負荷分散サーバーエントリーケース

Apr 04, 2018 pm 03:00 PM
nginx はじめる サーバ


最近 nginx を勉強する時間があったので、簡単な入門ケースを作成しました。

概要:

Nginx (エンジン x) は、軽量の Web サーバー、リバース プロキシ サーバー、および電子メール ( IMAP/POP3) プロキシ サーバーです。

通常のクライアントがサーバーにアクセスするためのモードは、nginxサーバーを使用すると、同じアプリケーションを異なるサーバーにデプロイできます。これにより、同時実行性が大幅に向上し、負荷が軽減されます。サーバーのパフォーマンスが向上しました。 + サーバー:

Apache

と比較して、
Nginx

は使用するリソースが少なく、より多くの同時接続をサポートし、より高い効率を反映するため、

Nginx

は仮想ホスティングプロバイダーの間で特に人気があります。開発モデルとして

epollとkqueue

を選択した

Nginx

のおかげで、最大

50,000

の同時接続の応答をサポートできます 負荷分散サーバーとして: Nginx は、内部で Rails PHP を直接サポートできるだけでなく、HTTP プロキシ サーバーとして外部サービスもサポートします。 Nginx は、C で書かれており、システムリソースのオーバーヘッドやCPU

の使用効率は

Perlbal よりもはるかに優れています。 メール プロキシ サーバーとして : Nginx は非常に優れたメール プロキシ サーバーでもあります (この製品を開発した最初の目的の 1 つはメール プロキシ サーバーとしても機能します)。Last.fm では次のように説明されています。成功と素晴らしい経験。 Nginx インストールは非常に簡単で、設定ファイルは非常に簡潔です (perl構文もサポートできます)、バグサーバーが非常に少ない: Nginx の起動は特に簡単です、ほぼ 7*24 の中断のない動作を実現し、たとえ数か月間実行しても再起動する必要はありません。サービスを中断せずにソフトウェアのバージョンをアップグレードすることもできます。

インストール:

にはLinuxwindowsのバージョンがあり、基本的には対応するものをインストールする必要があります。 windowsを例に挙げます:

インストールパッケージをダウンロードしますhttp://nginx.org/en/download.html

それを解凍し、nginx.exeRunをクリックしてサービスを開始します, in ブラウザに localhost (デフォルトでは listen 127.0.0.1:80) と入力すると、次のページが表示されます。これは、nginx サーバーが正常に起動したことを意味します。


デモ:

springbootの単純なプロジェクトを構築し、それを異なるポートにデプロイしました(異なるサーバーにデプロイ可能)。テストを容易にするために、出力内容に簡単な区別を付けました:


設定の詳細:

注: conf / nginx.conf ngインクス デフォルトの設定ファイル。 nginx -c を使用して構成ファイルを指定することもできます

#运行用户
#user  nobody;
#启动进程,通常设置成和cpu的数量相等
worker_processes  1;

#全局错误日志
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#PID文件,记录当前启动的nginx的进程ID
#pid        logs/nginx.pid;

#工作模式及连接数上限
events {
    worker_connections  1024;
}

#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
    #设定mime类型(邮件支持类型),类型由mime.types文件定义
    include       mime.types;
    default_type  application/octet-stream;

    #设定日志
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,
    #必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.
    sendfile        on;
    #tcp_nopush     on;

    #连接超时时间
    keepalive_timeout  65;

    #gzip压缩开关
    #gzip  on;
	
    #设定负载均衡的服务器列表(或者一个反向代理服务器,一个的话不需要分配权重)
    upstream hello_server {
        #weigth参数表示权值,权值越高被分配到的几率越大
        server 127.0.0.1:8888   weight=1;
        server 127.0.0.1:8899   weight=3;
    }

    server {
        #监听80端口,80端口是知名端口号,用于HTTP协议
	listen       80;
	#定义使用localhost访问
        server_name  localhost;

        #编码格式
	charset utf-8;

        #access_log  logs/host.access.log  main;
		
	#反向代理的路径,location 后面设置映射的路径
	#对所有请求进行负载均衡请求(和upstream绑定)
        location / {
            root        /root;                 #定义服务器的默认网站根目录位置
            index       index.html index.htm;  #定义首页索引文件的名称
            proxy_pass  http://hello_server;   #请求转向hello_server 定义的服务器列表

            #以下是一些反向代理的配置(可选择性配置)
            #proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_connect_timeout 90;          #nginx跟后端服务器连接超时时间(代理连接超时)
            proxy_send_timeout 90;             #后端服务器数据回传时间(代理发送超时)
            proxy_read_timeout 90;             #连接成功后,后端服务器响应时间(代理接收超时)
            proxy_buffer_size 4k;              #设置代理服务器(nginx)保存用户头信息的缓冲区大小
            proxy_buffers 4 32k;               #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
            proxy_busy_buffers_size 64k;       #高负荷下缓冲大小(proxy_buffers*2)
            proxy_temp_file_write_size 64k;    #设定缓存文件夹大小,大于这个值,将从upstream服务器传
            
            client_max_body_size 10m;          #允许客户端请求的最大单文件字节数
            client_body_buffer_size 128k;      #缓冲区代理缓冲用户端请求的最大字节数
        }

}
ログイン後にコピー

構成後、nginxサーバーを再起動し、localhostにアクセスします:

再起動コマンド: nginxリロード

はまだnginx(localhost)サーバーにアクセスしていますが、実際にはデプロイされたspringbootプロジェクト(localhost:8899)にアクセスしています。 。さらに数回更新すると、両方のポートにデプロイされたサービスがアクセスされたことを示す下の図が表示されます。


注: 2 つのサービスによって割り当てられた重み値は異なるため、hello world b!!!(実際のアクセスlocalhost:8899) の可能性が高くなります。 hello world a!!!(localhost:8888への実際のアクセス)が表示される可能性は低くなります。権限の値を自分で変更して、さらに数回テストすることができます。 概要:

Nginx

共通コマンド:


関連推奨事項:


Nginxを使用してajaxクロスドメインリクエストを回避する


nginx リバースプロキシメカニズムがフロントエンドを解決クロスドメインの問題 質問

以上がNginx負荷分散サーバーエントリーケースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Dockerコンテナの名前を確認する方法 Dockerコンテナの名前を確認する方法 Apr 15, 2025 pm 12:21 PM

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

Nginxが開始されるかどうかを確認する方法 Nginxが開始されるかどうかを確認する方法 Apr 14, 2025 pm 01:03 PM

nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

nginxでクラウドサーバードメイン名を構成する方法 nginxでクラウドサーバードメイン名を構成する方法 Apr 14, 2025 pm 12:18 PM

クラウドサーバーでnginxドメイン名を構成する方法:クラウドサーバーのパブリックIPアドレスを指すレコードを作成します。 NGINX構成ファイルに仮想ホストブロックを追加し、リスニングポート、ドメイン名、およびWebサイトルートディレクトリを指定します。 nginxを再起動して変更を適用します。ドメイン名のテスト構成にアクセスします。その他のメモ:SSL証明書をインストールしてHTTPSを有効にし、ファイアウォールがポート80トラフィックを許可し、DNS解像度が有効になることを確認します。

Nginxバージョンを確認する方法 Nginxバージョンを確認する方法 Apr 14, 2025 am 11:57 AM

nginxバージョンを照会できるメソッドは次のとおりです。nginx-vコマンドを使用します。 nginx.confファイルでバージョンディレクティブを表示します。 nginxエラーページを開き、ページタイトルを表示します。

Windowsでnginxを構成する方法 Windowsでnginxを構成する方法 Apr 14, 2025 pm 12:57 PM

Windowsでnginxを構成する方法は? nginxをインストールし、仮想ホスト構成を作成します。メイン構成ファイルを変更し、仮想ホスト構成を含めます。 nginxを起動またはリロードします。構成をテストし、Webサイトを表示します。 SSLを選択的に有効にし、SSL証明書を構成します。ファイアウォールを選択的に設定して、ポート80および443のトラフィックを許可します。

nginxサーバーを開始する方法 nginxサーバーを開始する方法 Apr 14, 2025 pm 12:27 PM

NGINXサーバーを起動するには、異なるオペレーティングシステムに従って異なる手順が必要です。Linux/UNIXシステム:NGINXパッケージをインストールします(たとえば、APT-GetまたはYumを使用)。 SystemCtlを使用して、NGINXサービスを開始します(たとえば、Sudo SystemCtl Start NGinx)。 Windowsシステム:Windowsバイナリファイルをダウンロードしてインストールします。 nginx.exe実行可能ファイルを使用してnginxを開始します(たとえば、nginx.exe -c conf \ nginx.conf)。どのオペレーティングシステムを使用しても、サーバーIPにアクセスできます

Docker用のコンテナを作成する方法 Docker用のコンテナを作成する方法 Apr 15, 2025 pm 12:18 PM

Dockerでコンテナを作成します。1。画像を引く:Docker Pull [ミラー名]2。コンテナを作成:Docker Run [Options] [Mirror Name] [コマンド]3。コンテナを起動:Docker Start [Container Name]

Dockerによってコンテナを起動する方法 Dockerによってコンテナを起動する方法 Apr 15, 2025 pm 12:27 PM

Docker Containerの起動手順:コンテナ画像を引く:「Docker Pull [Mirror Name]」を実行します。コンテナの作成:「docker create [options] [mirror name] [コマンドとパラメーター]」を使用します。コンテナを起動します:「docker start [container name or id]」を実行します。コンテナのステータスを確認してください:コンテナが「Docker PS」で実行されていることを確認します。

See all articles