Chạy WebApps trên server theo cách đơn giản nhất
Warning: Khi bạn cần 1 thứ nhanh chóng và đơn giản cho 1 việc đơn giản(như đồ án chẳng hạn) thì nó có thể hữu ích
Trong bài viết này, tôi giả sử mình đang chạy 1 app Nodejs tại địa chỉ 192.168.0.6: 3002.
Về cơ bản thì ta vẫn sẽ chạy app như trên localhost thôi, ta sẽ cần chạy app (1 tiến trình) trên 1 port nào đó, sau đó mở port đó để các máy tính khác có thể truy cập, vì vậy cần chuẩn bị 1 số thứ:
– SSH
– Rsync
Sau đó cài đặt các gói sau trên server:
– WebServer: Nginx
– Database: mysql
1. Đầu tiên, hãy sync source code của mình lên server:$ rsync -avzhe ssh source.zip root@192.168.0.6:/my_folder
2. Sau đó chạy app: $ npm start
3. Bây giờ hãy mở port để người dùng có thể truy cập:
http: $ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sql: $ sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
App’s port: $ sudo iptables -A INPUT -p tcp --dport 3002 -j ACCEPT
4. Lúc này kiểm tra xem app đã chạy chưa: $ netstat -ntlp
App của ta đã chạy thành công.
5. Bây giờ, hãy tạo 1 services để và quản lí nó bằng systemctl$ cd /lib/systemd/system
$ vi demo_app.service
[Unit] Description=carid-cms [Service] Type=simple PIDFile=/my_folder/demo_app.pid ExecStart=/bin/sh -c 'cd /my_folder/demo_app/; npm start' ExecStop=/bin/kill $MAINPID ExecStopPost=/bin/rm /my_folder/demo_app/carid-cms.pid Restart=on-failure User=root Group=root SuccessExitStatus=143 [Install] WantedBy=multi-user.target
6. Tuy nhiên khi vào trình duyệt mà gõ: 192.168.0.6: 3002 thì trông nó không đẹp, hãy config nginx 1 chút:$ cd /etc/nginx/conf.d
$ vi demo_app.conf
server { listen 80; server_name 192.168.0.6; charset UTF-8; access_log /var/log/nginx/access.log ltsv; include /etc/nginx/proxy.conf; include /etc/nginx/html5app.conf; include /etc/nginx/security.conf; location = /503.html { root /usr/share/nginx/html; } location / proxy_pass http://127.0.0.1:3002/; } location ~ /\.git { deny all; } location ~ /\.ht { deny all; } }
Hoàn thành, hãy vào trình duyệt gõ: 192.168.0.6 và tận hưởng!
Summary: Qua bài viết này, tôi muốn chia sẻ
– Cách deploy web app đơn giản
– Một số câu lệnh linux hay gặp
Enjoy!