お世話になります
nginx version: nginx/1.17.7
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
built with OpenSSL 1.1.1c 28 May 2019 (running with OpenSSL 1.1.1d 10 Sep 2019)
TLS SNI support enabled
NginxでIP直打ちのアクセスを「活用」したいのですが
IP直打ち「拒否」の記事は山ほど出てくるのですが、ドメインと同じに扱いたいという記事が見当たらず
質問させていただきます
まず、nginxはapacheとは違いhttpd.conf等で一括管理ではなく
ドメインごとにコンフィグファイルを分けるという認識です
/etc/nginx/conf.d/[ドメイン]_http.conf
/etc/nginx/conf.d/[ドメイン]_ssl.conf
今回はドメインではないので該当部分にサーバIPを記載しました
vi /etc/nginx/conf.d/[サーバIP]_http.conf
1 #======================================= 2 # [サーバIP] 3 #--------------------------------------- 4 5 server { 6 listen 80; 7 server_name [サーバIP]; 12 charset UTF-8; 13 client_max_body_size 16M; 14 root /home/test; 15 index index.php index.html index.htm; 16 }
これにて
sudo nginx -s reload
を行い、IPでアクセスしてみましたが期待するフォルダ「/home/test」ではなく
別のドメインで設定している階層が表示されてしまいました
普段使っているのがapacheなので勝手がわからず
IPアクセスを活用するにはどういう設定が正しいのでしょうか
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
ベストアンサー
以下の構成を実験的に作りました。
この環境では、http://localhost および http://127.0.0.1 でアクセスした場合、期待する通りserver_nameで指定した設定のそれぞれのディレクトリのindex.htmlを参照できました。
[root@localhost conf.d]# [root@localhost conf.d]# pwd /etc/nginx/conf.d [root@localhost conf.d]# [root@localhost conf.d]# ls -l 合計 12 -rw-r--r--. 1 root root 170 5月 13 15:31 127.0.0.1.conf -rw-r--r--. 1 root root 1072 4月 21 01:07 default.conf.org -rw-r--r--. 1 root root 170 5月 13 15:31 localhost.conf [root@localhost conf.d]# [root@localhost conf.d]# cat 127.0.0.1.conf server { listen 80; server_name 127.0.0.1; location / { root /usr/share/nginx/html.127.0.0.1; index index.html index.htm; } } [root@localhost conf.d]# [root@localhost conf.d]# cat localhost.conf server { listen 80; server_name localhost; location / { root /usr/share/nginx/html.localhost; index index.html index.htm; } } [root@localhost conf.d]# [root@localhost conf.d]# ls -l /usr/share/nginx/html.127.0.0.1 合計 4 -rw-r--r--. 1 root root 71 5月 13 15:22 index.html [root@localhost conf.d]# [root@localhost conf.d]# cat /usr/share/nginx/html.127.0.0.1/index.html <!DOCTYPE html> <html> <head> </head> <body> 127.0.0.1 </body> </html> [root@localhost conf.d]# [root@localhost conf.d]# ls -l /usr/share/nginx/html.localhost/ 合計 4 -rw-r--r--. 1 root root 71 5月 13 15:22 index.html [root@localhost conf.d]# [root@localhost conf.d]# cat /usr/share/nginx/html.localhost/index.html <!DOCTYPE html> <html> <head> </head> <body> localhost </body> </html> [root@localhost conf.d]# [root@localhost conf.d]#
投稿2021/05/13 06:42
総合スコア2751
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/05/13 07:51
2021/05/13 09:28
退会済みユーザー
2021/05/13 10:42
退会済みユーザー
2021/05/16 22:44
2021/05/17 01:27
0
###この回答は身銭を切って実際に3年半稼働させてるVPSでの実体験に基づくものです
VPS+nginx+KUSANAGIで構築する場合、特別に何かしなくても初期設定のままでIPでのアクセスおよびWPサイトの運用が可能です。複数のWPサイトを立ち上げても問題は起きてません。同じサーバーにECサイトもありますがこちらも問題ありませんでした。※WP以外でも大丈夫だったということです。
###公式を軽視しているとのご指摘をいただきましたが…
nginxの初期ファイルのままの記述ですので、開発者が記述していると想定いたします。
開発者が用意してくれているファイルをそのまま使うことがなぜ公式軽視になるのか理解できません。
むしろリスペクトしてますよ。
###KUSANAGIのprovisionにて例:_aaaとすると優先順位が変わるとのご指摘をいただきましたが…
KUSANAGIのprovisionでWPサイトを構築する際はドメイン名(例:teratail)で作成すると、フォルダが自動作成される際に/teratailという名称が付くため分かり易く、複数サイトを作成しても管理し易いです。
尚、ドメイン名にアンダースコアを含めることは非推奨です。
念の為確認しましたがドメイン自体を取得できませんでした。※使えない文字があると出る
アンダースコアを先頭にしてプロファイルを構成しちゃうような人は、余程の変わり者かそれなりに知識がある人だと思いますので、やはりこの回答の対象外となります。そこまで面倒見ません。
あくまでも常識の範囲内の方を対象としています。お疲れさまでした。
※最終追記2021/05/19 AM 9:02追記分迄、さすがに不毛すぎるためこれ以上は面倒見切れません。
追記 「マッチしないから既定値を返す。それを利用したコメントみたいなもん」
こう解釈してるんだけどサーバーサイド専門の人はこれでハマったことがあるのかな?
もしあるなら実例を教えて欲しい。特に困ったことが無いから否定される理由が腑に落ちない。
本当に問題があるのであればレンタルサーバーを運営している会社に修正依頼する。通るか知らんけど。
※僕がここで使った『問題』とは「セキュリティホール」を指してます。
※追記の追記:最低限rootのSSH接続だけでも不可にしておきましょう。
※初期状態のままだとクラッカーホイホイになります。
以下 難しいことを考えたくない人だけ参考にしていただければと思います。※セキュリティは別だよ!
何かの足しになるかどうかわからないけども、記しておきますね。
以下IP叩くとアクセスできるレンタルサーバー(VPS)のnginxのhttp.confです。
※etc/nginx/conf.dの中にあります。
conf
1server { 2 listen 80; 3 server_name default_server; 4 5 location / { 6 root /usr/share/nginx/html; 7 index index.html index.htm; 8 } 9 10 50x系を省略 11 アクセス許可設定も省略 12 13} 14
以下蛇足です。
IP直打ち禁止してないので、僕の借りてるVPSはIP直打ちするとnginxのデフォルトhtmlが表示されます。
※IPでアクセスしてくる変わり者へのメッセージは載せてますが…
※あぁ、だから外国からの問い合わせが多いのかぁ…謎が解けたっ
※英語で挨拶文と手持ちサイトへの案内を載せてるのです(一個リンク切れだった)
投稿2021/05/14 07:55
編集2021/05/19 00:11退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/05/15 00:30
退会済みユーザー
2021/05/15 03:26
退会済みユーザー
2021/05/15 20:18 編集
退会済みユーザー
2021/05/16 02:47
退会済みユーザー
2021/05/16 04:34
退会済みユーザー
2021/05/16 06:41
退会済みユーザー
2021/05/16 07:23
退会済みユーザー
2021/05/16 09:59
退会済みユーザー
2021/05/16 22:50
退会済みユーザー
2021/05/16 23:28
2021/05/17 01:22
退会済みユーザー
2021/05/17 04:44
2021/05/17 05:34 編集
退会済みユーザー
2021/05/17 06:12
退会済みユーザー
2021/05/17 11:27
退会済みユーザー
2021/05/18 05:20
退会済みユーザー
2021/05/18 08:11
退会済みユーザー
2021/05/18 09:10
退会済みユーザー
2021/05/18 09:33
退会済みユーザー
2021/05/18 10:35
退会済みユーザー
2021/05/18 11:10
退会済みユーザー
2021/05/18 11:56
退会済みユーザー
2021/05/18 12:11 編集
退会済みユーザー
2021/05/18 12:46
退会済みユーザー
2021/05/18 13:09
退会済みユーザー
2021/05/18 13:20
退会済みユーザー
2021/05/18 21:06
退会済みユーザー
2021/05/18 23:46
退会済みユーザー
2021/05/19 00:00
2021/05/19 00:11
2021/05/19 00:17 編集
0
公式に記述があります。
Mixed name-based and IP-based virtual servers
server_name は必須では無いようです。
nginx without server_name and using only static ip address?
追記
うーん。この回答はあまりよくないですね^^;
ip アドレスでのアクセスを default_server で捌く回答なのですけど、場合によっては当然 ip アドレス以外も default_server に流れてしまいます。
で、私の回答の延長線では、それは回避できません。
やはり yukky1201 さんの回答(というか、tesopgmh さんが動かないといった質問の設定)のように、server_name に ip アドレスを記述してあげるのが挙動制御が正確にできそうです。
投稿2021/05/13 04:39
編集2021/05/19 08:49退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/05/17 05:33 編集
退会済みユーザー
2021/05/16 22:46
2021/05/17 01:23
0
まず、nginxはapacheとは違いhttpd.conf等で一括管理ではなく
ドメインごとにコンフィグファイルを分けるという認識です
この認識自体がおかしいかなと思います。nginxが直接読み込む大本の設定ファイルが存在して、それがconf.d
以下の設定を呼び出しています。
全体のサーバ設定がその大本の側にある場合、conf.d
に書いてもうまく適用されないことが考えられます。
投稿2021/05/13 04:14
総合スコア145930
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。