Hướng dẫn cấu hình ngắn gọn sau đây cho phép bạn cấu hình Nginx để chạy ứng dụng Node.js

nodejs-nginx

Giả sử Node.js đang chạy trên localhost và cổng 3000 với domain là your_domain.com

1. Cấu hình Nginx

server {
        listen    80;
        server_name  your_domain.com www.your_domain.com;
        access_log off;
        error_log  /var/node/your_domain.com/logs/nginx-error_log crit;

location ~* .(gif|jpg|jpeg|png|ico|wmv|3gp|avi|mpg|mpeg|mp4|flv|mp3|mid|js|css|html|htm|wml)$ {
       root /var/node/your_domain.com/public;
       expires 365d;
}

location / {
        client_max_body_size    10m;
        client_body_buffer_size 128k;

        proxy_send_timeout   90;
        proxy_read_timeout   90;
        proxy_buffer_size    128k;
        proxy_buffers     4 256k;
        proxy_busy_buffers_size 256k;
        proxy_temp_file_write_size 256k;
        proxy_connect_timeout 30s;

        proxy_pass   http://127.0.0.1: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;
        }
}

2. Cấu hình Websockets

Nếu ứng dụng của bạn sử dụng Websocket, bạn cần phải thêm cấu hình sau:

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;

Sau khi cài cấu xong hãy nhớ khởi động lại Nginx.

That’s it !

3. Liên kết tham khảo

Cấu hình Nginx: https://www.digitalocean.com/community/tutorials/how-to-configure-the-nginx-web-server-on-a-virtual-private-server
Cấu hình Nginx làm Reverse Proxy chạy Node.js https://www.digitalocean.com/community/tutorials/how-to-deploy-node-js-applications-using-systemd-and-nginx

About The Author

  • Hieu Tran

    anh cho e hỏi, nếu e có 1 cái host hỗ trợ PHP thì e có thể deploy dự án Nodejs lên đó đc ko ạ?

    • nếu host đơn thuần để chạy các website php, hay asp.net thì ko được bạn ạ. host đó cần phải được cài các chương trình cần thiết lên đó. bạn có thể thuê 1 cái VPS để thể thử nghiệm 🙂

  • hocbanbe

    Chào bạn! Mình mới tìm hiểu về node js. Mình có xem trên mạng mấy code về chat. Mình cài node ở laptop và thực hiện ok. Nhưng mình không biết làm thế nào để đưa lên mạng được. Mình có mua một vps để thử. Giả sử tên miền của mình là lodulove.net
    Mình muốn nó chạy trên tên miền đó thì phải làm thế nào? Mình dùng vps centos. Mình có đọc bài viết trên nhưng do mới nên mình chưa hiểu lắm…
    Mong bạn giúp đỡ! Cảm ơn bạn!

    • Ở trên là mình tổng hợp lại cấu hình ngắn gọn để tham khảo. Nếu bạn chưa quen, thì xem hướng dẫn chi tiết ở link tham khảo: Hướng dẫn cấu hình Nginx trên VPS này trước. https://www.digitalocean.com/community/tutorials/how-to-configure-the-nginx-web-server-on-a-virtual-private-server

      • hocbanbe

        Cảm ơn bạn! Bạn có thể teamview qua máy mình rồi,làm mình xem qua được ko! Do mình tự mò,không được học chuyên về công nghệ thông tin nên hơi khó khăn.

        • Về việc đưa lên #internet bạn hãy gọi người bán VPS cho bạn. Nhờ họ hỗ trợ về kỹ thuật cài Nginx và trỏ domain. Sao lại 1 mình mò mẫm thế 😀

          • hocbanbe

            Mình mua vps của vultr! Bên này mình phải tự làm lấy hết. Nó không hỗ trợ những việc như này đâu bạn! Vài nginx và trỏ domain thì mình làm được. Nhưng khoản mà cho chạy nodejs kiểu domain.com:3000 thì mình không rõ làm thế nào! Demo mình làm ở máy mình https://www.youtube.com/watch?v=nqpAU4EzEYo ,mún đưa lên vps chạy thử mà chịu bạn à

          • Về bài hướng dẫn này, có 2 bước cấu hình nginx ở trên. Bạn đọc có chỗ nào ko hiểu ko ?

      • hocbanbe

        Mình có xem nhiều video trên youtube.com về nodejs nhưng mọi người chỉ thực hiện ở localhost còn việc đưa nó hoạt động trên internet thì mình không tim thấy!

  • Phan Thiên Tuấn

    Hi, mình mới tự học node js, Mình có làm 1 cái project nodejs express và có mua 1 cái server ảo, 1 domain đã trỏ đến ip server . Hiện mình chạy thử project bằng npm của node js thì ok nhưng phải có post của server đó kèm theo. Lam thế nào để thay vì phải truy cập doamin:port mình chỉ cần nhập domain thôi!? file để chạy server là www trong bin! Mình có down thử winnginx về nhưng vẫn không biết làm sao :(. Không biết bạn có thể chỉ mình k?

    • Bạn trao đổi chi tiết với admin trên fanpage Nodejs Vietnam nhé! Như mình thấy bạn mô tả có vẻ hơi mơ hồ công việc mình đang làm, hãy thử trước! Lỗi nhỏ, mô tả các bước thực hiện, thì mọi người mới giúp được. 🙂