# dnf install python3.11
# alternatives --install /usr/bin/python python /usr/bin/python3.9 1
# alternatives --install /usr/bin/python python /usr/bin/python3.11 2
# alternatives --install /usr/bin/python python /usr/bin/python3.12 3
OS: Rocky Linux などの Linux サーバー
Apache: httpd
(mod_proxy & mod_rewrite 使用)
Django: mod_wsgi
または gunicorn
経由で Apache に連携
フロントエンドはビルド済みの静的ファイルとして公開
各フロントエンドは /var/www/html/your-app/
にデプロイする前提
bashcd your-cra-project
npm run build
→ build/
ディレクトリが出力される
/etc/httpd/conf.d/myapp.conf
)apache<VirtualHost *:80> ServerName yourdomain.com DocumentRoot /var/www/html/cra-app/build <Directory /var/www/html/cra-app/build> Options -Indexes +FollowSymLinks AllowOverride All Require all granted </Directory> # APIルーティングを Django へプロキシ ProxyPass /api http://127.0.0.1:8000/api ProxyPassReverse /api http://127.0.0.1:8000/api </VirtualHost>
bashnpx create-react-app your-app --template typescript
cd your-app
npm run build
→ 出力は通常の CRA と同じく build/
ディレクトリ
CRA の設定と 同じ構成で OK です(build/
出力の構造が同じなので)
Next.js は SSR や API を含むため、静的配信だけでなく Node.js サーバーとして動かす必要があります。
bashcd your-nextjs-app
npm run build
npm run start
# または pm2 などで常駐化
Next.js は 3000 番ポートなどで動いている前提で、Apache はそれをリバースプロキシします。
apache<VirtualHost *:80> ServerName yourdomain.com ProxyPreserveHost On ProxyPass / http://127.0.0.1:3000/ ProxyPassReverse / http://127.0.0.1:3000/ </VirtualHost>
もしくは、Next.js を next export
で静的ファイルにする方法(制限あり)もあります:
bashnpm run build
npm run export
→ out/
フォルダを /var/www/html/next-exported/
に配置し、CRA と同様に Apache から静的提供
bash<VirtualHost *:80> ServerName yourdomain.com WSGIDaemonProcess mysite python-path=/var/www/django-app:/usr/local/lib/python3.9/site-packages WSGIProcessGroup mysite WSGIScriptAlias /api /var/www/django-app/mysite/wsgi.py <Directory /var/www/django-app/mysite> <Files wsgi.py> Require all granted </Files> </Directory> </VirtualHost>
bashgunicorn --bind 127.0.0.1:8000 mysite.wsgi:application
apacheProxyPass /api http://127.0.0.1:8000/ ProxyPassReverse /api http://127.0.0.1:8000/
構成 | 方法 | メリット | 注意点 |
---|---|---|---|
CRA / TS | Apache で静的配信 | シンプル・高速 | SSRやAPIが使えない |
Next.js | Node.js + Apacheリバースプロキシ | SSR, API, 高機能 | Node.js サーバー管理が必要 |
Django | mod_wsgi or gunicorn + Apache | 高機能・柔軟性 | 設定がやや複雑 |
必要であれば、httpd.conf
や systemd
による gunicorn
/ next.js
常駐化、Let's Encrypt 証明書対応まで含めて、実運用レベルでの手順も提供できます。ご希望があればお知らせください。
# dnf install python3.9 # dnf install python3.11 # dnf install python3.12 # dnf install python3.13 # alternatives --install /usr/bin/python ...