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

例えばマシン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

【Docker】Ghostのバージョンアップデート

Docker上で動作させているGhostのバージョンアップ方法について セルフホストでGhostを運用しているとバージョンアップしたいときあると思います。 本記事ではdocker-compose.ymlで「ghost:latest」となっていることが前提です。 services: ghost: image: ghost:latest 先ずは現在のバージョンを確認 docker exec -it <コンテナ名> ghost version 自分の場合は「ghost」としているため↓ docker exec -it ghost ghost version これで現在はバージョンが5.118.1となっていることが分かります。 次に最新バージョンの Ghost イメージをダウンロードします。 docker pull ghost:latest ダウンロードができたらコンテナを停止させて起動させます。 ちゃんとvolumes:で永続化していればデータは消えないので安心してください! docker compose down docker compos

By 管理者

【雑談】最近買ってよかった物1

出だしから変ではありますが最近、UGREEN NASync DXP2800を購入しました。すごく使い勝手が良くて気に入っています。 NASもおすすめではありますがNASについては別の記事にて書こうと思っています。 今回は、NASを物置というか押し入れの中に入れようと思い、NASを接続するLANケーブルを購入したのでそちらを紹介します。 Amazon.co.jp: ミヨシ MCO LANケーブル CAT6A 対応 爪が折れにくいカバー フラットタイプ 10m cat6a cat6 cat5e 対応 RJ-45 10Gbps/500MHz ゲーム テレビ 各光回線に対応 ホワイト ZC6A-F10WH : パソコン・周辺機器Amazon.co.jp: ミヨシ MCO LANケーブル CAT6A 対応 爪が折れにくいカバー フラットタイプ 10m cat6a cat6 cat5e 対応 RJ-45 10Gbps/

By 管理者

【PowerShell】コマンドプロンプトからPowerShellを管理者権限で実行するコマンド

コマンドプロンプトからPowerShellを管理者権限で実行するコマンドを紹介します。 コマンドは同じですが実行方法は2パターンあります。 1. コマンドプロンプトを管理者権限で実行している場合 2. コマンドプロンプトを管理者権限で実行していない場合 1. コマンドプロンプトを管理者権限で実行している場合 こちらの場合はコマンドプロンプトからコマンド実行後に直接PowerShellが起動します。 2. コマンドプロンプトを管理者権限で実行していない場合 こちらの場合はコマンドプロンプトからコマンド実行後に「ユーザーアカウント制御」が表示され、「はい」を選択後にPowerShellが起動します。 コマンドプロンプトから管理者権限でPowerShellを実行するコマンドは以下です。 powershell start-process powershell.exe -verb runas PowerShellが起動できたはずです。 PowerShellのウインドウに「管理者:Windows PowerShell」と表示されているはずです。 因みにコマンドプロンプトから一般のユー

By 管理者

【PowerShell】OS情報を取得するコマンド

PowerShellを開いて下記のコマンドを入力して実行 (Get-WmiObject Win32_OperatingSystem).Caption 画像の様にOS情報が表示されます。 ビルド番号を取得 レジストリ「HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion」の「DisplayVersion」にビルド番号が格納されている。 下記コマンドを実行することで取得できます。変数に入れていますが入れなくてもよい。 $RegPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" $RegKey = "DisplayVersion" (Get-ItemProperty $RegPath -name $RegKey -ErrorAction SilentlyContinue).$RegKey 24H2と表示されていますね! ただ単純に目視で確認したいときにはwindowsキーを押して「winver」と入力して開いてみてください。

By 管理者