Alibaba Cloud OSS によってアップロードされた Nginx プロキシ転送実装コード

Alibaba Cloud OSS によってアップロードされた Nginx プロキシ転送実装コード

序文

ミニプログラムのアップロードには https が必要なので、サーバーの https は letsencrypt によって生成された証明書を使用しますが、Alibaba Cloud OSS は https をしません (証明書をアップロードするのが面倒)。そのため、アップロード要求を転送するために Nginx プロキシを使用することを考えました。

Nginx の設定

# HTTPS サーバー
#
 サーバー{
  443 ssl を聴く;
  server_name your.domain.name;

  ...

  位置 / {
    プロキシパス http://127.0.0.1:3000;
    proxy_set_header ホスト $Host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For 
  }

  場所 /oss {
    proxy_set_header ホストdrift-book-dev.oss-cn-shenzhen.aliyuncs.com;
    proxy_set_header 接続キープアライブ;
    proxy_pass http://***.oss-cn-***.aliyuncs.com/;
    #proxy_set_header X-Real-IP $remote_addr;
    #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
 }

ここでは、サブパス「/oss」が転送パスとして使用されます。

proxy_pass は Alibaba Cloud ドメイン名を指定します。最後にスラッシュ「/」を追加することを忘れないでください。そうしないと転送が失敗します。

nginx プロキシ転送を設定する proxy_pass

次の 4 つの状況がそれぞれ http://192.168.1.1/proxy/test.html を使用してアクセスされると仮定します。

最初のもの:

場所 /proxy/ { 
  プロキシパス http://127.0.0.1/; 
} 

URL へのプロキシ: http://127.0.0.1/test.html

2 番目のタイプ (最初のタイプと比較して、末尾の / が 1 つ少ない)

場所 /proxy/ { 
  プロキシパス http://127.0.0.1; 
} 

URL へのプロキシ: http://127.0.0.1/proxy/test.html

3番目のタイプ:

場所 /proxy/ { 
  プロキシパス http://127.0.0.1/aaa/; 
} 

URL へのプロキシ: http://127.0.0.1/aaa/test.html

4 番目のタイプ (3 番目のタイプと比較して、末尾の / が 1 つ少ない)

場所 /proxy/ { 
  プロキシパス http://127.0.0.1/aaa; 
} 

URL へのプロキシ: http://127.0.0.1/aaatest.html

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • プロキシ転送リクエストの例を使用した Nginx の詳細な説明
  • Nginxリバースプロキシはイントラネットドメイン名転送に使用されます
  • 内部 LAN で URL 転送構成を実装するためのリバース プロキシとしての Nginx サーバー

<<:  MySQL 5.7.17 のインストールと設定方法のグラフィック チュートリアル (Windows10)

>>:  jQueryの競合問題を解決する方法

推薦する

Ubuntu 18.04 Linux システムに JDK と Mysql をインストールする方法

プラットフォームの展開1. JDKをインストールするステップ1. OracleJDKをダウンロードす...

Vueはシンプルなマーキー効果を実装します

この記事では、Vueの具体的なコードを共有して、シンプルなマーキー効果を実現しています。具体的な内容...

自動開始および停止コマンドを適用するには、Docker サービスを再起動します (推奨)

Docker サービス アプリケーションを再起動するコマンドを見てみましょう。具体的な内容は次のと...

JS がビデオ弾幕効果を実現

これを実現するには、ES6 モジュール開発とオブザーバー モードを使用します。オブザーバー パターン...

deepin20 で NVIDIA クローズドソース ドライバーをインストールするための詳細な手順

ステップ1: ディープ「グラフィックドライバー」をインストールするdeepin v20にはデフォルト...

インデックスとテーブルリターンをカバーするMySQLの使い方

インデックスの2つの主要なカテゴリ使用されるストレージエンジン: MySQL 5.7 InnoDBク...

HTMLフォーム属性のreadonlyとdisabledの使い方

1. readonly 読み取り専用属性なので、値を取得できます2. 無効: 無効な属性、値を取得で...

Dockerfileの指示と基本構造の説明

Dockerfile を使用すると、ユーザーはカスタム イメージを作成できます。基本構造Docker...

MySQLにおける静的変数の役割の詳細な説明

MySQLにおける静的変数の役割の詳細な説明静的変数の使用 静的変数サンプルコード: 関数テスト()...

JS でカルーセル画像を実装するいくつかの方法

カルーセル主なアイデアは次のとおりです。大きなコンテナには、コンテナの幅の整数倍の非常に長いテーブル...

HTML に埋め込まれた MP4 形式のビデオが再生できないのはなぜですか?

次のコードは、私の test.html にあります。ビデオは、c:\test.html などの絶対パ...

MySQL FAQ シリーズ: ibdata1 ファイルのサイズが突然増加しないようにする方法

0. はじめにibdata1 ファイルとは何ですか? ibdata1 は、innodb システム テ...

KTLツールはMySQLからMySQLへのデータの同期方法を実現します

ktl ツールを使用して、mysql から mysql にデータを同期します。 1. 新しいジョブス...

マウスのドラッグ効果を実現するJavaScript

この記事では、マウスドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...

Vue.js ドロップダウン コンポーネント付きテキストボックス

ドロップダウン付きのテキストボックスを使用すると、ユーザーはドロップダウン リストから入力を選択した...