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

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

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

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

nginx

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

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

0回答

1894閲覧

NginxとReactを連携させたい

mask_mus

総合スコア37

HTTP

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

nginx

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

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2020/12/31 22:42

Nginxをプロキシサーバとして、npm startで動いているReactアプリにアクセスしたいと考えています。
Nginxに以下のような設定をしましたが、http://www.example.comのようにアクセスしても、index.htmlしか返ってこず、画面が真っ白になってしまいます。http://www.example.com:3000とポートを指定すると正しくレンダリングされたページが返ってきます。
どのような設定をすれば、80番ポートにアクセスしても正しくレンダリングされるのでしょうか。また、npm run buildはしないでnpm startで公開したいと考えています。

config

1#sites-enabled/default 2server { 3 listen 80 default_server; 4 listen [::]:80 default_server; 5 6 # SSL configuration 7 # 8 # listen 443 ssl default_server; 9 # listen [::]:443 ssl default_server; 10 # 11 # Note: You should disable gzip for SSL traffic. 12 # See: https://bugs.debian.org/773332 13 # 14 # Read up on ssl_ciphers to ensure a secure configuration. 15 # See: https://bugs.debian.org/765782 16 # 17 # Self signed certs generated by the ssl-cert package 18 # Don't use them in a production server! 19 # 20 # include snippets/snakeoil.conf; 21 22 root /var/www/html; 23 24 # Add index.php to the list if you are using PHP 25 index index.html index.htm index.nginx-debian.html; 26 27 server_name www.example.com; 28 29 location / { 30 # First attempt to serve request as file, then 31 # as directory, then fall back to displaying a 404. 32 try_files $uri $uri/ =404; 33 proxy_pass http://127.0.0.1:3000; 34 } 35 36 # pass PHP scripts to FastCGI server 37 # 38 #location ~ .php$ { 39 # include snippets/fastcgi-php.conf; 40 # 41 # # With php-fpm (or other unix sockets): 42 # fastcgi_pass unix:/run/php/php7.3-fpm.sock; 43 # # With php-cgi (or other tcp sockets): 44 # fastcgi_pass 127.0.0.1:9000; 45 #} 46 47 # deny access to .htaccess files, if Apache's document root 48 # concurs with nginx's one 49 # 50 #location ~ /.ht { 51 # deny all; 52 #} 53}

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

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

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

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

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

hoshi-takanori

2020/12/31 23:15

npm start するとおそらく webpack-dev-server が起動するようになってると思いますが、これは開発用のサーバーなので、よほどの理由がない限り npm run build すべきだと思います。npm run build すれば静的ファイルを配置するだけなので nginx だけで済み、別途サーバーを動かす必要はありませんので。
mask_mus

2020/12/31 23:28

ページ遷移後にjsを実行させる必要があったため、Linkコンポーネントを使わず、aタグを使ってページ遷移をしていました。aタグを使うと、npm run buildで公開したところ、遷移先のページが生成されず404になってしまいます。Linkタグをつかうと、ページ遷移後にjsが実行されず、リロードして初めてjsが実行される、という状況になっています。npm startで公開すれば正しく動かせるのですが、このようなケースでnpm run buildする場合、どのようにプログラムを変えていけばよいのでしょうか?
mask_mus

2021/01/01 00:15

解決することができました!本当に本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問