[解決済み] Nginxのサブドメイン設定
2023-06-29 12:55:17
質問
nginx が apache のリバースプロキシとして動作しています。新しいサブドメインを追加する必要があります。 を追加する必要がありますが、同時に、デフォルトのホストにあるすべてのlocationとproxy_passディレクティブをサブドメインにも適用させたいと考えています。
デフォルトのホストから新しいサブドメインにルールをコピーすれば動作することは分かっていますが、サブドメインにルールを継承させる方法はあるでしょうか? 以下は設定例です。
server {
listen 80;
server_name www.somesite.com;
access_log logs/access.log;
error_log logs/error.log error;
location /mvc {
proxy_pass http://localhost:8080/mvc;
}
location /assets {
alias /var/www/html/assets;
expires max;
}
... a lot more locations
}
server {
listen 80;
server_name subdomain.somesite.com;
location / {
root /var/www/some_dir;
index index.html index.htm;
}
}
ありがとうございます。
どのように解決するのですか?
共通部分を別の設定ファイルに移動して
include
を両方のサーバーコンテキストから呼び出すことができます。これでうまくいくはずです。
server {
listen 80;
server_name server1.example;
...
include /etc/nginx/include.d/your-common-stuff.conf;
}
server {
listen 80;
server_name another-one.example;
...
include /etc/nginx/include.d/your-common-stuff.conf;
}
編集:これは実際に私の実行中のサーバーからコピーされた例です。私は基本的なサーバーの設定を
/etc/nginx/sites-enabled
で設定しています (Ubuntu/Debian の nginx では普通のことです)。例えば、私のメインサーバは
bunkus.org
のコンフィギュレーションファイルは
/etc/nginx/sites-enabled
で、このようになっています。
server {
listen 80 default_server;
listen [2a01:4f8:120:3105::101:1]:80 default_server;
include /etc/nginx/include.d/all-common;
include /etc/nginx/include.d/bunkus.org-common;
include /etc/nginx/include.d/bunkus.org-80;
}
server {
listen 443 default_server;
listen [2a01:4f8:120:3105::101:1]:443 default_server;
include /etc/nginx/include.d/all-common;
include /etc/nginx/include.d/ssl-common;
include /etc/nginx/include.d/bunkus.org-common;
include /etc/nginx/include.d/bunkus.org-443;
}
例として、ここでは
/etc/nginx/include.d/all-common
の両方からインクルードされたファイルです。
server
の両方のコンテキストからインクルードされます。
index index.html index.htm index.php .dirindex.php;
try_files $uri $uri/ =404;
location ~ /\.ht {
deny all;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location ~ /(README|ChangeLog)$ {
types { }
default_type text/plain;
}
関連
-
[解決済み】Docker Nginxが停止しました。[emerg] 1#1: ホストがアップストリームで見つかりません。
-
Nginxエージェントのリソース: net::ERR_NAME_NOT_RESOLVED の読み込みに失敗しました。
-
[解決済み] Node.js + Nginx - 今度は何?
-
[解決済み] サブドメインとドメイン間でCookieを共有する
-
[解決済み】Nginxのロケーション優先順位
-
[解決済み] nginx が空白の PHP ページを表示する
-
[解決済み] nginxです。[emerg] "server" ディレクティブはここでは許可されません。
-
[解決済み] nginx server_name ワイルドカードまたはキャッチオール
-
[解決済み] nginxでproxy_passを使用しているときに応答ヘッダを追加するには?
-
[解決済み] Nginxが起動しない(アドレスが既に使用中)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「設定ファイル/etc/nginx/nginx.confのテストに失敗しました」。この原因を知るにはどうしたらいいですか?
-
[解決済み] nginxのエラー "conflicting server name "を無視する [終了しました]。
-
NginxのRequest Entity Too Largeの解決法
-
Nginxのエラー処理方法:0.0.0.0:80へのbind()に失敗する
-
[解決済み] Dockerコンテナの中から、マシンのローカルホストに接続するにはどうすればよいですか?
-
[解決済み】nginxのsites-availableディレクトリが見つからない。
-
[解決済み] nginx.confを編集してファイルサイズのアップロードを増やす方法
-
[解決済み] Nginx 同一IPで異なるドメイン
-
[解決済み] アップストリーム/ダウンストリームの用語が逆に使われている?(例: nginx)
-
[解決済み] 既存のすべての静的ファイルをNGINXで直接提供し、残りをバックエンドサーバーにプロキシする方法。