Webサーバーの運用に詳しくないながらも、いろいろトライしてみましたが、どうにもよい方法が見つからなかったので、お助けください<(_ _)>
やりたいこと
Wordpressを運用しているサーバーで、SPAを公開したいです。
SPAはcreate-react-appで作成し、yarn buildで生成した静的html群(buildディレクトリの中身)です。
ドメインルートでWordpressを公開しているので、サブディレクトリで、SPAを公開したいです。
https://www.hogehoge.jp/ [Wordpressのホームページ]
https://www.hogehoge.jp/app [SPAの公開]
というイメージです。
状況
SPAに関するファイルは、/home/hoge/www/build
に保存されており、npmパッケージのserveを利用して、0.0.0.0:5000(デフォルト設定)で配信しています。
$ serve -s /home/hoge/www/build
React-routerで画面初期値の切り分けを行っており
のような感じでSPAを呼び出すことになります。
serveを利用しているのは、サブURI(12345678の部分)をハンドリングしてくれるからです。
グローバルIPでSPAが動作することは確認しています。
実施したこと
Wordpressようserver設定の中に、下記のようにproxy_passを設定しました。
(proxy_set_header部分は、ググったものをそのまま使っており、理解できていません・・・)
location /app/ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://localhost:5000; }
表示まではされますが、URIがhttp://localhost/app/12345678
で呼び出され、初期値の切り分け情報がappとなり、正しく動作しません。
どのように設定すれば、https://www.hogehoge.jp/app/12345678
をhttp://localhost:5000/12345678
に受け渡すことができるでしょうか?
よろしくお願いします。
####追記
serveでの公開をやめ、nginxにSPA用のサーバーディレクティブ(localhost:4000)を追加し、ログを取ってみたところ、nginxでのリバースプロキシでは、Requestが/12345678に変わっていることが確認できましたが、別の部分で、reactで受けているlocationが/app/12345678になっているようです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。