我尝试在同一个域内同时设置WordPress和Web系统的共存
因为有机会在同一个域中共存WordPress和Web系统,所以我做了一些备忘录记录下来。
Web系统和WordPress分别作为独立服务器在AWS的EC2上运行,我们已经将对/media的访问传递给了WordPress。
Web系统已经运行,而我在WordPress上进行了新的构建,并在负载均衡器上添加了处理访问的配置。
动作的图像
访问hogehoge.com → 访问Web系统
访问hogehoge.com/media → 访问WordPress系统
做过的事 de shì)
我做了两件重要的事情。
-
ロードバランサ(ALBの設定)
リクエストの入り口
Webシステム、Wordpressのどちらかにアクセスを振り分けるリバースプロキシのような役割
Apacheの設定
受け付けたリクエストを内部で処理するようにドメインとパス書き換える
/mediaというパスを排除し、インスタンス内(localhost)で処理を捌くように書き換え
見かけ上(ブラウザに表示されている)は大元のリクエストURLをそのまま使用できるようにする
应对的内容
负载均衡器的设置
-
wordpress用のターゲットグループを作成し、wordpressのインスタンスを紐付ける
ロードバランサの作成を行い
パスが/media*の場合はwordpress用のターゲットグループに転送するように設定する
Apache配置文件的设置
编辑/etc/httpd/conf/httpd.conf文件,并添加以下内容。
-
URLの書き換えを行うのでモジュールの読み込み、設定の有効化を行う
LoadModule rewrite_module modules/mod_rewrite.so
RewriteEngine on
/var/wwwのAllowOverride none となっている部分をAllowOverride Allに変更する。
こちらは.htaccessによる設定の上書きを許可するための設定。今回の設定に関わる内容というよりはWordpress側の設定になるかも
<Directory "/var/www">
AllowOverride All
.
.
.
</Directory>
-
リバースプロキシの設定
/mediaでアクセスがきた場合にlocalhostとしてアクセスを捌くように設定
ProxyPassReverse の設定はリダイレクトによるアクセスがきた場合に捌く設定
どちらも必要なので両方書いておく必要あり
ProxyPass /media http://localhost/
ProxyPassReverse /media http://localhost/
-
URLの書き換えを行う。Wordpressのインスタンス上では/mediaから始まるパスでアクセスを捌くわけではないので/mediaを除外したパスとなるようにURLの修正を行う。
この際にURLの見かけ上はドメインはそのままで/mediaを含むURLでアクセスを捌きたいので/〇〇でドメインを含めずに指定する必要がある。
RewriteRule ^/media/$ /media [R=302,L]では/media/でピンポイントでアクセスがきた場合にリクエストがうまく捌けず403エラーになってしまうようだったので/mediaに書き換えてリダイレクト してしまうように設定
ここはもっといいやり方はある気がする…
RewriteRule ^/media/$ /media [R=302,L]
RewriteRule ^/media/(.*)$ /$1
我想在WordPress和Web系统中实现共存。尽管我没有详细记录,可能会有一些遗漏,但我想重点应该是这样的。