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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

Q&A

解決済

1回答

533閲覧

ApacheのProxyPass設定削除後、特定のサイトがアクセス不可になった問題の解決策を求めています

Hello_ryotaro

総合スコア6

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

1グッド

0クリップ

投稿2023/12/13 14:52

私は今日、Apacheサーバーの設定を調整していましたが、誤って/etc/httpd/conf.d/ProxyPassを削除してしまいました。この変更の後、https://ドメイン にアクセスできなくなり、関連するすべてのサブドメインのサイトも見ることができなくなりました。

ProxyPassは、Apache設定内で特定のリクエストを別のサーバーやアプリケーションに転送するためのディレクティブです。これを削除したことで、サイトがアクセス不能になったようです。設定ファイルを削除する前はサイトが正常に動作していたため、他の設定ファイル(ssl.confなど)に問題はないと考えています。

調べたこと:

ProxyPassディレクティブはApacheサーバーに標準で含まれるもので、個別にダウンロードすることはできません。

ProxyPassの設定はサーバー固有のもので、バックアップがない限り簡単に復元することは難しいです。

Apacheの公式ドキュメントとフォーラムを確認しましたが、具体的なProxyPassの設定例のみを見つけることができました。
https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxypass

試したこと:

  1. httpdを再インストールするとProxyPassも復活するかと思いました。

bash

1yum remove httpd 2yum install httpd 3 4======================================================================================================= 5 Package Architecture Version Repository Size 6======================================================================================================= 7Installing: 8 httpd x86_64 2.4.57-5.el9 appstream 47 k 9Installing dependencies: 10 centos-logos-httpd noarch 90.4-1.el9 appstream 252 k 11Installing weak dependencies: 12 mod_http2 x86_64 1.15.19-5.el9 appstream 149 k 13 mod_lua x86_64 2.4.57-5.el9 appstream 61 k

2. 公式サイト調査と、ProxyPassのファイル内容調査

困っている点:

ProxyPassは、これまで触ったことがないが、既存のファイルなのか

具体的なProxyPassの設定内容の正しい再設定方法がわかりません。

サーバーのバックアップがなく、元の設定を確認する手段がありません。

boya👍を押しています

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

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

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

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

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

hoshi-takanori

2023/12/14 03:39

お調べになった通り、「ProxyPassの設定はサーバー固有のもので、バックアップがない限り簡単に復元することは難しいです。」 デフォルトの設定は存在しません(理由もなくそのような転送を行うべきではないので)し、ネットにあるサンプルもあくまで書き方のサンプルであって、設定内容はサーバーごとにまったく異なります。 そのファイルを設定した人を探し出して聞くしかないでしょうね。また、httpd の再インストールなどの余計なことをすると、他の設定ファイルが初期化されるなど、さらに傷口を深くする可能性もあります。
Hello_ryotaro

2023/12/14 05:34

コメントいただき、ありがとうございます。 以下に記載した参考サイトを利用して、自分でサーバー構築を行いました。 構築後には、サブドメイン追加とLet's EncriptでのSSL化を行いました。 ProxyPassの設定方法の解説をしているものは、いくつか拝見したのですが、/conf.d/ProxyPassというファイル自体について説明しているものが見つからず、そもそも何のファイルかもつかめていない状況です。 ▽構築後にした作業 ・さくらVPSのコントロールパネルでDNS設定で、サブドメインを追加 ・/etc/httpd/conf.dでサブドメインのconfファイルを作成 ・letsencryptでhttps化 ▽参考にしたサイト:ネコでもわかる!さくらのVPS講座 ~第三回「Apacheをインストールしよう」 https://knowledge.sakura.ad.jp/8541/
hoshi-takanori

2023/12/14 07:35

自分で構築したんですね。なら、以前やったことをもう一度やり直せば良いかと…。 ちなみに、conf.d ディレクトリは httpd.conf の内容を分割して書くためのもので、ssl.conf や php.conf など、.conf という拡張子のファイルを作って、それを httpd.conf から Include conf.d/*.conf として読み込むのが一般的な慣習です。(あくまで慣習なので、拡張子をつけないファイルを置くことも可能なはず。) なので、普通は conf.d/ProxyPass というファイル名のファイルを使うことはあまりないと思いますし、httpd.conf で Include conf.d/*.conf としてるなら conf.d/ProxyPass は読み込まれないと思います。リバースプロキシを設定した覚えがないなら、そもそも不要なファイルだったのかも…?
CHERRY

2023/12/14 10:15

現在の状況が分かりにくいのですが、 Web サーバのログには、なにかメッセージは出ていないのでしょうか。
Hello_ryotaro

2023/12/14 13:47

@hoshi-takanoriさん そうですね。やり直すのが一番早いのです。 ProxyPassの設定等、何か自分の調査でわかったこと以外に、何か情報が得られないかと思い投稿しました。 httpd.confでIncludeOptional conf.d/*.confとはしています。 しかし、ProxyPass削除後にエラーが起こるので、必要なファイルである気がしています。
Hello_ryotaro

2023/12/14 13:59 編集

@CHERRYさん コメントいただき、ありがとうございます。 失礼しました。Webサーバのログ記載できていませんでした。 ```/var/log/httpd/access_log # tail -n 3 access_log IPアドレス - - [14/Dec/2023:22:39:58 +0900] "GET /favicon.ico HTTP/1.1" 503 299 "https://自分のドメイン/" "Mozilla/5.0 (Macintosh; Mac...) AppleWebKit/XXXX (KHTML, like Gecko) Chrome/120.0.0.0" IPアドレス - - [14/Dec/2023:22:39:58 +0900] "GET / HTTP/1.1" 503 299 "-" "Mozilla/5.0 (Macintosh; Mac...) AppleWebKit/XXXX (KHTML, like Gecko) Chrome/120.0.0.0" IPアドレス - - [14/Dec/2023:22:39:58 +0900] "GET /favicon.ico HTTP/1.1" 503 299 "https://自分のドメイン/" "Mozilla/5.0 (Macintosh; Mac...) AppleWebKit/XXXX (KHTML, like Gecko) Chrome/120.0.0.0" ``` ```/var/log/httpd/error_log # tail -n 3 error_log [Thu Dec 14 22:39:58.277614 2023] [proxy_http:error] [pid XXX:tid XXX] [client IPアドレス:ポート] AHXXXX: HTTP: failed to make connection to backend: localhost [Thu Dec 14 22:39:58.426446 2023] [proxy:error] [pid XXX:tid XXX] (111)Connection refused: AHXXXX: http: attempt to connect to 127.0.0.1:3000 (localhost:3000) failed [Thu Dec 14 22:39:58.426621 2023] [proxy_http:error] [pid 1864349:tid XXX] [client IPアドレス:ポート] AH0XXXX: HTTP: failed to make connection to backend: localhost, referer: https://自分のドメイン/ ```
CHERRY

2023/12/14 22:31

ログを見ると > [proxy:error] [pid XXX:tid XXX] (111)Connection refused: AHXXXX: http: attempt to connect to 127.0.0.1:3000 (localhost:3000) failed > ah0xxxx:%20HTTP%3A%20failed%20to%20make%20connection%20to%20backend%3A%20localhost,%20referer%3A%20https%3A//%E8%87%AA%E5%88%86%E3%81%AE%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3/ と localhost のポート 3000 に接続できないとあるのですが、ポート3000 で稼働していた サイトやアプリが停止していたりしませんか?
Hello_ryotaro

2023/12/17 05:10

いえ、特に3000で稼働していたアプリはないです。 lsof -i:3000で見たところエラー表示されませんでした。 /etc/httpd/conf.d内の各ファイルを、確認したところproxypassで3000ポートを使用している箇所が見つかりました。 その設定をコメントアウト後に、エラー表示が解消されました。 今回本質問を投稿するに至ったエラーは、ProxyPassというファイルを削除したことが原因ではなく、自分のconf.d内のファイルの設定ミスでした。 @hoshi-takanoriさん, @CHERRYさん コメントいただきありがとうございました。 本投稿は閉じたいと思います!
guest

回答1

0

自己解決

  1. apacheのログ確認。ポート3000のエラー発見
  2. $ losf -i:3000
  3. conf.d内のファイル内容を確認
  4. 該当箇所をコメントアウト
  5. apacheを再スタート
$ systemctl restart httpd

投稿2023/12/17 05:13

Hello_ryotaro

総合スコア6

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.41%

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

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

質問する

関連した質問