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/ >>174 ap_cfg_getline()の中で取得した行の前後のスペースをtrimしてる その行で最初に出てきた空白以外の文字が#なら無視される 空白の連続+改行も無視な 質問です リバースプロキシの設定をしたいと思っています。 公開サーバ< グローバルIP> と、コンテンツ<ローカルIP>があります。 http:// ローカルIP/hoge/ にはローカルからアクセスできます。 http:// グローバルIP/hoge/ でローカルへアクセスしたいのです。 グローバルIPのpxroxyは Server version: Apache/2.4.10 (FreeBSD) を利用します。 httpd.confの以下の行が有効な状態で <IfModule proxy_html_module> Include etc/apache24/extra/proxy-html.conf </IfModule> proxy-html.confには LoadFile /usr/lib/libxml2.so LoadModule proxy_html_module modules/mod_proxy_html.so LoadModule xml2enc_module modules/mod_xml2enc.so ProxyPass /hoge http:// ローカルIP/hoge ProxyPassReverse /hoge http:// ローカルIP/hoge などと記載しています http:// グローバルIP/hoge/ にアクセスしても404になるんですが、 なにか設定が不足していますでしょうか。 グローバルIPのApacheに404のログが出ています。 ローカルIPの方にはアクセスの形跡はありません。 そのグローバルの受け口からローカルにはもちろんその設定のURLで アクセスできるんだよね? あーそれと <IfModule proxy_html_module> でインクルードしてるのに、そのインクルードしたファイルにLoadModuleがあるのはどうなんだ? IfModuleがfalseになってないか? もしそうなら404のログで物理的な場所も出てるはずだから proxy効いてないってわかるよなあ、、、どうなんだろ Apacheを学ぶにあたってオライリーを買おうかと思いますが Apacheハンドブック Apacheクックブック のどちらを買えばよいですか またそれぞれはどのような違いがありますか win8.1でapache loungeの2.4.10を使ってますが、 shiftjisのhtmlが文字化けしてしまいます。 どうすれば直るのか教えてほしいです。 PCのlocal環境にて、 firefoxで見ると text/html; charset=UTF-8 が返ってきてるようです。 元々confファイルにAddDefaultCharsetの記述は特になし 記述なし=AddDefaultCharset Off設定だとは思いますが、 ・httpd.confにAddDefaultCharset Off を追加⇒変化なし ・extra/httpd-languages.conf にAddDefaultCharset Off 追加⇒変化なし どこかでUTF-8決め打ちで設定してるような項目があるのでしょうか? ちなみに、loungeの2.2.29を使ったらsjis文字化けなしでした。 ただphpのdllが2.4用になってるのでできればApacheも2.4系を使いたいです。 書いた直後にMonitorみてて気づきました。 httpd.confからphpの設定を抜いたら文字化けがなくなりました。 php.ini側の問題みたいです。 静的ページであろうとphp設定が影響してくるんですね。。。 >>189 勧めないけど、性格がちがうから両方必要だろう Apache初心者が勉強するのにおすすめの本あったらおしえてちょ AH-64の話だったら、どうしても情報は少ないね。 まあ、最近訓練用ソフトの一部が盗聴されたって話もあるし、 一般に公開されるのも時間の問題かも。 おいおいCentOS 7に付いてくるのって2.4じゃねーか。 俺もついに2.2から移行しなきゃいけない時が来たか…。('A`)マンドクセ 403エラーが回避できない・・・ http://ip アドレス/ http://ip アドレス/サブディレクトリ ともに403がでます・・ サブディレクトリをvhostでservernameを設定して、ローカルのhostsファイルを編集すると http://servername/ でアクセスすると見れるんだけど。 403 はエラーログみりゃ実際にどこをアクセスしようとしてるかわかるだろ それアドレス間違ってない? 別のサーバ(同じサーバの別httpd含む)が返してる 恐らく同じサーバーなんだけど、 別httpdがあるのかな・・困った。。 まずやることはエラーログの特定かな わざとエラー出して更新されたファイルを探すとか psコマンドでよけいなhttpdが無いか探して 動いてるhttpd で -V オプションとか とにかくこれが解決してもログがわからないんじゃ運用に困ると思うので。 設定してなかったりレベルを下げてあったりすると見つからないけどなw logwatchで xxx.xxx.xxx.xx -> mx3.mail2000.com.tw:25: 1 Time(s) というログを見つけたので /var/log/httpd/access_logで確認したところ CONNECTに成功してて404を返してました 調べたら200か405が返ってれば大丈夫ということが わかったのですが404を返す場合対策はどうしたらいいでしょうか? ぽしえろください nginxをリバースプロキシで、Apacheと共存してるときのバーチャルホストの設定なんですけど httpd.conf [ Listen 8080 #既存 Listen 8082 #追加 NameVirtualHost *:8080 NameVirtualHost *:8082 <VirtualHost *:8080> ServerName hoge.com DocumentRoot /var/www </VirtualHost> <VirtualHost *:8082> ServerName hogehoge.com DocumentRoot /var/www/virtual </VirtualHost> ] と書いて nginx.conf [ server { listen 80; server_name hoge.com; root /var/www; client_max_body_size 50G; location / { proxy_pass http://127.0.0.1:8080 ; } } server { listen 80; server_name hogehoge.com; root /var/www/virtual; client_max_body_size 50G; location / { proxy_pass http://127.0.0.1:8082 ; } } Proxy_passらへんの記述省略 ] 既存のやつはアクセス出来るのですが、追加した方 hogehoge.com が繋がりません。 iptables は無効にしてあります 海外のサイト、日本のサイトも結構参考にして2日経ちましたが進捗皆無です^ー すいません 遠い昔に書いたhostsがローカルに向けてありました.... 出来ました。 スレ汚ごめんなさい 解決できたのはいいが、実在する(あるいはその可能性のある)ドメインを例示に使うのはやめれ example.com(.net, .org)という例示用に予約されたものを使いなさい apacheのアクセスログに出力されるレスポンスタイムについて質問なのですが、 レスポンスタイムにはレスポンスが相手に届くまでの時間も含まれていますでしょうか? レスポンスタイムを見るときにネットワークのレイテンシが関係あるのか気になって質問しました。 >>214 ググったんですが今一つよく分からず。。 >>216 IT用語辞典のサイトにターンアラウンドタイムは処理要求を送ってから結果の出力が終了するまで、レスポンスタイムは結果の出力が始まるまでと書いてあったので、 レスポンスタイムは結果の最初のパケットが届いたという応答がapacheに返ってくるまでの時間ということでしょうか。 >>217 時系列に事象を書いて、それのどこからどこまでか示してみ? >>218 BからIまででしょうか。217には最初のパケットが届いたという応答がapacheに返ってくるまでと書きましたが、 apacheがパケットに分割する処理まで制御してないと思ったのでIまでかと。 @ クライアントが処理を開始する A クライアントから要求が届く B apacheが処理を開始する C apacheがレスポンスを作成し終わる D apacheが応答を開始する E 最初のパケットがクライアントに届く F 最初のパケットが届いたという応答がクライアントから届く G 最後のパケットがクライアントに届く H 最後のパケットが届いたという応答がクライアントから届く I apacheが処理を終了する >>219 ようやく話が見えてきた。 リクエスト発行側からみた ターンアラウンドタイムってのは @ 〜 G レスポンスタイムってのはA 〜 D になる。 で、話の元にあったApacheのログの話なら 「リクエストを処理するのにかかった時間」だから B 〜 C >>220 なるほど、apacheが処理している時間なのですね。ありがとうございます。 うーん、やっぱりapacheのログの%Dにはクライアントにレスポンスが届くまでの時間も含まれているような気がしますね。 https://twitter.com/fujiwara/status/217269924727492608 @〜DとIがアプリケーション層の話なのに E〜Hがトランスポート/セッション層っぽい話になってるからおかしくなってる パケットがクライアントに届くとかそれの応答とかってのはTCP/IPが勝手にやる話 Apacheは send() で送信バッファにデーター渡したら終わり >>223 送信バッファより大きなデータやったらどうなるん? <Directory />と<Directory "/var/www/html">は何が違うんですか? /var/www/htmlがドキュメントルートなので、これに漏れる設定って無いようなきがするんです <Directory /> は <Directory 〜>ディレクティブの終わりです <Directory "/">はフルパスの指定ですね /home/usser/なんちゃらとか ルート以外も設定できるでしょ、それのデフォルト UserDirとかVhostAliasとかその辺で動的にディレクトリを参照されたときに誤爆を防ぐw >>231 おお!おまじないみたいに最初に書いておけばいいな。 apacheではchmodの代わりに、Directory使うってイメージでOKですか Directoryって物理パスと1対1になってるんでしょ? だから、DocumentRootよりも上のディレクトリにも設定できる nphスクリプトをnph-始まりじゃない任意ファイル名で実現したかったらどうすれば出来ますか? リバースプロキシ以外で何か方法があれば… ちょっと見てみたけど Apacheのソース modules/generators/mod_cgi.c に埋め込んであるから、これいじるしか無いんじゃ? ApacheのSSIの質問はここでいいのかな <!--#include virtual="foo/bar.html" -->のディレクティブを記入したんだけど どうもan error occurred while processing this directiveがでちゃうみたいで・・・ ttp://www.tohoho-web.com/lng/199911/99110261.htm ここと症状的には一緒なんだけど、解決策といった解決策がヒットしなくてこまってます 助け舟をお願いしたいです すみません。自己解決しました。 .htaccessで全アクセス拒否にしてました。。。 でもこれを消したら、インクルードファイルが直にアクセスされて困るような気もします foo/bar.html?fooで読んで、?fooが無いと中身が出ないようにするとかw 直にアクセスされて困るのにincludeだと問題ないなら virtualじゃなくてfileにしたら fileだと上のディレクトリを読めないとかいう事情があるらしく そういうのは面倒臭いのであくまでもvirtualでやりました とりあえずこの問題も解決出来ました ドキュメントルートにRewriteRuleとかを書いた.htaccessを置くと直アクだけ弾けるようです サーバー構成とか容量諸々の都合により、 Webサーバーとファイルサーバーを分けたのだけど、 ローカルにコンテンツがあった頃に比べて反応が鈍くなった気がする。 そこで mod_cache / mod_mem_cache / mod_disk_cache を使って頻繁にアクセスされる 静的ファイルをキャッシュさせてみようとした・・・のだけど、 このモジュールが Apache のかなり入り口の方で呼ばれるらしく、Deny Allow ディレクティブなどが 効かないし環境変数などを使った制御も効かない(とドキュメントに書いてある)。 これを解決するにはアクセス制御用の前段apache, コンテンツサーバー用の後段apacheの2段に するしかない? まぁ どっちか nginx でもいいんだけど。 ファイルを直接アクセスせずにKVSで擬似キャッシュみたいなのは余計重くなりそうだし。 domain.comとwww.domain.comの両方でwebサイトを見れるようにしています。 サブドメインなしの https://domain.com/ 〜 でアクセスしてきた場合に 「www」付きの https://www.domain.com/ 〜 にリダイレクトされるように 設定したいと思ってます。 サブドメインなしでアクセスできるwebコンテンツすべて(https://domain.com/ ~userも含む)に 反映されるように、 /etc/apache2/mods-available/ssl.confや /etc/apache2/sites-available/default-ssl.confに <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^(domain\.com)(:443)? RewriteRule (.*) https://www.domain.com$1 [R=301] </IfModule> を追記して、Apacheを再起動したりしてますが、全く反映されません。 どのようにすれば反映されるのでしょうか? なお、httpsではなく通常のhttpでの http://domain.com/ 〜 → http://www.domain.com/ 〜 については/etc/apache2/sites-available/000-default.confや /etc/apache2/mods-available/userdir.confに上記を追加することで反映されています。 使用環境 Apacheバージョン:2.4.7 OS:Ubuntu 14.04.1 LTS カーネル:Linux 2.6.32-042stab093.5 #1 SMP rewriteで思った動作とならないときは、ログ取るのが定番。 わかりやすいとはいえないログだけど、なんとなくどう処理してるのか分かると思う。 >>247 回答ありがとうございます。rewriteのログ取れるの初めて知りました。 結局、rewriteを使わずRedirectを使って解決しました。 へー ttp://gigazine.net/news/20150219-http-2-major-update/ Apache2.6/3.0 は組み込み済みになる予定だって。 それ以前のはmodで対応かな 出先からスマホで会員限定サイトを見たいのですが、IP制限がかかっています。 【例】 アクセスするアドレス: http:// (自宅のIP)/s01/hogehoge/1.avi 実際に見たいアドレス: http://s01.example.com/hogehoge/1.avi そこで ProxyPass /s01 http://s01.example.com ProxyPassReserve /s01 http://s01.example.com (実際にはs01〜s12まであります) としたのですがうまくいきませんでした。 診断くんを同じ方法で見てみると「HTTP_X_FORWARDED_FOR」にスマホのIPが表示されていました。 どうすればこれらのヘッダーを消すことができるのでしょうか? mod_headersでヘッダーの書き換え、削除ができたと思うが apache2.confに Header unset HTTP_X_FORWARDED_FOR と記述したんですがダメでした。 もちろん、a2enmodでheaderを有効にしています。 > うまくいきませんでした。 具体的な症状くらい書けって話 生徒「わかりません」 先生「ふざけんな!俺の説明のどこがわからんというんだ!」 生徒「どこが分からないのかすらわかりません」 公立中学はこんな感じ。 中学受験できるかどうかの資金力の差で 学力に差がつき、さらに貧富の差が広がる。 期待:http://i.imgur.com/l0aDIRO.png 結果:http://i.imgur.com/NHoBNjB.png こういう感じになっているのを直したいのですが、仰るとおりデバッグの仕方すらわかっておらず、 何がどうしてこうなっているのかすらわかっていないのが現状です。 公式のドキュメントを読んでも何が間違っているのかわからなかったレベルなので、 一から調べなおして自力で解決できるように頑張ります。 お騒がせして申し訳ないです。 どうせHostヘッダでも刺さりそうだからリバースプロキシでやらなければいいのにw ソース見るとわかるが食い込んでる 書き換えちゃえば Apache2の設定でAliasを使って ローカルディスク上のパスとURLのマッピングをしています。 Alias /cake/ /path/to/cakephp/ で、cakephp2が.htaccessでmod_rewriteを使ってパスをかきえています。 RewiteRule (.*) app/webroot/$1 [L] これだと、Apacheが /path/to/cakephp/app/webroot/を見に行ってNotFoundになってしまいます。 cakephpの.htaccessファイルは複数あるので手を加えたくありません。 httpd.conf等の修正で解決する方法がありましたら教えてください。 >>265 mod_rewrite で書き換えられた後のパスに実ファイルを持って行くのではダメですか? >>267 /path/to/cake/.htaccessに RewriteBase /cake/ と追加したら、とりあえず http://hogwhoge/cake/ のURLで見れるようになりましたが、 http://hogwhoge/cake/sample/ などのURLだと、あいかわらず /path/to/cake/app/webroot/sample/ を見に行って404になってしまいます。 前述のようにcakephpの複数の.htaccess全てを修正することはあまりしたくないのですが、 良い解決方法はないでしょうか? cakephpのサイトを見たら、.htaccessにRewiteBaseを追加するのが正攻法のようですね。 Apacheというよりcakephpの話になってしまってすみません 自宅鯖を建てるため、StartSSLで認証書を取得して、SSLを有効にしてApacheを起動しようとしています。 OS:Windows8.1 Pro 64bit パッケージ:xampp 5.6.3 秘密鍵と証明書をいただいたので、httpd-ssl.confに -- ServerName hoge.hogehoge.link:443 ServerAdmin hostmaster@hogehoge.link ErrorLog "C:/xampp/apache/logs/error.log" TransferLog "C:/xampp/apache/logs/access.log" SSLCertificateFile "C:/xampp/apache/conf/ssl/certs/hoge.hogehoge.crt" SSLCertificateKeyFile "C:/xampp/apache/conf/ssl/private/nopass_key.key" -- と記述してApacheを起動しようとしたところ起動しませんでした。 nopass_key.keyはStartSSLのToolBoxからDecrypt Private Keyを選択して、秘密鍵のパスワードを外したものです。 eroorlogを見てみると、 key do not match と出ていました。keyが合ってないとのことのようです。 何で合ってないんだろう?と思いつつ、再びStartSSLのToolBoxでKey Bug Checkerを選択して、 パスワードを外した秘密鍵とサーバー認証書のチェックをしたところ、両方とも Key Check Success と出て、キーには問題がないようです。 なぜkeyが合ってないぞごるぁ、とエラーが出るのでしょうか? どなたか分かる方がいらっしゃったら教えていただけないでしょうか? 自分は正しい、間違っていない、キーには問題ない、という主張に終始していて 肝心の Apache のエラーメッセージの部分を端折っているあなたのその姿勢。 それは失礼しました。 今の状態でApacheを起動すると、次のようなメッセージがerror_logに出力されます。 -- [Fri Apr 17 05:43:36.017982 2015] [ssl:emerg] [pid 7644:tid 408] AH02565: Certificate and private key hoge.hogehoge.link:443:0 from C:/xampp/apache/conf/ssl/certs/hoge.hogehoge.link.crt and C:/xampp/apache/conf/ssl/private/nopass_key.key do not match AH00016: Configuration Failed -- まずはパスフレーズ外してないやつで起動してみては? ☆ 日本の核ブ装は絶対に必須ですわ。☆ http://www.soumu.go.jp/senkyo/kokumin_touhyou/index.html ☆ 日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、改憲の参議院議員が 3分の2以上を超えると日本国憲法の改正です。皆様方、必ず投票に自ら足を運んでください。 私たちの日本国憲法を絶対に改正しましょう。☆ >>265 昨日悩んでいた事と類似の部分で悩んでいる人がいるもんだなあwww Aliasっていくつも幾つも書いちゃって良いもんだろうか? 下手するとある階層からのディレクトリ全部読めません><になりかねんなあ Apache2.2.9(Fedora) で、アクセス規制(deny)を設定した場合 ファイルや下層ディレクトリーでは設定通りの403画面が出るのですが ルートだけTestPageが表示されて困ってます どう設定をしたらよいでしょうか… DirectoryIndex index.php ttp://example.com/ → TestPage ttp://example.com/index.php → 403Forbidden ttp://example.com/file.txt → 403Forbidden ttp://example.com/test/ → 403Forbidden read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる