# systemctl disable httpd
# dnf install -y nginx
# systemctl start nginx
# systemctl enable nginx
# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent --add-service=https
# firewall-cmd --reload
# vi /etc/nginx/conf.d/00_secureauth.conf << __EOF__
server {
listen 80;
server_name your_domain_or_ip; # サーバーのIPアドレスまたはドメイン名
# 1. Django (Gunicorn) へのルーティング
location /api/ {
proxy_pass http://192.168.1.198:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# 2. Djangoの静的ファイル (管理画面用など)
location /static/ {
alias /home/takahab/Make/DjangoNextAuth/backend/static/;
}
# 3. Next.js へのルーティング
location / {
proxy_pass http://192.168.1.198:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
__EOF__
# nginx -t
# systemctl restart nginx
# setsebool -P httpd_can_network_connect 1
# systemctl restart nginx
【本番起動】
# PM2をグローバルにインストール
# npm install -g pm2
# Next.jsのプロジェクトディレクトリに移動
$ cd /home/takahab/Make/DjangoNextAuth/frontend
# PM2でNext.jsを起動(名前を "nextjs-app" とする)
$ pm2 start npm --name "nextjs-app" -- run start -- -p 3000
# サーバー起動時にPM2自体を自動起動するコマンドを生成
$ pm2 startup systemd
表示されたコマンドをコピペしてrootで実行。
# sudo env PATH=$PATH:/usr/local/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u takahab --hp /home/takahab
# su - takahab
$ pm2 save
$ pm2 start
$ cd /home/takahab/Make/DjangoNextAuth/backend
$ . ./env
$ pip install gunicorn
$ sudo vi /etc/systemd/system/gunicorn.service << __EOF__
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=nginx
Group=nginx
WorkingDirectory=/var/www/DjangoNextAuth/backend
Environment="PYTHONPATH=/var/www/DjangoNextAuth/.venv/lib/python3.14/site-packages"
ExecStart=/usr/bin/python3.14 /var/www/DjangoNextAuth/.venv/bin/gunicorn \
--workers 3 \
--bind 127.0.0.1:8000 \
Config.wsgi:application
[Install]
WantedBy=multi-user.target
__EOF__
# systemctl daemon-reload
# systemctl restart gunicorn
# systemctl status gunicorn
※Djangoでエラーの場合、
$ . ./env
手動で実行してエラーを確認。
$ ../.venv/bin/gunicorn --bind 127.0.0.1:8000 Config.wsgi:application
# semanage fcontext -a -t bin_t "/home/takahab/Make/DjangoNextAuth/\.venv/bin(/.*)?"
# semanage fcontext -a -t httpd_sys_content_t "/home/takahab/Make/DjangoNextAuth/backend(/.*)?"
restorecon -R -v /home/takahab/Make/DjangoNextAuth/
semanage fcontext -a -t bin_t "/home/takahab/Make/DjangoNextAuth/.venv/bin(/.*)?"
※Next.jsでエラーの場合。
$ pm2 delete all$ pm2 start npm --name "nextjs-app" -- run start -- -p 3000
$ pm2 save
$ pm2 delete all
[PM2][WARN] No process found
(.venv) [takahab@rocky92 frontend]$ pm2 status
┌────┬───────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
└────┴───────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
host metrics | cpu: 2.5% | ram usage: 22.7% | enp5s0: ⇓ 0.005mb/s ⇑ 0.007mb/s drop 40/min | disk: ⇓ 0.014mb/s ⇑ 0.308mb/s /m2_2 75.67% /m2_1 65.91% /boot 61.14% |
(.venv) [takahab@rocky92 frontend]$ pm2 start npm --name "nextjs-app" -- run start -- -p 3000
[PM2] Starting /usr/local/bin/npm in fork_mode (1 instance)
[PM2] Done.
┌────┬───────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├────┼───────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ nextjs-app │ default │ N/A │ fork │ 71292 │ 0s │ 0 │ online │ 0% │ 14.0mb │ takahab │ disabled │
└────┴───────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
host metrics | cpu: 0.5% | ram usage: 22.6% | enp5s0: ⇓ 0.004mb/s ⇑ 0.006mb/s drop 44/min | disk: ⇓ 0mb/s ⇑ 0.602mb/s /m2_2 75.67% /m2_1 65.91% /boot 61.14% |
(.venv) [takahab@rocky92 frontend]$ pm2 save
[PM2] Saving current process list...
[PM2] Successfully saved in /home/takahab/.pm2/dump.pm2
0 件のコメント:
コメントを投稿