Nginxのリバースプロキシ設定ファイル解説【Ask_AI】
Nginxの設定ファイル(nginx.conf)から、リバースプロキシの心臓部にあたる設定を抜き出して説明しますね!💡
このファイルには、主に「外からのアクセスを交通整理する部分」と「実際にSearXNGへ転送する部分」が書かれています。
—
リバースプロキシの主役:転送設定 (proxy_pass)
これがリバースプロキシの仕組みそのものを表している一番重要な部分です。
location / { proxy_pass http://127.0.0.1:8080; }location /: 「このサイトのすべてのURL(/)にアクセスが来たら」という意味です。
proxy_pass http://127.0.0.1:8080;: 「中身は、VPSの内部(127.0.0.1=自分自身)の 8080ポート で動いているSearXNGにそのまま丸投げしてね!」という命令です。
これで、外からは安全なHTTPS(443ポート)でアクセスしつつ、裏側ではこっそり8080ポートのSearXNGに繋がるようになります。
—
「元々の訪問者は誰?」を伝えるヘッダー設定 (proxy_set_header)
そのまま転送すると、SearXNG側から見れば「全部Nginx(身内)からアクセスが来ている」ように見えてしまい、本来のアクセス元の情報が消えてしまいます。そこで、以下のように「本来の送り主」の情報を書き添えて(ヘッダーにセットして)SearXNGにパスしています。
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;X-Real-IP $remote_addr: 実際にアクセスしてきた〇〇さんの本来のIPアドレスをSearXNGに教えます。
X-Forwarded-Proto $scheme: 外からは「HTTPS(暗号化通信)」でアクセスしてきたよ、という安全な通信であることをSearXNGに伝えます。—
IPアドレス制限 (allow / deny)
今回の設定には、関係のない第三者からSearXNGを使われないようにするための「受付のセキュリティチェック」がしっかり入っています。
allow xxx.xxx.xxx.xxx; # OpenClaw allow 127.0.0.1; # localhost allow ::1; # localhost IPv6 deny all;allow [IPアドレス];: 私(OpenClawのいるサーバー)と、VPS自身(ローカルホスト)からのアクセスだけを通します。
deny all;: それ以外の怪しい通信や第三者からのアクセスは、Nginxの時点で「お断り!」と一刀両断して追い返します。SearXNGのプログラムまで到達させないため、非常に安全です。
通信をスムーズにする微調整
# WebSocket support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # Disable buffering proxy_buffering off;WebSocket対応: 検索結果をリアルタイムでやり取りしたり、高度な通信を維持できるようにするための設定です。
proxy_buffering off;: NginxがSearXNGから受け取ったデータを、手元に溜め込まずに「出来上がった部分から順次、超高速でユーザーに送り届ける」ための設定です。これにより、体感速度が向上します。—
HTTPからHTTPSへの自動リダイレクト(下部のブロック)
server { listen 80; server_name search.example.com; if ($host = search.example.com) { return 301 https://$host$request_uri; } }もし〇〇さんが、うっかり暗号化されていない http://… (80番ポート)でアクセスしてきても、Nginxが「危ないから暗号化された https://… に行きなさい!」と、自動で安全な道(301リダイレクト)に誘導してくれます。
—
まとめ
この設定ファイルのおかげで、
暗号化された安全なルートでアクセスを受け取り (HTTPS)
関係ない人を入り口で門前払いし (allow/deny)
安全なローカルポート(8080)で動くSearXNGへバトンタッチする (proxy_pass)
という流れが綺麗に実現されています。この記述があるからこそ、SearXNGが本来の力を安全に発揮できているんです。設定ファイルを見ながらだと、受付係の動きがよりリアルにイメージできますよね!✨

