注--nginx

                構成:
            conf / nginx.conf
                ##グローバル構成セクション
                usernobody;#ワーカープロセスのユーザー、ルート
                worker_processes1を使用しないようにしてください;#ワーカープロセスの数、cpuコアの数
                以下error_log logs / error.log info; #error log and Level
                ##                     eventConfiguration section
                events { worker_connections 1024;                     use epoll ;                 }                 ## httpConfiguration section                 http {                     include mime.types ;                     default_type application / octet-stream;                     sendfile on;








                    keepalive_timeout 65;
                    server_tokens off ; #非表示バージョンの
                    アップストリームTomcat {                         サーバーlocalhost:8080;                     #アップストリームサーバーの定義                     } サーバー構成セクション                     サーバー{                         リッスン80;サーバー                         192.168.80.172;                         場所/ {                             プロキシパスhttp:// tomcat / ppw /;リバースプロキシ、ここにパスを記述します                         }                         error_page 500 502 503 504 /50x.html;                         location = /50x.html {











                            root html;
                        }
                    }
                }
        
       バックエンドサーバーのマスターとバックアップの構成:
            アップストリームテスト{                 サーバー192.168.80.172:8080;                 サーバー192.168.80.172:8081バックアップ;             }


       注:同じドメイン名のサーバーホストがない場合は、ポート要件を満たす最初のホストが見つかります

       アクセス制御:
            http、サーバー、場所などに配置できます
            。192.168.80.0/ 24を許可
            し、すべてを拒否します。

        ディレクトリマッピング:                     #global
            configuration
                root html;    
                
                location / { #proxy_pass http:// test;                     index index.html index.htm;

                }
                location / aa {#Access xxx.com/a-> html / aa / index.html
                        index index.html;
                }                     #
            個別に構成:
                location / { #proxy_pass http:// test;                     root html;                     index index.html index.htm;


                }

                location / bb {                         root html / aa; #Visit xxx.com/bb-> html / aa / bb / index.html、実際には/ bbをルートパス                         インデックスindex.htmlに追加します;                 }


 

 

       リバースプロキシ:
            アップストリームapiServer {                 サーバー10.10.10.10:8888                 ...             }             サーバー{                 ...                 場所/ api {                    proxy_pass http:// apiServer;                     proxy_cookie_domain apiServer a.test.com;#応答セットを置き換える-cookieヘッダードメイン属性                     #Syntax:proxy_set_headerフィールド値;                     #field:変更される項目であり、ホストなどの変数の名前としても理解できます                     #value:は変数                    proxy_set_headerの値ですhost $ host;#デフォルト値は$ proxy_hostで、ヘッダーを変更します。ホストフィールドはバックエンド実サーバーのIPであり、$ hostと$ http_hostは同じであり、要求の元のホストを表す1つだけを書き込むことができます。












                   proxy_set_header X-Real-IP $ remote_addr;# "$ http_x_real_ip"、この変数の値を追加
                   proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;#$ http_x_forwarded_forの値を "$ remote_addr、last hop ip"に変更
                        #使用プロキシが受信するリモートクライアントIPを設定します。設定されていない場合、リモート実クライアントのIPアドレスはヘッダー情報で透過的に送信されません。
                }       
                ...
            }
            
        url / problem
            nginxでproxy_passを構成するときに、絶対ルートパスに相当する/がURLビハインドに追加されると、nginxは場所が一致するパス部分をプロキシしません。/がない場合、次に、一致したパス部分もエージェントに渡されます。
            1. proxy_passのターゲットアドレス(デフォルトでは/なし)は、プロキシドメイン名のみを意味し、URLとパラメーターは変更されません(プロキシURLとしてproxy_passターゲットドメイン名への要求されたパスをスプライスします)
            2。/を追加した場合ターゲットアドレスの後、場所に正常に一致するパスの部分が切り取られ、proxy_passターゲットアドレスにスプライスされることを意味します
            次の4つの状況で、それぞれhttp://192.168.1.4/proxy/test.htmlにアクセスします。

            最初のタイプ:
                location / proxy / {                      proxy_pass http://127.0.0.1:81/;                 }                 はhttp://127.0.0.1:81/test.html this urlにプロキシされます             2番目のタイプ(最初のタイプと比較して、最後のものがあり                      ません/)                 location / proxy / { proxy_pass http://127.0.0.1:81;                 }                 はhttp://127.0.0.1:81/proxy/test.htmlにプロキシされますこのURLは             3番目のタイプです:                 location / proxy / {                      proxy_passhttp://127.0.0.1:81 / ftlynx / ;                 }                 はURLhttp://127.0.0.1:81 / ftlynx / test.htmlにプロキシされます。             4番目のケース(3番目のケースと比較して、最後のケースが欠落しています/):








                 





                 

                場所/ proxy / {                      proxy_pass http://127.0.0.1:81/ftlynx;                 }                 はhttp://127.0.0.1:81/ftlynxtest.htmlにプロキシされますこの         urlnginx_upstream_check_module(nginxステータスページ)インストール:             1 unzip nginx_upstream_check_module- master.zip              2 nginxソースディレクトリに入り、patchコマンドを使用してソースファイルに                 パッチを適用しますpatch -p1 </root/smb/software/nginx/nginx_upstream_check_module-master/check_1.16.1+.patch 3nginxを             コンパイルします                 。/configure- -prefix = ./nginx --add-module = ../ nginx_upstream_check_module-master --with-http_ssl_module次の                 エラーが                 わずかに報告されています:OpenSSLライブラリが使用されていません



            








                    --with-http_ssl_module4
            配置nginx.conf
                アップストリームtest111 {                     サーバー172.17.1.1;                     サーバー172.17.3.164:8080;                     チェック間隔= 2000上昇= 2下降= 2タイムアウト= 1000タイプ= http;                     #check_http_send "HEAD / HTTP / 1.0 \ r \ n \ r \ n";                     #check_http_expect_alive http_2xx http_3xx http_4xx;                 }                 --------                 サーバー{                     リッスン80;                     server_name localhost;                     場所/ {                         proxy_pass http:// test111;












                    }
                    location / status {                        check_status;                        access_log off;                     }                 .....         書き換え:たとえば             、URLをリダイレクトしてプロキシを複数の                 kibanaアップストリームkibanaServerに                     リダイレクトします{ ip_hash; #same ip、固定バックエンド                     kibanaサーバーへの負荷分散10.78 .228.162:5601 ;                     サーバー10.78.228.163:5601;                     サーバー10.78.228.164:5601;                     チェック間隔= 5000上昇= 1下降= 3タイムアウト= 4000;                 }




            









                server {                     ...                     location〜 / elk {                         rewrite ^                         /。*                     / kibana last;                     } location / kibana / { proxy_pass http:// kibanaServer;                     }                 }         server_name:             nginxはhttpヘッダー内のホストを解析し、一致するserver_nameを見つけますそうでない場合は、デフォルトまたは最初のものを使用します








                

            例:IPアクセスを禁止する:
            server {                       listen 80;                       server_name _;                       return 404;                }              server {                     listen 80;                     server_name www.hello.com;             }







            IPでアクセスする場合、一致するサーバーが存在しない場合、それは最初のサーバに一致し、404を返す
            
        ファイルサーバーを:
            nginx.confのHTTP {}文脈では、追加
                でのautoindex;#ショーのディレクトリ
                autoindex_exact_size上;#ショー・ファイルのサイズ
                autoindex_localtime on;#ファイル時間を表示する

            パスを指定します:
                location〜 / files {                         access_log off;                         #root / tmp;                         alias / tmp /;                 }             httpd実装:add                 <Directory " /home/wwwroot/rpms">/etc/httpd/conf/httpd.conf                     インデックスのオプションMultiViews FollowSymLinks                     AllowOverride None                     Order allow、deny                     Allow from all                 </ Directory>                     pythonimplementation             (single thread):python3 -m http.server 88




                







            

            
        ログイン検証を追加します:
                    location / {                             proxy_pass http://127.0.0.1:5601$request_uri;

                            auth_basic "ログイン検証";
                            auth_basic_user_file / etc / nginx / htpasswd;

                    }
                $ request_uri#リクエストパラメータを含む元のURIには、「/ foo / bar.php?arg = baz」などのホスト名は含まれていません。変更できません。

            パスワードの生成:
                htpasswd -c -b / etc / nginx / htpasswd kibana kibana
                -c:暗号化されたファイルを作成します-b:プロンプトに従ってパスワードを入力する代わりに、コマンドラインでユーザー名とパスワードを一緒に入力します。パスワードは次のとおりです。
                    apr1を使用して暗号化

                パスワードファイルのアクセス許可を変更することに注意してください:
                    chmod 600
                    htpasswdchownnobody。htpasswd

おすすめ

転載: blog.csdn.net/weixin_42573277/article/details/114624247