ホームページ  >  記事  >  バックエンド開発  >  Nginx リバースプロキシとロードバランシングの実践

Nginx リバースプロキシとロードバランシングの実践

小云云
小云云オリジナル
2017-11-16 13:43:471906ブラウズ

Nginx (「エンジン x」) は、高性能 HTTP およびリバース プロキシ サーバー、および IMAP/POP3/SMTP サーバーです。 Nginx はリバース プロキシ サーバーとして Web サーバーを高速化し、負荷分散機能を備えています。 nginx は、Web サービスへの通常のアクセスを保証するために、サービスを停止したサーバーを自動的に排除できます。

この例では、ユーザーは 192.168.1.4 にアクセスし、それを 2 つのサーバー 192.168.1.2:80 と 192.168.1.3:80 にプロキシして負荷を実現します。

以下は設定ファイル nginx.conf です:

user www www;
worker_processes 10;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
#最大文件描述符
worker_rlimit_nofile 51200;
events {
worker_connections 51200;
}
http {
include conf/mime.types;
default_type application/octet-stream;
keepalive_timeout 120;
tcp_nodelay on;
#nginx的upstream默认是以轮询的方式实现负载均衡,这种方式中,每个请求按时间顺序逐一分配到不同的后端服务器,
#如果后端服务器down掉,能自动剔除。另外一种方式是ip_hash:每个请求按访问ip的hash结果分配,
#这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream webserver  {
server 192.168.1.2:80 weight=1;
server 192.168.1.3:80 weight=1;
}
server{
listen 80;
server_name localhost;
location / {
#设置反向代理的地址
proxy_pass http://webserver;
#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
log_format localhost '$remote_addr - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /data1/logs/www.log localhost ;
}
}

上記は Nginx リバース プロキシとロード バランシングの実践に関する関連チュートリアルです。皆さんのお役に立てれば幸いです。

関連する推奨事項:

LNMP 環境で Nginx サーバーを Tengine に置き換えるサンプル コード

php Nginx を使用してリバース プロキシを実装する方法

nginx の高同時実行構成パラメーターの詳細な説明

以上がNginx リバースプロキシとロードバランシングの実践の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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