Nginxは、Springboot plus Vueおよび通常のcss、js、htmlテクノロジースタックプロジェクトをデプロイします

Nginx静的Webサイトの展開とデバッグ

  • 1)npmはjsvuecliを管理します
    Npmはビルドパッケージを実行してデプロイします
  • 2)従来のhtml + cssは、従来の静的なjsを直接導入し、
    直接コピーします。

静的ウェブサイトの動的デバッグ-開発段階

  • vuecliプロジェクトは、npm rundevでデバッグを開始できます

  • js開発をインポートする従来のモードでは、サーバーモードで直接デバッグすることはできません。ライブサーバーサーバーをインストールする必要があります。このサーバーはノードモジュールとして非常にシンプルです。

npm install -g live-server
live-server --port=6002

Nginxは、異なるドメイン名またはポートを持つ異なるディレクトリを転送するように仮想ホストを構成します(フロントエンドプロジェクト)

  • 「ウェブサイトスペース」とも呼ばれる仮想ホスティングは、インターネット上で実行されている物理サーバーを複数の「仮想」サーバーに分割することです。仮想ホスト技術は、ネットワーク技術の応用と普及を大いに促進してきました。同時に、仮想ホストのレンタルサービスはインターネット時代の新しい経済形態になりました。

ポートに基づいて仮想ホストを構成する

(1)静的Webサイトをアップロードします:
nginx / html_xxxの下のフロントエンドの従来のプロジェクト
フロントエンドのvuecliプロジェクトはパッケージ化され、nginx / vuecli_xxxにアップロードされます
(2)Nginx構成ファイルを変更します:conf / nginx.conf

 server {
    
    
        listen       8081;
        server_name  localhost;
        location / {
    
    
            root   html_xxx;
            index  index.html;
        }      
    }
    server {
    
    
        listen       80;
        server_name  localhost;
        location / {
    
    
            root   vuecli_xxx;
            index  index.html;
        }        
    }

(3)アクセステスト:Nginxリロード
アドレスバーをリロードし、http:// localhost:82
アドレスバーを入力してhttp:// localhost:83を入力します

ドメイン名に基づいて仮想ホストを構成する

  • ドメイン名とIPバインディング:
    1つのドメイン名は1つのIPアドレスに対応し、1つのIPアドレスは複数のドメイン名でバインドできます。
    ローカルテストでは、hostsファイル(C:\ Windows \ System32 \ drivers \ etc)
    を変更して、ドメイン名とIPの間のマッピング関係を構成できます。ドメイン名とipの間の対応する関係が、hostsファイルで構成されている場合は、 dnsサーバーに移動する必要はありません。バインディングルールのIPドメイン名を指定して確認します。ドメイン名を指定したら、nginx構成ファイルを変更します。
    ホスト
    127.0.0.1 app_html_xxx
    127.0.0.1 admin_vuecli_xxx
    (1)静的Webサイトをアップロードします
    。nginx/ html_xxxの下にあるフロントエンドの従来のプロジェクトで
    、フロントエンドのvuecliプロジェクトをパッケージ化してアップロードします。 nginx / vuecli_xxxへ
    (2)Nginx構成ファイルを変更します:conf / nginx.conf
server {
    
    
        listen       80;
        server_name  app_html_xxx;
        location / {
    
    
            root   html_xxx;
            index  index.html;
        }
    }
    server {
    
    
        listen       80;
        server_name  admin_vuecli_xxx;
        location / {
    
    
            root   vuecli_xxx;
            index  index.html;
        }
    }

リバースプロキシとしてのNginx-異なるドメイン名またはアドレスが異なるサーバーに転送されます

  • 静的プロジェクトは仮想ホストを介して複数のプロジェクトをデプロイできますが、動的Tomcat Webサイトは機能せず、nginxは解釈および実行できません。

リバースプロキシ構成

Nginx構成ファイルを変更します:conf / nginx.conf

server {
    
    
		listen       80;
		server_name  java_web;

		#charset koi8-r;

		#access_log  logs/host.access.log  main;

		location / {
    
     
		    proxy_pass http://127.0.0.1:6002; #访问域名为java_web都交给6002处理
		    index  index.html index.htm;
		}
	}

	server {
    
    
		listen       80;
		server_name  admin.com;

		#charset koi8-r;

		#access_log  logs/host.access.log  main;

		location / {
    
    
		    proxy_pass http://127.0.0.1:8082; #访问域名为 admin.com都交给8082处理
		    index  index.html index.htm;
		}
	}

リバースプロキシのルールは、さまざまなドメイン名で区別できます。また、さまざまなURIで区別することもできます。

クロスドメインを解決します。

server {
    
    
		listen       80;
		server_name  admin.mall.com;
 location / {
    
    
            # 检查域名后缀
		  if ($http_origin ~ \.mall\.com) {
    
    
				add_header Access-Control-Allow-Origin $http_origin;
				add_header Access-Control-Allow-Methods GET,POST,DELETE,PUT,OPTIONS;
				add_header Access-Control-Allow-Credentials true;
				add_header Access-Control-Allow-Headers DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,U-TOKEN;
				add_header Access-Control-Max-Age 1728000;
		   }
		   # options请求不转给后端,直接返回204
		   # 第二个if会导致上面的add_header无效,这是nginx的问题,这里直接重复执行下
		   if ($request_method = OPTIONS) {
    
    
				add_header Access-Control-Allow-Origin $http_origin;
				add_header Access-Control-Allow-Methods GET,POST,DELETE,PUT,OPTIONS;
				add_header Access-Control-Allow-Credentials true;
				add_header Access-Control-Allow-Headers DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,U-TOKEN;
				add_header Access-Control-Max-Age 1728000;
				return 204;
		   }
			# 其他请求代理到后端
		   proxy_set_header Host $host;
		   proxy_redirect off;
		   proxy_set_header X-Real-IP $remote_addr;
		   proxy_set_header X-Scheme $scheme;
		   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		   proxy_set_header X-Forwarded-Proto $scheme;
		   proxy_pass http://localhost:8081;
        }
    }

おすすめ

転載: blog.csdn.net/weixin_45528650/article/details/110913652