nginx二次逆エージェント
前にnginx配置vueプロジェクトと書いたことがあります:vueプロジェクト配置nginx&踏坑記
次の作業で1つのシーンに遭遇しました.
フロントエンドエンジニアリングパッケージ化後、サーバBのnginxに配備され、エンジニアリングを外部ネットワークに公開するためには、外部ネットワークのnginx Aサーバを構成する必要があり、新たにエージェントルールがBサーバを指すようになりました.
1.Aサーバー構成:
bmsで始まるすべてのリクエスト(bmsはプロジェクトの名前)を転送します.
2.Bサーバ構成
ここには私のすべての構成がリストされています.
1.前はgzip配置で、http転送時に資源を圧縮するために使用され、転送ファイルが大きい時に効果は非常に明らかで、私のファイル全体は比較的に小さく、効果はあまり明らかではなく、時間の差は多くない.
2.中間パス規則の構成に重点を置く:
フロントエンドプロシージャのバックグラウンドリクエストに先に一致し、^~式を使用して、一致すると検索を停止することを示します.
静的リソースのリクエスト構成:location/bms
(以上のルールを使用して、フロントエンドエンジニアリングのrequestリクエストが/bmsで始まることを保証する必要があります.これはaxiosで構成可能ですので、注意してください)
3.最後の部分の構成はキャッシュルールについてです.
htmlなどのWebファイルに対してキャッシュを使用しないで、毎回取得するのがサーバーの上で最新であることを保証します;
js cssなどのファイルについては、1年間のキャッシュ期間を設定します.webpackパッケージでは、js cssなどのファイルが生成されるたびに異なるhashコードになるため、htmlで参照されるファイル名が変更されない限り、キャッシュ内のファイルを引き続き使用することができます.
次の作業で1つのシーンに遭遇しました.
フロントエンドエンジニアリングパッケージ化後、サーバBのnginxに配備され、エンジニアリングを外部ネットワークに公開するためには、外部ネットワークのnginx Aサーバを構成する必要があり、新たにエージェントルールがBサーバを指すようになりました.
1.Aサーバー構成:
server {
listen 18080;
server_name 10.108.215.118;
#charset koi8-r;
#gzip
location ^~ /bms {
proxy_pass http://10.108.4.178:18080;
proxy_set_header HOST $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 10m;
proxy_read_timeout 300;
}
}
bmsで始まるすべてのリクエスト(bmsはプロジェクトの名前)を転送します.
2.Bサーバ構成
server {
listen 18080;
server_name localhost;
#charset koi8-r;
#gzip
gzip on;
gzip_static on;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_proxied any;
gzip_vary on;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
#access_log logs/host.access.log main;
root dist;
#location /bms {
#index index.html;
#try_files $uri $uri/ /index.html;
#error_page 404 /index.html;
#}
location ^~ /bms/authData {
proxy_pass http://10.108.230.207:7401/authData/;
}
location ^~ /bms/sysConfig {
proxy_pass http://10.108.230.207:7402/sysConfig/;
}
location ^~ /bms/permissions {
proxy_pass http://10.108.230.207:8762/permissions/;
}
location ^~ /bms/budget {
proxy_pass http://10.108.230.207:7404/;
}
location ^~ /bms/publicNotice {
proxy_pass http://10.108.230.207:7403/publicNotice/;
}
location /bms {
try_files $uri $uri/ /bms/index.html;
}
location ~ .*\.(?:htm|html)$ {
root dist;
add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
}
location ~ .*\.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm)$
{
root dist;
expires 365d;
}
location ~ .*\.(?:js|css)$
{
root dist;
expires 365d;
}
}
ここには私のすべての構成がリストされています.
1.前はgzip配置で、http転送時に資源を圧縮するために使用され、転送ファイルが大きい時に効果は非常に明らかで、私のファイル全体は比較的に小さく、効果はあまり明らかではなく、時間の差は多くない.
2.中間パス規則の構成に重点を置く:
フロントエンドプロシージャのバックグラウンドリクエストに先に一致し、^~式を使用して、一致すると検索を停止することを示します.
静的リソースのリクエスト構成:location/bms
(以上のルールを使用して、フロントエンドエンジニアリングのrequestリクエストが/bmsで始まることを保証する必要があります.これはaxiosで構成可能ですので、注意してください)
3.最後の部分の構成はキャッシュルールについてです.
htmlなどのWebファイルに対してキャッシュを使用しないで、毎回取得するのがサーバーの上で最新であることを保証します;
js cssなどのファイルについては、1年間のキャッシュ期間を設定します.webpackパッケージでは、js cssなどのファイルが生成されるたびに異なるhashコードになるため、htmlで参照されるファイル名が変更されない限り、キャッシュ内のファイルを引き続き使用することができます.