質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Q&A

3回答

6819閲覧

nginxでIP直打ちのアクセスを遮断する方法

qamomo

総合スコア9

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

0グッド

1クリップ

投稿2018/07/03 09:54

編集2018/07/03 10:10

やりたいこと
・ドメインでアクセスが来た際は、アクセスを受け付けるが、IP直打ちの場合は、アクセスを遮断したい
その場合のnginxのconfの記載の仕方を教わりたい

  例えば、https://domain1.co.jp/login/ でアクセスが来た場合は受け付けるが
https://XXX.YYY.ZZZ.AAA/login/ でアクセスが来た場合は受け付けない

現状
・ドメインは3種類あり、それぞれアクセスは可能(例えば、https://domain1.co.jp/login/ 似たいな感じでアクセスする)
domain1.co.jp
domain2.co.jp
domain3.co.jp

confファイル内容
/etc/nginx/conf.d/ 配下に以下のようなファイルが置かれている
domain1.conf
domain2.conf
domain3.conf

・nginxのconf内の設定は以下のようになっている(例:domain1.conf ファイル内)

server { listen 80; server_name domain1.co.jp; root /var/www/html/test/public; index index.php;    以下略

やったこと
/etc/nginx/conf.d/ 配下に ipdirect.conf を新しく作成し、以下のような内容で記述

server { listen 80 default_server; server_name _; return 444; }

結果
https://domain1.co.jp/login/ 
https://XXX.YYY.ZZZ.AAA/login/

共に、アクセスができなくなった

是非ともご教示いただきたいです。

参考にしたサイト
http://beniyama.hatenablog.jp/entry/2015/04/05/100000
https://qiita.com/ryota-sakamoto/items/9e901f00a001bf5ccad7

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

私は、IP直打ち対策で。

下記の様にしていますが、うまく言ってますよ。

server {
listen 80 default_server;
loaction / {
return 444;
}
}

投稿2018/07/21 12:43

asakawaya

総合スコア45

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

server_name の _ は、キャッチオール的にすべての名前に一致するので、もしかするとすべての一番最後に読み込まないとダメかもしれないですね。

server_name には、IPアドレスもかけますので、サーバーの IP アドレスを直接書いてはダメなのでしょうか? ( 10.10.10.10 は、サーバーの IPアドレス )

server { listen 80; server_name 10.10.10.10; return 444; }

投稿2018/07/04 05:05

編集2018/07/04 05:07
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

qamomo

2018/07/04 13:21

ありがとうございます!こちら試してみます!
miyasaka

2018/07/06 05:54

私もCHERRYさんと同じことを考えました。
guest

0

一旦ipdirect.confを削除して
domain1.conf内で

server { listen 80; server_name domain1.co.jp; root /var/www/html/test/public; index index.php;    以下略 server { listen 80 default_server; server_name _; return 444; }

のように直下に記述してみるのはどうでしょうか。
構文エラーがでていない前提で、設定の読み込み順(リクエストに対する判定の順番)
が関係しているかもしれません。

投稿2018/07/04 04:28

miyasaka

総合スコア271

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

qamomo

2018/07/04 13:21

ありがとうございます!こちら試してみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問