Nginnx作業における詳細な配置
14139 ワード
一、背景紹介
背景:会社の既存プロジェクトモデル1、フロントエンドプロジェクトはLinux環境ディレクトリ
nginx.com nfでは、次のように構成されている。
フロントエンドのvueプロジェクトはどうやってバックグラウンドインターフェースにアクセスしますか?Vueプロジェクトにはインターフェースパスが配置されています。フロントエンドプロジェクトの配置の総パスは
この経路会社は、
二、フロントエンドの設定
追加:単独モジュールを追加して、ゲートウェイを配置しないで、独立した先端が必要です。
方法1:異なるポートを構成し、
しかし、社内ネットワークは80ポートでしかアクセスできないので、新しいプロジェクトを元の80ポートに配置するしかないです。配置ファイルは以下の通りです。
外にもう1階のdemo 2ディレクトリを作りたくないので、以前のように配置したいと思っていましたが、2つの
したがって、
注意: aliasを使う時、ディレクトリ名の後に必ず aliasはlocationブロックにしかありません。rootはlocationに入れなくてもいいです。 三、バックエンドインターフェースサーバの逆プロキシを設定する
フロントエンドの設定が終わったら、開発機で正常にアクセスできます。バックグラウンドインターフェースを要求しても大丈夫です。結果、お客様に渡した時、いつも
インターフェースサーバのインバースプロキシを追加するように設定します。Ngixプロファイルは以下の通りです。
この設定を完了しました。全体のプロファイルは以下の通りです。
1.nginx.com nfを修正したら、(Linux環境)を再読み込みしてください。 2.Locationマッチングルールフロントエンド開発nginx常用機能を把握するserver&locationマッチング規則 3.Proxy_パスの設定
このフロントエンド要求のバックグラウンドサービスのアドレスは、 以上の2つは、正確に nginxのproxy_pass詳細解
背景:会社の既存プロジェクトモデル1、フロントエンドプロジェクトはLinux環境ディレクトリ
/usr/local/nginx/demo1
、demo 1の下にindex.htmlとstaticフォルダ(いくつかの静的リソースを含む)を保存します。nginx.com nfでは、次のように構成されている。
http {
include mine.types;
default_type application/octer-stream;
client_max_body_size 10M;
sendfile on;
upstream demo_channel {
#
# 8091 zuul
server 10.137.128.120:8091 weight=1;
server 10.137.128.122.8091 weighr=1;
server 10.137.128.123.8091 weighr=1;
}
......
}
server {
listen 80;
server_name localhost;
#
location / {
root demo1;
try_files $uri $uri/ /index.html;
index index.html index.html;
}
location /user {
proxy_pass http://demo1_channel;
}
location /backend {
proxy_pass http://demo1_channel;
}
location /case {
proxy_pass http://demo1_channel;
}
......
}
会社は全部で4台のサーバーを持っています。フロントエンドプロジェクトは10.137..128.121に展開されています。他のバックエンドサービスは120、122、123に配置されています。ブラウザがアドレスhttp://10.137.128.122:80
にアクセスすると、要求はlocation /
にマッチングされます。ロフトにアクセスして配置されたパスにログアウトを加えて配置されたパス、すなわち要求はdemo1/
の下の静的リソースに要求されます。フロントエンドのvueプロジェクトはどうやってバックグラウンドインターフェースにアクセスしますか?Vueプロジェクトにはインターフェースパスが配置されています。フロントエンドプロジェクトの配置の総パスは
http://10.137.128.122:80/
です。そして、異なるマイクロサービスを要求する時には、異なるマイクロサービス名(Vueでも書きます。)を追加します。http://10.137.128.122:80/case
、http://10.137.128.122:80/user
など、ブラウザがフロントエンドプロジェクトにアクセスする時にこれらのパスを要求すると、Ngix構成のlocation /case location /user
によってブロックされます。したがって、proxy_pass
に転送された後に構成されるパスを要求する。この経路会社は、
upstream demo_channel { ... }
を構成し、重みに応じて要求を異なるサーバに転送し、負荷の均衡を実現する。すなわち、バックグラウンドサービスを実際に要求する経路は10.137.128.120:8091/case/...
または10.137.128.122:8091/user/...
である。また、バックグラウンドにZuulが配置されているので、すべてのマイクロサービスインターフェースは、ZuulゲートウェイのIPアドレスとエンドスローガン(ここでは8091)とマイクロサービス名を加えてアクセスできます。つまり、フロントエンドはhttp://10.137.128.122:80/
で、異なるサーバの異なるマイクロサービスに対するインターフェース方法を要求することができます。二、フロントエンドの設定
追加:単独モジュールを追加して、ゲートウェイを配置しないで、独立した先端が必要です。
方法1:異なるポートを構成し、
server{ listen ; ...}
と同様に、元の構成と同様に、ポートを交換するだけで、アクセス時には現在構成されているポートを使用します。しかし、社内ネットワークは80ポートでしかアクセスできないので、新しいプロジェクトを元の80ポートに配置するしかないです。配置ファイルは以下の通りです。
server {
listen 80;
server_name localhost;
#
location / {
root demo1;
try_files $uri $uri/ /index.html;
index index.html index.html;
}
# demo2
location /demo2 {
root demo2;
try_files $uri $uri/ /index.html;
index index.html index.html;
}
......
}
ブラウザアクセスアドレスは、ロカモーションの後に構成された経路マッチングに従って、/demo2
に先にマッチングし、/
にアクセスすると、http://10.137.128.122:80/demo2
にマッチングし、つまり、要求の先端リソース経路がroot+locationの後に配置された経路、つまりlocation /demo2
ディレクトリの下の静的リソースであるため、demo 2プロジェクトの配置経路はdemo2/demo2
である。外にもう1階のdemo 2ディレクトリを作りたくないので、以前のように配置したいと思っていましたが、2つの
/usr/local/nginx/demo2/demo2
があってはいけません。配置ファイルは許可されていません。したがって、
{ location / }
を使用することができます。構成ファイルは以下の通りです。server {
......
# demo2
location /demo2 {
alias demo2/;
try_files $uri $uri/ /index.html;
index index.html index.html;
}
......
}
aliasとrootの違いは、aliasを使用する場合、フロントエンドリソースを要求するときには、location後のパス、すなわちalias
を要求しないときは、http://10.137.128.122:80/demo2
下の静的リソースのみを要求することである。注意:
/usr/local/nginx/demo2
を追加してください。rootは追加できます。フロントエンドの設定が終わったら、開発機で正常にアクセスできます。バックグラウンドインターフェースを要求しても大丈夫です。結果、お客様に渡した時、いつも
/
を報告しました。その後、バックグラウンドインターフェースが要求されないかもしれません。お客様のコンピュータは80ポートしか訪問できません。フロントエンドだけを配置しました。フロントエンドとの接続時に、フロントエンドがVueプロジェクトにデッドバックした要求バックグラウンドインターフェースアドレスはnetwork error
であり、クライアントがこの住所を要求できないはずである。インターフェースサーバのインバースプロキシを追加するように設定します。Ngixプロファイルは以下の通りです。
server {
listen 80;
server_name localhost;
......
#
location /entryCase {
# , SpringBoot
proxy_pass http://10.137.128.120:9092/entryCase;
proxy_read_timeout 30s;
}
......
}
Vueフロントエンド項目の要求インターフェースアドレスはhttp://10.137.128.120:9092
に変更され、ユーザがホームリソースにアクセスした後、ある操作を行った後、ブラウザ送信要求はhttp://10.137.128.121:80
であり、このサービス名もフロントエンドコードの中で書き込みが完了したもので、この経路はnginx.comに配置されたhttp://10.137.128.121:80/entryCase/...
に一致し、nginxというリバースプロキシによってproxy_に行く。パス後に配置されたパス要求データは、クライアントに戻ります。この設定を完了しました。全体のプロファイルは以下の通りです。
server {
listen 80;
server_name localhost;
#
location / {
root demo1;
try_files $uri $uri/ /index.html;
index index.html index.html;
}
# demo2
location /demo2 {
alias demo2/;
#try_files $uri $uri/ /index.html;
index index.html index.html;
}
#
location /entryCase {
# , SpringBoot
proxy_pass http://10.137.128.120:9092/entryCase;
proxy_read_timeout 30s;
}
......
}
四、Complement1.nginx.com nfを修正したら、(Linux環境)を再読み込みしてください。
location /entryCase
、構成ファイルの修正が正常かどうかをテストする。/usr/local/nginx/sbin/nginx -t
は、NFinxプロファイルを再読み込みする。このフロントエンド要求のバックグラウンドサービスのアドレスは、
/usr/local/nginx/sbin/nginx -s reload
、例えば、get方法を要求するhttp://10.137.128.121:80/entryCase/...
、Ngixプロファイルに配置可能なproxy_。パスには二つの種類がありますhttp://10.137.128.121:80/entryCase/get
proxy_pass http://10.137.128.120:9092
proxy_pass http://10.137.128.120:9092/entryCase
に要求することができる。