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

Nginxアイコン

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

ubuntuを想定、インストール作業は省きます。

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

MyDNSなどで無料で取得してみてください。

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


以下設定でできること

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

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

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


マシンAのnginx

■/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;
}

■/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;
    }
}

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

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

sudo systemctl restart nginx

sudo systemctl restart nginx

sudo systemctl restart nginx

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

Read more

【PowerShell】ファイル名が連番の複数テキストファイルの中身を一度に表示させるコマンド「Get-Content」(for文を利用)

仕事などで大量に送られてきたテキストファイル(証跡など中身を確認しないといけないテキスト)を確認するようなこと稀にありますよね。 今回はそのテキストファイルの中身をPowerShellコマンドで一度に表示する方法をご紹介します。 後半ではテキストファイル内の特定の文字列のみを表示する方法も記載してますので、少しでも需要があればと思っています。 前提 テキストファイルのファイル名が「文字列+連番.txt」などになっていることが理想的です。 「文字列+連番+文字列.txt」のように文字列の間が連番となっていても可能です。 今回の例ではCドライブにtestディレクトリを作成しています。 「C:\test」で実行していますのでご自身の環境に合わせて書き換えてください。 ファイル名:file1.txt ~ file10.txt テキストの中身には「file1」~「file10」と記載しています。 例:「文字列 + 連番.txt」の中身表示 10個連番のテキストファイルの中身を表示します。 ※ファイル数が多い場合は1行目の黄色い箇所の数字を変更してください。 「for

By 管理者

UGREEN NASのDockerで「Tailscale」接続をする方法

UGREEN NAS(DXP2800)を自宅で稼働させています。 外部からTailscaleで接続を実現させたり、 VPNを借りて、VPNでhttp/https接続されたものをTailscale経由で自宅のUGREEN NAS(DXP2800)にリバースプロキシを実現させたく思いました。 ※今回の記事ではUGREEN NAS(DXP2800)のみの設定を記載しています。 UGREEN NAS(DXP2800)のDocker上で「Tailscale」に接続する方法を紹介します。 Tailscaleアカウント作成 先ずは「Tailscale」のアカウントを作成しておいてください。 Tailscale · Best VPN Service for Secure NetworksSecurely connect to anything on the internet with Tailscale. Deploy a WireGuard®-based VPN to achieve point-to-point connectivity that

By 管理者

【n8n】n8nからLINEのbot(Messaging API)でメッセージを送る方法

n8nからLINEのbotにメッセージを送る方法を掲載します。 LINE DevelopersでMessaging APIのアカウントを作成しておいてください。 LINE DevelopersLINE Developersサイトは開発者向けのポータルサイトです。LINEプラットフォームのさまざまな開発者向けプロダクトを利用するための、管理ツールやドキュメントを利用できます。LINEログインやMessaging APIを活用して、アプリやサービスをもっと便利に。LINE Developers n8nで使うノードは「HTTP Request」になります。 HTTP RequestのParametersを設定します。 Method:POST URL:https://api.line.me/v2/bot/message/push Authentication:None Send Query Parameters:オフ Send Headers:オン Specify Headers:Using JSON JSON { "Authorization": "Bearer

By 管理者

【統合版】ポート開放なし!自宅サーバーでマイクラサーバーをDockerで立てて外部公開する方法「playit.gg」利用

24時間稼働させているNASサーバーがありDockerを動かせるのでマイクラ統合版のサーバーの立て方を記載します。 自分のネットワーク環境がJCOMとなり、ポート開放ができないため「playit.gg」というサービスを利用します。(※2025/05時点で無料プランがあるため無料で利用できます。) 公式ページのFreeという箇所をご自身で確認してみてください。 playit.ggplayit.gg 「playit.gg」もDockerで動作させて接続が可能となります。 マインクラフト統合版のサーバーをDockerで動作させる。 公式のDockerイメージを利用してサーバーを起動させます。 https://hub.docker.com/r/itzg/minecraft-bedrock-server 私の持っているNAS(UGREEN DPX2800)ではDocker構築が簡単にできるため詳細な記述方法などは省略します。 ネットワークモード:host ポート番号:19132 にしてゲームモードや難易度はお好みで設定して起動させてみてください。 playit.gg

By 管理者