diff --git a/DEPLOYMENT_SSH_GUIDE.md b/DEPLOYMENT_SSH_GUIDE.md index 3064b9c..c992c1b 100644 --- a/DEPLOYMENT_SSH_GUIDE.md +++ b/DEPLOYMENT_SSH_GUIDE.md @@ -1,7 +1,7 @@ -# π SSH λ°°ν¬ κ°μ΄λ +# π SSH λ°°ν¬ κ°μ΄λ (v9) -**λͺ©ν**: SSHλ‘ μ격 μλ²μ μ§μ μ μνμ¬ νκ²½μ νμ ν ν λ°°ν¬ -**λμ**: 178.104.200.7 (κ³΅μΈ IP) / 192.168.123.100 (λ΄λΆ IP) +**λͺ©ν**: SSHλ‘ μ격 μλ²μ μ§μ μ μνμ¬ λ°°ν¬ +**νκ²½**: hz-prod-01 (κ³΅μΈ IP 178.104.200.7 / λ΄λΆ IP 172.17.0.1) --- @@ -17,61 +17,84 @@ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N "" #### 1.2 κ³΅κ° ν€λ₯Ό μ격 μλ²μ λ±λ‘ ```bash ssh-copy-id -i ~/.ssh/id_ed25519.pub kjh2064@178.104.200.7 -# λλ λ΄λΆ IP -ssh-copy-id -i ~/.ssh/id_ed25519.pub kjh2064@192.168.123.100 ``` #### 1.3 SSH μ°κ²° ν μ€νΈ ```bash -ssh -i ~/.ssh/id_ed25519 kjh2064@192.168.123.100 "echo 'β μ°κ²° μ±κ³΅'" +ssh -i ~/.ssh/id_ed25519 kjh2064@178.104.200.7 "echo 'β μ°κ²° μ±κ³΅'" ``` --- ## π Step 1: νκ²½ νμ -### μμ€ν μ 보 νμΈ +### μ격 μλ² μ 보 νμΈ ```bash -# SSH μ μ -ssh -i ~/.ssh/id_ed25519 kjh2064@192.168.123.100 - -# μ격 μλ²μμ μ€ν: -# βββββββββββββββββββββββββββββββββββββββββββββ +ssh kjh2064@178.104.200.7 << 'EOF' # 1. μμ€ν μ 보 +echo "=== μμ€ν μ 보 ===" +hostname uname -a lsb_release -a -# 2. λμ€ν¬ μν +# 2. λ°°ν¬ κ²½λ‘ +echo -e "\n=== λ°°ν¬ κ²½λ‘ ===" +ls -la /home/kjh2064/quantengine_active/ || echo "μμ§ μμ (첫 λ°°ν¬)" +ls -la /home/kjh2064/quantengine_backup/ + +# 3. μλΉμ€ μν +echo -e "\n=== quantengine μλΉμ€ ===" +sudo systemctl status quantengine --no-pager + +# 4. Nginx μ€μ +echo -e "\n=== Nginx /quant μ€μ ===" +cat /etc/nginx/sites-available/gitea-ip.conf | grep -A 10 "location /quant" + +# 5. ν¬νΈ μν +echo -e "\n=== ν¬νΈ μν ===" +sudo netstat -tuln | grep -E ":80|:443|:5000" + +# 6. λμ€ν¬ μν +echo -e "\n=== λμ€ν¬ ===" df -h -# 3. μΉ μλ² μν -sudo systemctl status nginx - -# 4. μΉ μλ² κ²½λ‘ -ls -la /var/www/quant/ -ls -la /var/www/quant/publish/ - -# 5. Nginx μ€μ νμΈ -sudo cat /etc/nginx/sites-available/default | grep -A 10 "location" - -# 6. ν¬νΈ μν -sudo netstat -tuln | grep :80 - -# 7. μ¬μ©μ κΆν νμΈ -id -sudo -l +EOF ``` ### μμ νκ²½ ``` -β Linux (Ubuntu 20.04 λλ κ·Έ μ΄μ) -β nginx (1.18 μ΄μ) -β /var/www/quant/ λλ ν 리 μ‘΄μ¬ λλ μμ± κ°λ₯ -β www-data λλ μ μ¬ μΉ μλ² μ¬μ©μ -β sudo κΆν (webmaster κ·Έλ£Ή) +β Linux (Ubuntu 20.04+) +β nginx 1.28.3 (reverse proxy) +β /home/kjh2064/quantengine_active/ λ°°ν¬ κ²½λ‘ +β quantengine systemd μλΉμ€ +β ν¬νΈ 5000μμ .NET μ± μ€ν +β sudo κΆν (quantengine μλΉμ€ μ μ΄) +``` + +--- + +## ποΈ λ°°ν¬ μν€ν μ² + +``` +ββββββββββββββββββββββββββββββββββββββββββββββββββββββ +β μ¬μ©μ (μΈλΆ μΈν°λ·) β +β http://178.104.200.7/quant/ β +βββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ + β κ³΅μΈ IP (ν¬νΈ 80) +βββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββ +β Nginx (reverse proxy) β +β /etc/nginx/sites-available/gitea-ip.conf β +β location /quant/ β proxy_pass http://127.0.0.1:5000/ +βββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ + β localhost:5000 +βββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββ +β quantengine (systemd μλΉμ€) β +β /home/kjh2064/quantengine_active/ β +β QuantEngine.Web.dll (μ€ν μ€) β +ββββββββββββββββββββββββββββββββββββββββββββββββββββββ ``` --- @@ -79,7 +102,7 @@ sudo -l ## π¦ Step 2: Release λΉλ ```bash -# λ‘컬μμ μ€ν +# λ‘컬 κ°λ° λ¨Έμ μμ μ€ν cd /c/Temp/data_feed # Release λΉλ @@ -88,20 +111,21 @@ dotnet publish -c Release \ # κ²°κ³Ό νμΈ ls -lh src/dotnet/QuantEngine.Web/publish/ +du -sh src/dotnet/QuantEngine.Web/publish/ ``` --- -## π Step 3: λ°°ν¬ μ€ν¬λ¦½νΈ μ€ν +## π Step 3: λ°°ν¬ λ°©λ² ### λ°©λ² 1: μλ λ°°ν¬ μ€ν¬λ¦½νΈ (κΆμ₯) ```bash # μ€ν¬λ¦½νΈμ μ€ν κΆν λΆμ¬ -chmod +x deploy-manual.sh +chmod +x deploy-production.sh # λ°°ν¬ μ€ν -./deploy-manual.sh 192.168.123.100 +./deploy-production.sh # λλ ./deploy-manual.sh 178.104.200.7 ``` @@ -109,115 +133,180 @@ chmod +x deploy-manual.sh **μ€ν¬λ¦½νΈκ° μλμΌλ‘:** - β SSH μ°κ²° νμΈ - β μ격 νκ²½ νμ +- β μλΉμ€ μ€μ§ - β λ°±μ μμ± - β νμΌ μ μ‘ (rsync) -- β κΆν μ€μ -- β nginx μ¬μμ +- β νμΌ κ²μ¦ +- β μλΉμ€ μμ - β ν¬μ€ μ²΄ν¬ ### λ°©λ² 2: μλ λ°°ν¬ (λ¨κ³λ³) +#### Step 2-1: SSH μ μ + ```bash -# 1. SSH μ μ -ssh -i ~/.ssh/id_ed25519 kjh2064@192.168.123.100 +ssh -i ~/.ssh/id_ed25519 kjh2064@178.104.200.7 +``` -# μ격 μλ²μμ: -# βββββββββββββββββββββββββββββββββββββββββββββ +#### Step 2-2: μλΉμ€ μ€μ§ λ° λ°±μ -# 2. λ°±μ μμ± -sudo mkdir -p /var/www/quant_backup -sudo cp -r /var/www/quant/publish \ - /var/www/quant_backup/quant_$(date +%Y%m%d_%H%M%S) -echo "β λ°±μ μμ± μλ£" +```bash +# μ격 μλ²μμ μ€ν: +set -e -# 3. λ°°ν¬ λλ ν 리 μ€λΉ -sudo mkdir -p /var/www/quant/publish -sudo chmod 777 /var/www/quant/publish +SERVICE_NAME="quantengine" +DEPLOY_PATH="/home/kjh2064/quantengine_active" +BACKUP_PATH="/home/kjh2064/quantengine_backup" +BACKUP_NAME="quantengine_$(date +%Y%m%d_%H%M%S)" -# 4. κΆν μ€μ -sudo chown -R www-data:www-data /var/www/quant/publish -sudo chmod -R 755 /var/www/quant/publish +# μλΉμ€ μ€μ§ +sudo systemctl stop $SERVICE_NAME +sleep 2 +echo "β μλΉμ€ μ€μ§" -# 5. SSH μ’ λ£ +# λ°±μ μμ± +mkdir -p $BACKUP_PATH +if [ -d $DEPLOY_PATH ]; then + cp -r $DEPLOY_PATH "$BACKUP_PATH/$BACKUP_NAME" + echo "β λ°±μ : $BACKUP_PATH/$BACKUP_NAME" +else + mkdir -p $DEPLOY_PATH + echo "β οΈ μ²« λ°°ν¬" +fi +``` + +#### Step 2-3: SSH μ’ λ£ + +```bash exit ``` +#### Step 2-4: νμΌ μ μ‘ (λ‘컬μμ) + ```bash -# λ‘컬μμ: νμΌ μ μ‘ rsync -avz --delete \ -e "ssh -i ~/.ssh/id_ed25519" \ src/dotnet/QuantEngine.Web/publish/ \ - kjh2064@192.168.123.100:/var/www/quant/publish/ + kjh2064@178.104.200.7:/home/kjh2064/quantengine_active/ ``` +#### Step 2-5: μλΉμ€ μμ + ```bash -# λ€μ SSH μ μ -ssh -i ~/.ssh/id_ed25519 kjh2064@192.168.123.100 +ssh -i ~/.ssh/id_ed25519 kjh2064@178.104.200.7 << 'EOF' -# μ격 μλ²μμ: -# βββββββββββββββββββββββββββββββββββββββββββββ +SERVICE_NAME="quantengine" +DEPLOY_PATH="/home/kjh2064/quantengine_active" -# 6. nginx μ¬μμ -sudo systemctl restart nginx +# νμΌ κ²μ¦ +if [ -f $DEPLOY_PATH/QuantEngine.Web.dll ]; then + echo "β νμΌ νμΈλ¨" +else + echo "β νμΌ μμ" + exit 1 +fi -# 7. μν νμΈ -sudo systemctl status nginx +# μλΉμ€ μμ +sudo systemctl start $SERVICE_NAME +sleep 3 -# μ’ λ£ -exit +# μν νμΈ +if sudo systemctl is-active --quiet $SERVICE_NAME; then + echo "β μλΉμ€ μμλ¨" +else + echo "β μλΉμ€ μμ μ€ν¨" + exit 1 +fi + +EOF ``` --- ## β Step 4: λ°°ν¬ κ²μ¦ -```bash -# 1. HTTP μν νμΈ -curl -I http://178.104.200.7/quant/ -# λλ -curl -I http://192.168.123.100/quant/ +### HTTP μν νμΈ +```bash +# κ³΅μΈ IPλ‘ μ κ·Ό (μΈλΆ μ¬μ©μ κΈ°μ€) +curl -I http://178.104.200.7/quant/ # κΈ°λ: HTTP/1.1 200 OK -# 2. MudBlazor λ‘λ νμΈ +# localhost:5000 μ§μ νμΈ (μλ²μμ) +ssh kjh2064@178.104.200.7 'curl -I http://127.0.0.1:5000/' +# κΈ°λ: HTTP/1.1 200 OK +``` + +### MudBlazor 리μμ€ νμΈ + +```bash curl -s http://178.104.200.7/quant/ | grep -c "MudBlazor" # κΈ°λ: > 0 +``` -# 3. νμ΄μ§ μ λͺ© νμΈ +### νμ΄μ§ μ λͺ© νμΈ + +```bash curl -s http://178.104.200.7/quant/ | grep -o "