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

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

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

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

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

7390閲覧

Reverse Proxy環境下でWordpressの管理画面が正常に動作しない

nononono

総合スコア23

Apache

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

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/03/30 17:46

編集2017/03/30 17:52

前提

ECサイトとブログサイトを同一ドメイン別サーバで運用予定です。
全てのリクエストをECサイト側で受取り、URIに/blogが含まれていた場合にのみブログサイトのIPアドレスにリクエストが転送されるようにNginxのReverse Proxyの設定を行っています。
例:
http://example.comを入力 => ECサイト
http://example.com/blog => ECサイトから転送 => ブログサイト

困っていること

この状態でWordpressのサイト自体は問題なく表示されるのですが、管理画面が正常に動作しません。
ドメイン指定(リバースプロキシ経由)、ブログサイトのIPアドレス直指定のいずれの方法でも問題ないので解決策を探しています。

試したこと

  1. ドメイン指定(リバースプロキシ経由)してアクセスした場合 (http://example.com/blog/wp-admin)

強制的にwp-adminへとリダイレクトが行われる。
そのため、NginxのLocation設定で/blogだけでなく/wp-admin、/wp-loginの場合でもブログサイトのIPに転送する設定にした場合、管理画面のログイン画面へとアクセスすることは出来たものの、正しいメールアドレス、パスワードを入力してもログインできない。

  1. ブログサイトのIPアドレス直指定してアクセスした場合 (http://xxx.xxx.xxx.xxx/wp-admin)

管理画面の表示、管理画面へのログインは問題ないが、テーマのプレビューを行おうとした場合に"Non-existent changeset UUID."というメッセージが表示され、正常にプレビューを行えない。

Wordpressの設定

管理画面 > 設定 > 一般設定

WordPress アドレス (URL): http://xxx.xxx.xxx.xxx // サーバのIP直指定 サイトアドレス (URL): http://example.com/blog

ECサイト側のNginxの設定

nginx version: nginx/1.11.8

server { listen 80; server_name example.com; location ~ ^/(blog|wp-admin|wp-login) { # REVERSE PROXY proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://xxx.xxx.xxx.xxx; // IP直指定 } location / { rewrite ^(.*)$ https://example.com$request_uri permanent; } }

ブログサイト側のWebサーバの設定(Apache)

ConoHaのkusanagi
Apache/2.4.25 (Unix)

<VirtualHost xxx.xxx.xxx.xxx:80> ServerAdmin webmaster@example.com DocumentRoot /home/kusanagi/my_blog/DocumentRoot # ServerName myblog ErrorLog /home/kusanagi/myblog/log/httpd/error.log CustomLog /home/kusanagi/myblog/log/httpd/access.log kusanagi env=!no_log <Directory "/home/kusanagi/myblog/DocumentRoot"> Header append Access-Control-Allow-Origin * Header append Access-Control-Allow-Methods "GET,HEAD,PUT,PATCH,POST,DELETE" Require all granted AllowOverride All Options FollowSymlinks </Directory> <ifModule mod_rewrite.c> RewriteEngine Off RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] </ifModule> </VirtualHost>

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

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

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

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

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

CHERRY

2017/03/31 00:16

WordPress のURLの設定は、どうなっていますか?
nononono

2017/03/31 04:44

Wordpressの設定の箇所に記載済みです。WordpressのブログサイトにはIPアドレスからのみアクセスできます。
guest

回答2

0

ベストアンサー

自分なら、裏のブログを
/ ではなく /blog/ で動かしておきますが…

「ログインできない。」ときの挙動はどんな感じでしょうか?

投稿2017/03/30 23:30

takotakot

総合スコア1111

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

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

nononono

2017/03/31 04:38

なるほど試してみます。
nononono

2017/03/31 16:41

Wordpressの設置先を/blog/に移動して、WordpressのURL設定と.htaccessの設定を調整することで解決できました。ありがとうございます。
takotakot

2017/04/11 04:27

解決して良かったです。 「適切な」設定をすれば、設置先を /blog/ にせずとも動作させられるはずですが、ノウハウが足りないときは、できるだけ環境を揃えた状況で試すというのが良くあることです。 http://example.com/wp-admin へのリダイレクトがされる点で、こちらをお勧めしました。
guest

0

詳しい事象がわからないので参考情報として・・・

WordpressはReverse Proxyを入れて運用することを想定して作られていないため、
Reverse Proxyを入れて動かす場合には発生したトラブルに一つ一つL7レイヤーで対応する必要があります。

具体的にはReverse Proxyを入れていると、設定を変えただけやプラグインを入れただけで無限リダイレクトループや、管理画面にアクセスできない等の事象が発生します。

ですので、具体的にどのような事象が発生しているかわからないと何の回答もできません。

投稿2017/03/31 00:07

moonphase

総合スコア6621

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

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

nononono

2017/03/31 04:41

ブログサイトへのアクセス方法で起きる事象が異なります 1. ドメイン指定(リバースプロキシ経由)してアクセスした場合 (http://example.com/blog/wp-admin) 管理画面のログイン画面へとアクセスすることは出来たものの、正しいメールアドレス、パスワードを入力してもログインできない。ログイン画面へとリダイレクト? 2. ブログサイトのIPアドレス直指定してアクセスした場合 (http://xxx.xxx.xxx.xxx/wp-admin) 管理画面の表示、管理画面へのログインは問題ないが、テーマのプレビューを行おうとした場合に"Non-existent changeset UUID."というメッセージが表示され、正常にプレビューを行えない。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問