teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

nginxの設定についてserver"ディレクティブ"の誤記を"ブロック"に修正、その他一部修正。

2025/05/31 09:08

投稿

dodox86
dodox86

スコア9380

answer CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  [ngx_http_headers_module - add_header](https://nginx.org/en/docs/http/ngx_http_headers_module.html#add_header)
9
9
 
10
- 端的に回答すると、nginx.confの`server_name`ディレクティブに設定した内容がcurlコマンドでリクエストするときのホスト名と一致していないようで、その為に`server`ディレクティブ中に指定した`add_header`の設定内容が適用されていないように思えます。
10
+ 端的に回答すると、nginx.confの`server_name`ディレクティブに設定した内容がcurlコマンドでリクエストするときのホスト名と一致していないようで、その為に`server`ブロック中に指定した`add_header`の設定内容が適用されていないように思えます。
11
11
 
12
12
  ドメイン名が仮に"xxxxx"だとして、`server_name`の指定が`*.xxxxx`だと、curlコマンド実行時のコマンドラインオプション `curl -I https://xxxxxx` はマッチしません。加えて書くと、質問文中のnginx.confの指定だと"x"が5つ、curlコマンドの実行時の指定は"x"が6つになっていますね。これは質問投稿時に誤って記載したのかもしれませんが、以下、誤解を避ける為にドメイン名は"example.com"として記載します。
13
13
 
@@ -21,8 +21,7 @@
21
21
  ```
22
22
 
23
23
  この指定だと curlコマンドの指定時、`https://www.example.com/`や`https://host1.example.com/`等、ドメイン名の前にホスト名がついた形式でないとマッチしません。
24
- 質問者さんが恐らく望んでいるであろうドメイン名のみでの指定、`https://example.com/`でのアクセスでもマッチさせるようにするには、`server_name *.example.com;`
24
+ 質問者さんが恐らく望んでいるであろうドメイン名のみでの指定、`https://example.com/`でのアクセスでもマッチさせるようにするには、`server_name *.example.com;`ではなく`server_name .example.com;`とのように指定します。
25
- ではなく`server_name .example.com;`とのように指定します。
26
25
 
27
26
  [ngx_http_core_module - server_name](https://nginx.org/en/docs/http/ngx_http_core_module.html#server_name)
28
27
 
@@ -42,4 +41,4 @@
42
41
  server_name example.com;
43
42
  }
44
43
  ```
45
- 少なくとも上記回答は言えているはずですが、それに加えてhttp(listen 80)の方の設定や`server`ディレクティ複数存在したりるのであれば、それらにも注意してみてください。特に質問者さんの環境ではDrupalの運用を踏まえているご様子なので、もっと複雑な原因もあるかもしれません。
44
+ 少なくとも上記回答は言えているはずですが、それに加えてhttp(listen 80)の方の設定やバーチャルサーバーを複数設定する為に`server`ブロックを複数定義したりしているのであれば、それらにも注意してみてください。特に質問者さんの環境ではDrupalの運用を踏まえているご様子なので、もっと複雑な原因もあるかもしれません。