Nginx + Apacheは、実際にはフロントエンドとしてのNginxであり、バックエンドとしてのApacheです。
Nginxは高い同時実行性を持ち、プロキシ機能は強力で効率的であり、システムリソースをあまり消費しません。Apacheはより多くの機能モジュールを備えており、ApacheはFastCGIよりも高い同時実行性でキューを処理します(Nginxはfastcgiやその他の方法でphpを実行する必要があります)。はダイナミクスを処理していますphpページの場合、mod_phpはphp-cgiよりも安定していて効率的です。
ここでの作業モードは大きく2つのタイプに分けることができます
最初のタイプ
は、クライアントのリクエストを受信するNginxです。動的ページリクエストの場合、処理のためにApache(LAMP、tomcat)に渡され、Nginxを介してクライアントに返されます。残りのリクエストはによって処理されます。 Nginx自体、そして結果クライアントに戻ります。
2番目のタイプの
Nginxはプロキシ機能のみを実行し、すべてのリクエストは処理のためにApache、Tomcatなどに渡されます。
WebクラスターにApacheをデプロイする
1.xftpアップロードファイル
2.環境設定
yumを使用してgccgcc-c ++をインストールできます。makepcre-develexpat-develperl
ポート80は使用されていません。
netstat -anpt | grep 80
同じネットワークセグメント上の4つのデバイス(相互に通信可能、pingテスト)
がファイアウォールを閉じます
systemctl stop firewalld
setenforce 0
3.スクリプトインストールApache
#!/bin/bash
#apache的编译安装和配置
tar xf apr-1.6.2.tar.gz
tar xf apr-util-1.6.0.tar.gz
tar xf httpd-2.4.29.tar.bz2
mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
yum -y install gcc gcc-c++ make pcre-devel expat-devel perl
cd httpd-2.4.29/
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
make && make install
cd
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
sed -i -e '2i#chkconfig: 35 85 21' /etc/init.d/httpd
sed -i -e '3i#description: Apache HTTP Server' /etc/init.d/httpd
chkconfig --add httpd
ln -s /usr/local/httpd/bin/* /usr/bin/
ln -s /usr/local/httpd/conf/httpd.conf /etc/
4.スクリプトを実行し、テストします
systemctl start httpd
curl http://localhost
Nginxのデプロイ
1.xftpアップロードファイル
2.nginxコンパイルおよびインストールスクリプト
#!/bin/bash
#nginx编译安装
yum -y install gcc gcc-c++ make pcre pcre-devel zlib zlib-devel
useradd -M -s /sbin/nologin nginx
tar xf nginx-1.12.2.tar.gz
cd nginx-1.12.2/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
make && make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
ln -s /usr/local/nginx/conf/nginx.conf /etc/
nginx -t
次の2行が表示され、インストールが成功したことを示します
3.キープアライブをインストールします
tar xf keepalived-2.0.13.tar.gz
yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel
コンパイルしてインストールする
cd keepalived-2.0.13
./configure --prefix=/
make && make install
システム管理サービスに参加する
cp keepalived/etc/init.d/keepalived /etc/init.d/
systemctl enable keepalived.service
構成ファイルの編集
1.nginx.conf
vi /etc/nginx.conf
サーバープールを追加します。サーバープールを処理できない場合は、ローカルマシンに移動します
upstream httpd_server {
server 192.168.2.20:80 weight=1;
server 192.168.2.22:80 weight=1;
server 127.0.0.1 backup;
}
元の
場所に注釈を付け、新しい場所を追加します
location / {
proxy_pass http://httpd_server;
proxy_set_header Host $http_host;
}
バックエンドサーバーが同様の盗難防止チェーンまたはルーティングまたはhttpリクエストヘッダーのホストフィールドに基づく判断で設定されている場合、リバースプロキシレイヤーnginxがリクエストヘッダーのホストフィールドを書き換えない場合、リクエストは失敗します。、400エラーを報告するため、ホストヘッダーを追加し、ヘッダー情報をサーバーに返す必要があります。
proxy_set_header Host $http_host;
2.キープアライブ構成
vi /etc/keepalived/keepalived.conf
global_defs {
router_id Nginx_01
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_http_port
}
virtual_ipaddress {
192.168.2.100
}
}
代替のnginx構成
! Configuration File for keepalived
global_defs {
router_id Nginx_02
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 145
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.2.100
}
}
3.テスト
テストを再開します
nginxを開きます:nginxをnginx
再起動します:killall -1 nginx
keepalivedを再起動します:systemctl restart keepalived
メインのnginxでキープアライブをオフにします
systemctl stop keepalived.service
バックアップnginxを表示する