Nginx + Apache

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を表示する
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/weixin_50345511/article/details/111145240