【nginx】SSL対応リバースプロキシ設定

Nginxアイコン

例えばマシンAのnginxからマシンB、マシンCで動作しているサービスにリバースプロキシしたいときに利用できます。

環境

ubuntuを想定しています、nginxのインストール作業の記載は省略します。

ドメイン名を取得していて、Let's EncryptでSSL証明書を取得していることが前提です。

ドメインを取得していない方はMyDNSなどで無料で取得してみてください。

マシンB、マシンCはIPアドレスで可能です。


以下設定でできること

・マシンAのtest1.comからマシンBの8080サービスへ

・マシンAのtest2.comからマシンCの8080サービスへ

・マシンAに80番ポートで入ってくるものを443に変更


マシンAのnginx

ファイル1

■/etc/nginx/nginx.conf

user www-data;
worker_processes 4;
pid /run/nginx.pid;

events {
  worker_connections 1024;
}

http {
  sendfile on;
  tcp_nopush on;
  tcp_nodelay on;
  keepalive_timeout 65;
  types_hash_max_size 2048;

  include /etc/nginx/mime.types;
  default_type application/octet-stream;

  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;

  gzip on;
  gzip_disable "msie6";

  include /etc/nginx/conf.d/*.conf;
}

ファイル2

■/etc/nginx/conf.d/node.conf

# HTTP → HTTPSリダイレクト
server {
    listen 80;
    server_name ドメイン名A.jp ドメイン名B.jp;
    return 301 https://$host$request_uri;
}

# ドメイン名A.jp
server {
    listen 443 ssl;
    server_name ドメイン名A.jp;

    ssl_certificate /etc/letsencrypt/live/ドメイン名A.jp/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ドメイン名A.jp/privkey.pem;

    location / {
        proxy_pass http://マシンBのIPアドレス:8080;
        proxy_set_header Host $host;
        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;
    }
}

# ドメイン名B.jp
server {
    listen 443 ssl;
    server_name ドメイン名B.jp;

    ssl_certificate /etc/letsencrypt/live/ドメイン名B.jp/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ドメイン名B.jp/privkey.pem;

    location / {
        proxy_pass http://マシンCのIPアドレス:8080;
        proxy_set_header Host $host;
        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;
    }
}

解説

見やすいように2つのファイルに別けて記述しています。

ファイル1の「/etc/nginx/nginx.conf」でファイル2の「/etc/nginx/conf.d/node.conf」を読み込むようにしています。

設定完了後

設定ファイルを記載して保存が完了後にngiunxをリスタートして設定を反映してください。

※エラーがでたら原因を調べてみてください。大体は記述ミスだと思います。

nginxの再起動

3回実行!

sudo systemctl restart nginx

sudo systemctl restart nginx

sudo systemctl restart nginx

3回くらい繰り返し実行してください!1回だけだとファイル読み込みが完全にされないためか、反映されないため沼ります。

Read more

【資産運用】PayPay ポイント運用を約1年と数カ月続けた結果を公開

物価高の昨今ですが、皆さんは投資していますでしょうか。 投資といっても様々あり リスクが高くリターンが高い投資やリスクが低くリターンも低い投資があります。 銀行に自身のお金を預けていても、銀行側も預かっているお金で融資をしたりしているので資産運用しているとも言えます。 ですが銀行に預けていても金利が低くなかなかお金が増えません。 そこでリスクは低く、リターンもそこそこあるPayPay ポイント運用を約1年間続けた結果を公開します。 なぜリスクが低いか PayPayポイント運用とは、日常の買い物などで貯まるPayPayから付与されたポイントを利用して投資が可能となります。 そのため買い物の中で還元されたポイントのみが運用で上下するため元手となる資金は必要ないような運用となります。 いつでも引き出しが可能です。利用したくなることがあればすぐにポイントを引き出せます。 参考 【FP監修】PayPayポイント運用をやってみよう!初心者が意識したい5つのコツも紹介 - PayPay本記事では、PayPayポイント運用とは何か、初心者が意識したい5つのコツなどを紹

By 管理者

「AdGuard Home」で広告ブロックのフィルターを設定する方法(LINEの広告のブロック方法も紹介)

前回の記事でUGREEN NASのDocker上でAdGuard Homeを構築するまでを紹介しました。 まだ見ていない方はこちら↓ UGREEN NASのDockerで「AdGuard Home」を稼働させて広告ブロックする方法本記事を見に来た方にAdGuard Homeの説明は不要かと思いますので省きます。 とにかくネットワークレベルで広告をブロックしたいと思っていて、自宅にNASサーバーを24時間稼働させている方が見に来られているかと思います。 Raspberry Pi(ラズパイ)でも同じことが実現可能です。 自宅のその辺に転がっているラズパイでも試してみてください。 本記事ではUGREEN NAS(DXP2800)のDockerで構築して動作させています。 利用するDockerイメージ https://hub.docker.com/r/adguard/adguardhome Dockerイメージダウンロード UGREEN NASのDockerの「イメージ」>「イメージリポジトリ」の検索欄からadguardhomeと検索して、 上記のDockerイメージと同じ物(検索して一番

By 管理者

UGREEN NASのDockerで「AdGuard Home」を稼働させて広告ブロックする方法

本記事を見に来た方にAdGuard Homeの説明は不要かと思いますので省きます。 とにかくネットワークレベルで広告をブロックしたいと思っていて、自宅にNASサーバーを24時間稼働させている方が見に来られているかと思います。 Raspberry Pi(ラズパイ)でも同じことが実現可能です。 自宅のその辺に転がっているラズパイでも試してみてください。 本記事ではUGREEN NAS(DXP2800)のDockerで構築して動作させています。 利用するDockerイメージ https://hub.docker.com/r/adguard/adguardhome Dockerイメージダウンロード UGREEN NASのDockerの「イメージ」>「イメージリポジトリ」の検索欄からadguardhomeと検索して、 上記のDockerイメージと同じ物(検索して一番上にあるもの)をダウンロードします。 コンテナ作成 次に「コンテナ」>「作成」からイメージを選択で先程ダウンロードしたイメージを選択してください。 コンテナの編集 コンテナ名は自由に分か

By 管理者

【PowerShell】ローカルアカウントのコマンドのみでドメインアカウントのコマンドプロンプトと管理者権限付きのPowerShellを開く方法

Windowsのローカルアカウントからドメインアカウントでコマンド操作をしたい場合は、 基本的にはローカルアカウントを一度サインアウトをしてから ログイン画面で「他のユーザー」からドメインアカウントへ切り替えが必要となります。 そのログイン切り替えが面倒くさいため、 ローカルアカウントからサインアウトせずにコマンドのみでドメインアカウントのコマンド操作できるPowerShell実行方法を掲載します。 ドメインアカウントに管理者権限を付与 ローカルアカウトでコマンドプロンプトを管理者権限で開きます。(PowerShellも可) 以下コマンドでドメインアカウントを管理者グループに追加しておきます。 ※「アカウントID」箇所を自身の使うアカウントに書き換えしてください。 net localgroup administrators アカウントID /add ドメインアカウントのコマンドプロンプトを開く ※「ドメイン名」と「アカウントID」箇所を自身の使うドメインとアカウントに書き換えしてください。 パスワードが求められたらドメインアカウントのパスワードを入

By 管理者