Apache統合スレ 12 (HTTPServer以外も含む)

1DNS未登録さん2013/04/30(火) 15:46:01.12ID:???
HTTP ServerだけでなくAntやTomcatなどApache全般に関するスレだ!

■公式
Apache Software Foundation http://www.apache.org/

■HTTP Serverの最新Version
Apache/2.4.4
Apache/2.2.24
Apache/2.0.64

■前スレ
Apache統合スレ 11 (HTTPServer以外も含む)
http://engawa.2ch.net/test/read.cgi/mysv/1286137109/

487DNS未登録さん2017/09/26(火) 14:42:03.73ID:???
>>484
Webサーバでフロントエンドバックエンドっつったら実際にポート80とか443で待ち受ける方がフロントで(動的コンテンツを処理したりするために)UNIXソケットや80/443以外のポートでフロントから逆プロキシされる方がバックだろ
Apacheは動的コンテンツもmod_php/passenger/perlなんかで自前で処理出来るがnginxはphp-fpmやunicornとかのバックエンドアプリケーションサーバに全部投げて逆プロキシするだけ

クライアントサイドをフロント, サーバサイドをバックエンドと言うことは多いがそもそも文脈が全然違う
>>485の言う通り前面と後面と言う意味しかないんだから文脈で判断してくれ

488DNS未登録さん2017/09/26(火) 14:51:53.40ID:P3rgDx2E
サイトの構成の中で、フロントエンド、バックエンドという言葉が出て来ても、文脈で理解できるけど、適切な言葉では無いと思う。

俺的には、サイトサーバー、アプリケーションサーバーと言って欲しい。

一般的には、リバース・プロキシ、アプリケーションサーバーとかって表現されることが多い。

サイトサーバーの事をWebサーバーという人もいるけど、Webサーバーって意味広すぎ。

俺的には、サイトサーバーが、バーチャルホスト、リバースプロキシ、ロードバランスの機能のいづれかあるいは、その組み合わせで機能していると理解してる。

489DNS未登録さん2017/09/26(火) 15:02:48.82ID:???
>>487
そういう構成があるという意味では同意するけどそれをフロントエンド、バックエンドって呼んでる例は初めて聞いたわ

490DNS未登録さん2017/09/26(火) 16:05:46.29ID:P3rgDx2E
>>489
では、サイトの構成の中で80/443アクセスに応答するサーバーをなんと言う?
また、そのサーバーが受け取ったリクエストを実際処理するサーバーを何と言う?

491DNS未登録さん2017/09/26(火) 16:17:13.82ID:???
>>488
アプリケーションサーバはWeblogicなどのEJBサーバだろ

492DNS未登録さん2017/09/26(火) 17:51:53.33ID:???
>>490
Webサーバ / (Web)APIサーバ
って呼んじゃうな。前提とする構成が食い違っているのかもしれんが。

493DNS未登録さん2017/09/26(火) 18:25:20.50ID:???
>>492
フロントエンドでnginxが静的コンテンツを受け持ちバックエンドでApacheが動的コンテンツを処理するケースだとどっちもWebサーバで紛らわしいと思うが

494DNS未登録さん2017/09/27(水) 14:53:32.17ID:???
そしたら「フロント側のWebサーバ」とか「静的コンテンツ用Webサーバ」とか呼ぶかもしれないけど……
逆に聞きたいのは、もしそういう構成で、あるWebサーバのことを「フロントエンド」と呼ぶとしたら、htmlやCSSやJSのことをなんて呼んでるの?

495DNS未登録さん2017/09/27(水) 17:29:51.75ID:???
ここでいいのかな?
apache の SSL証明書とかの設定について質問
1IPアドレスに複数のドメインを立ち上げ、SSL証明書を使いたいんだが、
その証明書をつけたいのが1つだけの場合、どうしたらいい?
ドメイン1 example.com(こいつだけSSL証明書を有効にしたい)
ドメイン2 example.org(ポート80のみ有効)
ドメイン3 example.jp (同上)

ssl.conf
Listen 192.168.0.1:443
以下略

example.com.conf
<VirtualHost 192.168.0.1:80>
ServerName example.com
(443へリダイレクト設定)
</VirtualHost>
<VirtualHost 192.168.0.1:443>
ServerName example.com
SSLENgine on
証明書パス等設定、以下略
</VirtualHost>

example.org.conf
<VirtualHost 192.168.0.1:80>
ServerName example.org
設定略
</VirtualHost>

example.jp.conf (設定は同上)

こんな感じで設定してアクセスすると example.com は確かに証明書が効いてて
全く問題ないんだが、https://example.org/ とかにアクセスすると、証明書エラー
になって、それでも続行したらアドレスは変わらず証明書エラーのまま example.com のページが表示される
これを以下のどちらかで対応したい。
https://example.(org|jp)/ にアクセスがきたら
1.http://〜/ にリダイレクト
2.エラー表示

逆リダイレクト https → http の設定してみたんだが、証明書の設定がされてないぞってニュアンスのエラーが出てリダイレクトされない

1IP で複数証明書はいくつも出てくるが1つだけ有効にするってリファレンス見つけられんかった

496DNS未登録さん2017/09/27(水) 17:44:20.05ID:???
>>494
だから文脈に依るでしょ。
サーバを区別してフロントエンドバックエンド言ってる文脈ならアプリケーションはクライアントサイドサーバサイドと呼ぶ。
クライアントサイドとサーバサイドをフロントエンドバックエンド言うならサーバ側は(必要なら)Webサーバとアプリケーションサーバと言うわ。

497DNS未登録さん2017/09/27(水) 17:53:34.90ID:???
>>495
そもそもHTTPSで接続する時点でブラウザは秘匿通信を要求しているわけだから, 対応するサーバ証明書がない以上はブラウザ側がエラーとする(秘匿通信が出来ない)のは当然だ
どうしてもHTTPSからHTTPにエラーなしでリダイレクトしたいならきちんとサーバ証明書を用意するしかない
今ならLet's encryptとかあるんだし多少面倒でもやるしかない

4984952017/09/27(水) 18:38:25.76ID:???
>>497
レスありがとう
「対応するサーバ証明書が無い以上エラーは当然」確かにその通り
>>497 のアドバイスは (案1)の場合の対応策として了解だが、スマートな解決方法じゃない気がする
無料で取得、自動更新できるとはいえ必要ない HTTPS アクセスのために証明書用意するのも何か違う

案1への対応策がそれしかないのであれば「そもそも HTTPS はサービスしていない」と言う風にできるのか(案2)

HTTPS アクセスを有効にしていないサーバーに HTTPS でアクセスすると当然エラーになるが、それと同じ挙動がベスト
example.com http,https どちらもOK
example.org http OK https エラー (EDGE,IE だと [このページを表示できません])
example.jp http OK https (同上)
1つでもサーバ証明書を有効にしてたらそれに引きずられるのを何とかしたい

499DNS未登録さん2017/09/27(水) 18:46:51.99ID:???
>>498
サーバが404を返す前にTLSの処理が行われるんだからブラウザからHTTPSで要求する以上証明書エラーは避けられない
これはひとつ証明書を設定したからと言うわけではない
証明書が存在しないことがもうエラー

5004952017/09/27(水) 19:29:01.53ID:???
>>499
レスありがとう。勉強になるわ
これも言うことは理解できる。その通りだと思う
俺が Apache の挙動を深く理解していないのでアレなのだが、理想としてはドメイン毎に HTTPS のサービス有無を確認してエラーを出してほしい
wiki の SNI 見ただけだが、TLS ハンドシェイク時にドメイン名を平文で送ると書いてあるから、https を disable 設定した(もしくは https 未設定の)ドメインはその先の証明書選択分岐に進まず 404 なりのエラーを返すような動作にするような設定があるもんだと思ってた
ドメイン名で使う証明書変えることが可能なのであれば、証明書無いのはその先には進まない、と言う挙動は可能なはず
<VirtualHost _default_:443> で https 未設定のドメインは全部こちらへ!は、あるのにその逆みたいな https 未設定は全て 404エラー!みたいなのは無いのかな。

1IP複数ドメインで そのうちの一部だけ HTTPS 欲しいけど他のドメインにHTTPS いらないや、ってことあると思うんだけどみんなどうしてるんだろう

501DNS未登録さん2017/09/27(水) 19:43:20.44ID:???
>>500
通信をTLSにするのかどうかの決定権が完全にサーバにあればそれでよい
だがクライアントがHTTPSでリクエストする以上はクライアントが秘匿通信を望んでいるのであって, サーバが(証明書がないために)勝手に秘匿通信は行わないよと一方的に宣言するわけだ

これを許容するということはクライアントとサーバの間に中間者が割り入ってHTTPSを勝手にHTTPに置き換え, クライアントは知らないうちに暗号化されない通信をさせられるMITM攻撃が可能になるということだ
許容出来る話ではなかろう

TLSより下位のTCPレイヤで接続を拒否するという発想はあり得るが, ホスト名はHTTPに乗っているからやはりバーチャルホストでは適用出来ない

502DNS未登録さん2017/09/27(水) 19:45:42.89ID:???
ホスト名はSNIだからTLSに乗るか。
何れにしてもTCPより上位レイヤ

5034952017/09/28(木) 14:10:40.78ID:???
>>501 502
レスありがとう
Apache の設定で何とかなるというか、なぜそんな設定が無いのか疑問で仕方がなかったが、ちゃんと理由があって仕様上無理、って言われたら納得だわ
HTTPS が必要無いドメインについては 無料証明書使ってリダイレクトする 案1 で対応することにする
みんなありがとう

504DNS未登録さん2018/02/19(月) 21:17:26.04ID:???
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆

505DNS未登録さん2018/03/12(月) 19:30:02.17ID:db87Jd1F
VPSのセットアップを頼まれたんだが、Apacheは2.2と2.4どっちを入れたらいい?特に先方からの指定はない
OSはCentOS6、調べたら2.4もyumで入れられるが2.2がデフォのようだ
パスがhttpd24うんたらになって長くなったりするらしく2.4は使いにくいだろうか?

506DNS未登録さん2018/03/12(月) 19:56:22.96ID:???
2年半でサポ切れるCentOS6使う時点でダメ

507DNS未登録さん2018/03/12(月) 20:05:38.48ID:DuYCdHrS
6使ってる時点で2.4入れても焼け石に水だから、素直に2.2使っとけって事?
ちなみに頼まれた時点で6が入っていた

508DNS未登録さん2018/03/12(月) 20:22:20.05ID:???
好きにすればいいじゃん

509DNS未登録さん2018/03/12(月) 22:20:12.69ID:VNG1HBdO
【大統領】   Japは我々の家畜  <大イスラエル帝国>  安楽に暮らせる奴隷   【議定書】
http://rosie.5ch.net/test/read.cgi/liveplus/1520856333/l50

510DNS未登録さん2018/03/12(月) 23:18:11.80ID:???
1. CentOS7にアップグレードします
2. Apache2.4系を使います
これで完璧

511DNS未登録さん2018/03/13(火) 06:56:31.22ID:???
やっぱり2.4使いたければ7が前提なのか

512DNS未登録さん2018/03/13(火) 10:06:08.29ID:???
無知か

513DNS未登録さん2018/03/13(火) 10:07:00.20ID:???
穴だらけの設定w

514DNS未登録さん2018/03/13(火) 11:19:07.32ID:t12j8Ace
指定なしで保守まで頼まれてないのなら2.2でいいじゃん
2年後は危険ですよって一言伝えたら相手がどう出るかで対応考えれば

515DNS未登録さん2018/03/13(火) 16:41:03.15ID:???
レガシーなシステムにどうしても2.4載せろと言われたらDocker使うけど>>505はDocker知らなさそう

516DNS未登録さん2018/03/14(水) 17:37:51.03ID:???
質問失礼します。
どはまりしてしまいました。。
ブラウザから SSL 経由で php へのアクセスは正常に来て応答も正常に返るのですが、C# HttpWebRequest からのアクセスだけ空文字で返ってしまいます。
ログにアクセスした形跡はあるので、応答だけできていない状態です。
空文字が返ってきた時の C# HttpWebRequest のステータスは 200 でした。
どうやったら正常に返す事ができるのでしょうか。。
分かる方、よろしくお願いします。

CentOS release 6.9 (Final) 64bit redhat
apache2.4

5175162018/03/14(水) 21:28:44.31ID:jrMjDaPg
今もまだ調査中です。
色々試しているのですが、SSLを介さないでも起きてしまいます。
問題のサーバーはヘッダーに
Transfer-Encoding: chunked
とありました。
多分レスポンスデータが分割されて送られてきている!?のだと思います。
それの解除の仕方を調査しています。。。

環境記載漏れでした。
php7.0.21 APIの実行でレスポンスが空となります。。

5185162018/03/14(水) 22:08:44.98ID:jrMjDaPg
自己解決しました。
phpで出力時に header で明示的に Content-Length を出力しないと、
自動でチャンク分け(?)Transfer-Encoding: chunked されて、
単純なレスポンス待ちのクライアントではレスポンスが空になるという現象でした。
多分 php.ini の設定を何かいじってしまったのが原因なのだと思います。。
その辺詳しくないので、全ソースに Content-Length を追加していって解決とします。
ありがとうございました。

519DNS未登録さん2018/03/15(木) 17:22:58.98ID:???
ひとりごごちの質問でひとりで解決、あっそよかったね

520DNS未登録さん2018/05/02(水) 06:41:01.59ID:QsLqCbG/
すごくおもしろいPCさえあれば幸せ小金持ちになれるノウハウ
一応書いておきます
グーグルで検索するといいかも『金持ちになりたい 鎌野介メソッド』

4CMCA

521DNS未登録さん2018/05/10(木) 18:10:19.41ID:ZcGtSTIB
質問いたします。
OSはubuntu16.04.4、Apacheのバージョンは2.4.7です。
このサイトを参考に名前ベースのバーチャルホストで複数サイトを運用しようとしたのですが期待した結果になりませんでした。
http://httpd.apache.org/docs/2.4/vhosts/name-based.html
ドメインを2つ取得して、それぞれのドメインを使って異なるサイトを運用することはできたのですが、IPアドレスからそのままアクセスした時にサーバーが応答しません。
参考サイトの「名前ベースのバーチャルホストを利用する」セクションの最後のほうに
「マッチするバーチャルホストが見つからなければ、マッチしたIPアドレスのリストの最初にあるバーチャルホストが使われます。」とあるのでIPアドレスから直接アクセスしてもリストで先になったどちらかのサイトにアクセスできるのを期待していました。
レスの最後に設定を書きます。
何か原因に心当たりはないでしょうか?

もう一つ曖昧な部分があります。
参考サイトの例では設定ファイルがひとつにまとまっているようなのですが、自分の環境ではバーチャルホストの設定はサイトごとに別ファイルに分けられ、apache2/直下にあるディレクトリにまとめられていました。
メインの設定ファイルを見ると、それらを、ディレクトリを指定してまとめてincludeしているようでした。
これだと、もし参考サイトの通りリストで先になったサイトが使われるのであれば、それはIncludeされた順番に依存してしまうはずです。これを回避する方法はあるのでしょうか?
よろしくお願いします。

-ports.conf
Listen 0.0.0.0:80
NameVirtualHost *:80

-site1.conf
<VirtualHost *:80>
ServerName site1.net
DocumentRoot /www/site1
</VirtualHost>

-site2.conf
<VirtualHost *:80>
ServerName site2.net
DocumentRoot /www/site2
</VirtualHost>

522DNS未登録さん2018/05/10(木) 18:10:50.11ID:???
sage忘れ申し訳ありません…

523DNS未登録さん2018/05/11(金) 01:03:33.80ID:NP8qFBD7
経験則からだけども応答しないのであれば原因はApacheじゃないところじゃないかな
Proxy噛んでるとかDNSが間違ってるとか

524DNS未登録さん2018/05/11(金) 08:12:22.17ID:???
>>521
> Includeされた順番に依存してしまう
だから000-default.confみたいなファイル名的に先に読まれるものを使うわけです

525DNS未登録さん2018/05/11(金) 08:37:57.66ID:???
>>521
> これを回避する方法はあるのでしょうか?
ディレクトリ指定をやめて個々のファイルを指定する
もしくはバーチャルホストの設定ファイルを別ディレクトリに移してそれをインクルードするファイルを作るとか

526DNS未登録さん2018/05/11(金) 11:35:38.60ID:QdDbeODr
【まな板ショー】 客を呼んで舞台上で性交をさせる → 「さあ、見なさい! これが悪魔の所業だ!」
http://rosie.5ch.net/test/read.cgi/liveplus/1525949968/l50

527DNS未登録さん2018/05/11(金) 12:42:10.23ID:???
回答ありがとうございます。

>>523
なるほどありそうな話ですね。
Apache以外も見直してみます。

>>524
000-default.confの名前にはそういう意味があったのですか。
ということはincludeされるときに一応内部でソートされているんですね。勉強になりました。

>>525
include専用ファイルを作るのが一番確実でスッキリしそうです。
どうしても設定ファイルのファイル名を変えられないときに試してみます。

528DNS未登録さん2018/05/12(土) 04:45:27.93ID:???
むしろIPベースでのアクセスは受け付けないほうが良いのでは
俺はそうしている
一番始めにIPベースのルールを書いて403を出すようにしている

529DNS未登録さん2018/05/13(日) 00:50:49.93ID:???
>>521ですが解決しました
nslookupの見方を間違えて全く関係ないIPにアクセスしていたというアホなオチでした
回答していただいた方々ありがとうございますそして申し訳ありません

>>528
なるほどそういう考え方もあるのですか
確かに製作者の意図しないアクセス方法は遮断したほうがいいのかもしれませんね

530DNS未登録さん2018/05/13(日) 09:27:12.54ID:???
後出し乙

531DNS未登録さん2018/05/24(木) 20:52:38.46ID:frOfX58c
https://exmaple.com/archive/storage/thumb/[ファイル]
にアクセスしたときに[ファイル]が
/mnt/hdd1/storage
に存在するときには
/mnt/hdd1/storage/[ファイル]
を取得して、存在しないときには
/home/pi/public_html/archive/no_thumb.jpg
を取得するようにするには、どのディレクトリにどのような内容の.htaccessを設置すればよいでしょうか。

[現在のApacheのconfでの設定]
DocumentRoot /home/pi/public_html/
Alias /archive/storage /mnt/hdd1/storage

532DNS未登録さん2018/05/24(木) 20:59:25.73ID:frOfX58c
/mnt/hdd1/storage
の部分を
/mnt/hdd1/storage/thumb
に訂正します。

533DNS未登録さん2018/05/24(木) 21:01:10.79ID:frOfX58c
連投ですみません。ややこしいので訂正後の全文を再掲します。

https://exmaple.com/archive/storage/thumb/[ファイル]
にアクセスしたときに[ファイル]が
/mnt/hdd1/storage /thumb
に存在するときには
/mnt/hdd1/storage/thumb/[ファイル]
を取得して、存在しないときには
/home/pi/public_html/archive/no_thumb.jpg
を取得するようにするには、どのディレクトリにどのような内容の.htaccessを設置すればよいでしょうか。

[現在のApacheのconfでの設定]
DocumentRoot /home/pi/public_html/
Alias /archive/storage /mnt/hdd1/storage

534DNS未登録さん2018/05/25(金) 13:09:02.33ID:???
>>533
.htaccess
内容
ErrorDocument 404 /home/pi/public_html/archive/no_thumb.jpg
設置場所
トップディレクトリ

httpd.confなら
DocumentRoot /home/pi/public_html/
Alias /archive/storage /mnt/hdd1/storage
ErrorDocument 404 /home/pi/public_html/archive/no_thumb.jpg

535DNS未登録さん2018/05/25(金) 15:35:11.72ID:hL1/+34S
>>534
回答ありがとうございます。
説明不足で申し訳ないですが、
/mnt/hdd1/storage/thumb/[ファイル] .jpg
なら
/home/pi/public_html/archive/no_thumb.jpg

/mnt/hdd1/storage/thumb/[ファイル] .png
なら
/home/pi/public_html/archive/no_thumb.png

/mnt/hdd1/storage/thumb/[ファイル] .gif
なら
/home/pi/public_html/archive/no_thumb.gif

それ以外は規定のエラーページにしたい場合はどうすればよういでしょうか。

536DNS未登録さん2018/05/25(金) 20:10:17.11ID:???
FilesMatchディレクティブ使えばいいんじゃねぇの

537DNS未登録さん2018/06/16(土) 11:39:10.51ID:Yur/d2E7
/aaa/bbb/file が存在しない場合、
/aaa/file も存在しないなら /aaa/bbb/hoge にリダイレクト
/aaa/file が存在するなら /aaa/bbb/fuga にリダイレクト
させるにはどうすればいいですか?

新着レスの表示
レスを投稿する