Apache統合スレ 12 (HTTPServer以外も含む)
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/ >>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つでもサーバ証明書を有効にしてたらそれに引きずられるのを何とかしたい >>498
サーバが404を返す前にTLSの処理が行われるんだからブラウザからHTTPSで要求する以上証明書エラーは避けられない
これはひとつ証明書を設定したからと言うわけではない
証明書が存在しないことがもうエラー >>499
レスありがとう。勉強になるわ
これも言うことは理解できる。その通りだと思う
俺が Apache の挙動を深く理解していないのでアレなのだが、理想としてはドメイン毎に HTTPS のサービス有無を確認してエラーを出してほしい
wiki の SNI 見ただけだが、TLS ハンドシェイク時にドメイン名を平文で送ると書いてあるから、https を disable 設定した(もしくは https 未設定の)ドメインはその先の証明書選択分岐に進まず 404 なりのエラーを返すような動作にするような設定があるもんだと思ってた
ドメイン名で使う証明書変えることが可能なのであれば、証明書無いのはその先には進まない、と言う挙動は可能なはず
<VirtualHost _default_:443> で https 未設定のドメインは全部こちらへ!は、あるのにその逆みたいな https 未設定は全て 404エラー!みたいなのは無いのかな。
1IP複数ドメインで そのうちの一部だけ HTTPS 欲しいけど他のドメインにHTTPS いらないや、ってことあると思うんだけどみんなどうしてるんだろう >>500
通信をTLSにするのかどうかの決定権が完全にサーバにあればそれでよい
だがクライアントがHTTPSでリクエストする以上はクライアントが秘匿通信を望んでいるのであって, サーバが(証明書がないために)勝手に秘匿通信は行わないよと一方的に宣言するわけだ
これを許容するということはクライアントとサーバの間に中間者が割り入ってHTTPSを勝手にHTTPに置き換え, クライアントは知らないうちに暗号化されない通信をさせられるMITM攻撃が可能になるということだ
許容出来る話ではなかろう
TLSより下位のTCPレイヤで接続を拒否するという発想はあり得るが, ホスト名はHTTPに乗っているからやはりバーチャルホストでは適用出来ない ホスト名はSNIだからTLSに乗るか。
何れにしてもTCPより上位レイヤ >>501 502
レスありがとう
Apache の設定で何とかなるというか、なぜそんな設定が無いのか疑問で仕方がなかったが、ちゃんと理由があって仕様上無理、って言われたら納得だわ
HTTPS が必要無いドメインについては 無料証明書使ってリダイレクトする 案1 で対応することにする
みんなありがとう ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆ VPSのセットアップを頼まれたんだが、Apacheは2.2と2.4どっちを入れたらいい?特に先方からの指定はない
OSはCentOS6、調べたら2.4もyumで入れられるが2.2がデフォのようだ
パスがhttpd24うんたらになって長くなったりするらしく2.4は使いにくいだろうか? 6使ってる時点で2.4入れても焼け石に水だから、素直に2.2使っとけって事?
ちなみに頼まれた時点で6が入っていた 1. CentOS7にアップグレードします
2. Apache2.4系を使います
これで完璧 指定なしで保守まで頼まれてないのなら2.2でいいじゃん
2年後は危険ですよって一言伝えたら相手がどう出るかで対応考えれば レガシーなシステムにどうしても2.4載せろと言われたらDocker使うけど>>505はDocker知らなさそう 質問失礼します。
どはまりしてしまいました。。
ブラウザから SSL 経由で php へのアクセスは正常に来て応答も正常に返るのですが、C# HttpWebRequest からのアクセスだけ空文字で返ってしまいます。
ログにアクセスした形跡はあるので、応答だけできていない状態です。
空文字が返ってきた時の C# HttpWebRequest のステータスは 200 でした。
どうやったら正常に返す事ができるのでしょうか。。
分かる方、よろしくお願いします。
CentOS release 6.9 (Final) 64bit redhat
apache2.4 今もまだ調査中です。
色々試しているのですが、SSLを介さないでも起きてしまいます。
問題のサーバーはヘッダーに
Transfer-Encoding: chunked
とありました。
多分レスポンスデータが分割されて送られてきている!?のだと思います。
それの解除の仕方を調査しています。。。
環境記載漏れでした。
php7.0.21 APIの実行でレスポンスが空となります。。 自己解決しました。
phpで出力時に header で明示的に Content-Length を出力しないと、
自動でチャンク分け(?)Transfer-Encoding: chunked されて、
単純なレスポンス待ちのクライアントではレスポンスが空になるという現象でした。
多分 php.ini の設定を何かいじってしまったのが原因なのだと思います。。
その辺詳しくないので、全ソースに Content-Length を追加していって解決とします。
ありがとうございました。 ひとりごごちの質問でひとりで解決、あっそよかったね すごくおもしろいPCさえあれば幸せ小金持ちになれるノウハウ
一応書いておきます
グーグルで検索するといいかも『金持ちになりたい 鎌野介メソッド』
4CMCA 質問いたします。
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> 経験則からだけども応答しないのであれば原因はApacheじゃないところじゃないかな
Proxy噛んでるとかDNSが間違ってるとか >>521
> Includeされた順番に依存してしまう
だから000-default.confみたいなファイル名的に先に読まれるものを使うわけです >>521
> これを回避する方法はあるのでしょうか?
ディレクトリ指定をやめて個々のファイルを指定する
もしくはバーチャルホストの設定ファイルを別ディレクトリに移してそれをインクルードするファイルを作るとか 回答ありがとうございます。
>>523
なるほどありそうな話ですね。
Apache以外も見直してみます。
>>524
000-default.confの名前にはそういう意味があったのですか。
ということはincludeされるときに一応内部でソートされているんですね。勉強になりました。
>>525
include専用ファイルを作るのが一番確実でスッキリしそうです。
どうしても設定ファイルのファイル名を変えられないときに試してみます。 むしろIPベースでのアクセスは受け付けないほうが良いのでは
俺はそうしている
一番始めにIPベースのルールを書いて403を出すようにしている >>521ですが解決しました
nslookupの見方を間違えて全く関係ないIPにアクセスしていたというアホなオチでした
回答していただいた方々ありがとうございますそして申し訳ありません
>>528
なるほどそういう考え方もあるのですか
確かに製作者の意図しないアクセス方法は遮断したほうがいいのかもしれませんね 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 /mnt/hdd1/storage
の部分を
/mnt/hdd1/storage/thumb
に訂正します。 連投ですみません。ややこしいので訂正後の全文を再掲します。
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 >>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 >>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
それ以外は規定のエラーページにしたい場合はどうすればよういでしょうか。 FilesMatchディレクティブ使えばいいんじゃねぇの /aaa/bbb/file が存在しない場合、
/aaa/file も存在しないなら /aaa/bbb/hoge にリダイレクト
/aaa/file が存在するなら /aaa/bbb/fuga にリダイレクト
させるにはどうすればいいですか? とあるサイトの一部ディレクトリ以下が
サーバ移転したのでApacheでリダイレクトしたいと思います思ってます
Redirect permanent /hoge/hoge1/ http://www.new.html
とhtaccessに書いたところ
トップページから飛ぶのですが
サブディレクトリから飛ぶと
http://www.new.html/hogesub/
となってないディレクトリに行き404エラーとなってしまいます
やりたいのは
/hoge/hoge1/のディレクトリは全てnewページに行くようにしたいのです
どこが間違っているか教えていただけませんか? 今頃apache使ってるのが間違い
しかもどうせcentosだろ サブディレクトリにもhtaccessを
個別に追加すれば 403ページで
Forbidden
You don't have permission to access / on this server.
Apache Server at xxxx.xxx Port 80
と出てしまうのですが、Apacheと出さないようにすることはできますか? >>539
Apacheスレまで出張して何言ってんの?
Nginx厨はお帰りください mod_rewriteの正規表現って /[^/]+/ って使えます?
それとも単に /.+/ で誤動作せずに問題ないですか? もう20年かぁ…
Sendmailは流石にもう消えたよな? 実質的に。 webサーバー関連で出来ないことはないってぐらい多機能じゃん。
高性能が必要なところは他を使えば良い。 ユーザ側でいじれる範囲を広くできるのは強みだよね
WordPressとかでパーマリンク構造変更するのにnginxじゃ管理者権限でconf編集しなきゃいけない >>556
そうは言っても、Web屋さんの技術ブログみたいなので、
.htaccessに記述しますとか書いてあると萎えるけどね。
プロならパフォーマンス考えてconfだろと。
どんだけショボいサイトなんだよと。 >>559
> Web屋さんの技術ブログ
フロントエンドエンジニアじゃん
バックエンドは富豪的解決でもいいんだよ
「こうあるべき」って思い込みが強い人みたいだね .htaccessはApacheへのベンダロックインみたいなもんだからなー ベンチマークスコアだけ見て実際の運用を知らない人が多いよね 実際の運用なんて千差万別なのに
自分の運用≡世間の運用
で語る奴 w 国内のホスティング大手はたいていApache使ってるのが現実だしねぇ むしろapacheしか使えないからだろう。同様の理由でCentOSも 客の自由度を確保するには結局Apacheが最適なのさ https://www.example.com/
で、.htaccessを以下のように二つ置く場合、
https://www.example.com/ に置いた.htaccess
https://www.example.com/sub/ に置いた.htaccess
sub側の.htaccessには上位フォルダの.htaccessの内容は一切引き継がれないという理解で良いですか? 逆
すべて引き継がれて、下のディレクトリの.htaccessによって設定したものだけ上書きされる。
忘れたが、上書きできないディレクティブもあったかも。 >>573
>すべて引き継がれて、下のディレクトリの.htaccessによって設定したものだけ上書きされる。
本当ですか?
実は www.example.com の .htaccessに以下の記述をしているのですが、
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
これでは
http://www.example.com/sub/ へのアクセスが
https://www.example.com/sub/ へ行かずに http:// のまま表示されてしまいます。
それで、subの.htaccessにも上の設定を書いたら期待通り https へ行って表示されたのです。
なので、上位の設定は一切引き継がれないと思ったのですが。。。
私の環境で引き継がれないのは何が原因でしょうか? mod_rewriteはわけのわからん動きをするから本当に難しい。
何らかの理由でURIが渡ってないんじゃない?
これで動くと思う。
https://help.sakura.ad.jp/hc/ja/articles/206054622--htaccess#ac09 まずDocumentRootかLocation /で.htaccess有効になってるかから始めようぜ 皆さん、アドバイスありがとうございます
>>575
教えて頂いたページにはWordPressを使っている場合と使っていない場合の二種類の設定がありますが、
どちらをやれば良いのか分かりませんでした。
使っているのはエックスサーバーなのですが、
フォルダ /example.com/public_html/
URL https://www.example.com/ WordPressではない単なる index.htmlのページ
フォルダ /example.com/public_html/sub/
URL https://www.example.com/sub/ WordPressサイト
と対応しています。
/ .htaccessはありません。
/example.com .htaccessはありません。
/example.com/public_html/ ここの.htaccessに httpをhttpsにリダイレクト設定を書いたが
/example.com/public_html/sub/ ここに引き継がれないので、ここにも.htaccessを置いて同じリダイレクト設定を書いた。
こんな感じです。
何かおかしいですか? WordるるPressが独自にrewriteの.htaccess持ってるから、
それと何かが競合して結果的に今の挙動に至ってるんじゃない?
これだけだと難しくてわかんね。
鯖屋に問い合わせてみなよ。 一緒くたにして一度にまとめてぐちゃぐちゃすると誰でも変わらなくなるもんよ。
ひとつずつバラして検証するしかない。
WordPressじゃないディレクトリだとどうなるかとか。 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。 以下のように書いてもうまく動かない(ipが許可されない)原因は何ですか?
ちなみにApache2.4&Windows10
<Directory "C:/WWW/public_html">
Require ip 100.100.100.100
</Directory> フロントサーバ nginx 固定コンテンツ・キャッシュ・リバースプロキシ・ロードバランス
おもに動的コンテンツのサーバ apache
これが普通だよね
最初nginxで受けて、処理できないものをapacheに投げる >>589
Apacheスレで言うことじゃないけど、 mod_php 的なやつはもう使わず、
Nginx + wsgi / passenger / php-fpm とかで inet proxy するか socket で使うのが今時じゃないか?
俺は慣れてるからApache使うけど 特殊な炭素素材で水を水素と酸素に分解 ゼビオHDのグループ企業、クロステクノロジーラボが開発 (35分〜)
ナッツ類、アーモンドですね、被曝させるとカビ生えないんです、米国内流通禁止です、なぜ日本に入ってくるんですか。
http://egg.5ch.net/test/read.cgi/agri/1547281780/l50 超初心者ですががんばってラズパイでhomeassistantというアプリを構築するためapache2とlets encryptでssl対応のサーバーを作ろうとおもっています。
http://itemy.net/?p=1052
ここを見てやってみてインストール完了し、apache2に証明書の設定も追記したものの、どうしてもhttpsでアクセスできません。
HttpでApache2にアクセスまでは出来ています。
ポートやファイアウォールなど確認したり半日費やしてもわかりません…
どなたかわかる方いらっしゃらないでしょうか?
よろしくお願い致します。 >>594
何からアクセスしようとしてる?
netstat コマンドとか使える? >>595
ありがとうございます。
ネットワーク中と外からiphoneやpcでアクセスしようとしてます。。。
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 192.168.1.80:51827 0.0.0.0:* LISTEN 2323/python3
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 739/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 955/master
tcp 0 0 0.0.0.0:8123 0.0.0.0:* LISTEN 2323/python3
tcp6 0 0 :::80 :::* LISTEN 824/apache2
tcp6 0 0 :::3218 :::* LISTEN 2675/docker-proxy
tcp6 0 0 :::22 :::* LISTEN 739/sshd
tcp6 0 0 :::443 :::* LISTEN 824/apache2
netstatはこれでいいんですかね?ちゃんと443はlistenしてるんですが。。。 >>594
> http://itemy.net/?p=1052
> ここを見てやってみてインストール完了し、apache2に証明書の設定も追記したものの、どうしてもhttpsでアクセスできません。
そこには
>> RASPBIAN JESSIE LITEにApacheが既にセットアップ済みで、http(ポート80/tcp)とhttps(ポート443/tcp)が接続可能なように、適切にルーターやファイヤーウォールなどの設定が行われている。
ことが前提って書いてあるから、どうやってApacheのセットアップしたかを書いてよ