nginx負荷分散
アップストリームロードバランシング、httpで追加
upstream backend{
server 127.0.0.1:8080 weight=1; #一次8080
server 127.0.0.1:8081 weight=2; #两次8081
#两个服务器崩溃,备用服务器
#server backup.example.com:8080 weight=1 backup;
}
server {
listen 80;
server_name backend;
location / {
#backend不要加斜杠,拼接location 斜杠/
#如果backend包含 斜杠/ 则会出现 双斜杠//
proxy_pass http://backend;
index index.html index.htm;
}
}
nginx.confを実行してリロードします
./nginx -s reload
盗難防止チェーン、hawkii.comからのものでない場合は、403コードを返す
location /img/ { #img是相对目录,是html目录下的img目录
valid_referers none blocked server_names *.hawkii.com ; #允许访问该目录的域名或IP
if ($invalid_referer) {return 403;} #不允许访问返回403
}
#打开防火墙80端口访问限制
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload
#查看已经开放端口号
firewall-cmd --list-all
リバースプロキシ
訪問する
http://127.0.0.1/edu/
#映射到 http://127.0.0.1:8081/edu/;
http://127.0.0.1/vod/
#映射到 http://127.0.0.1:8080/vod/;
server {
listen 80;
#本机在局域网地址
server_name 172.16.143.10;
#通配符~ 包含/edu/
location ~ /edu/ {
proxy_pass http://127.0.0.1:8081;
}
location ~ /vod/ {
proxy_pass http://127.0.0.1:8080;
}
高可用性
複数のnginxサーバーへの仮想IPバインディング
- 2つのLinuxシステム(2つの仮想マシン)を準備する
- どちらのサーバーにもnginxとkeepalivedがインストールされています
- nginxへの仮想IP、keepalived- keepalived.confの設定、virtual_ipaddressの設定
- nginxが実行されているかどうかを検出するスクリプトを作成します。nginx_check.sh
nginxの原則
1つのマスター、複数のワーカー
ワーカーの数とサーバーCPUの数が最もよく一致します
各労働者のための独立したプロセス
nginx worker_connectionの設定は2つまたは4つです。これは、クライアントが前後に、Tomcatを前後に移動する必要があるためです。
Nginxは、redisなどの多重化されたioメカニズムを使用して、最大のパフォーマンスを向上させます
Nginxマスターと4つのワーカー、各ワーカーがサポートする接続の最大数は1024です。同時サポートの最大数はいくつですか?
- 静的接続:work_connection * work_process / 2
- リバースプロキシ:work_connection * work_process / 4