Cấu hình chuyển hướng Port 80 cho Nodejs trên Cloud Server

Nguyễn Thành Luân 3 phút đọc

Cấu hình NGINX Proxy website cổng 80

Nginx sẽ đóng vai trò reversed proxy và static file server. Nginx sẽ tiếp nhận request từ ngoài Internet thông qua port mặc định 80 (http) và 443 (https) và forward request qua port của app là 3000.

Đối với Ubuntu, 2 file config chính của Nginx nằm ở: /etc/nginx/nginx.conf (config toàn server) và /etc/nginx/sites-available/default (config cho từng web host ảo).

Bước này yêu cầu bạn đã cấu hình DNS của domain trỏ đến địa chỉ IP tĩnh của CloudServer (VD: wiki.matbao.net). Sau đó bạn vào chỉnh sửa file /etc/nginx/sites-available/default, thay toàn bộ nội dung mặc định bằng mẫu bên dưới.

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    # File mặc định khi vào thư mục
    index index.html index.htm;

    # Điều chỉnh kích thước gói upload tối đa
    client_max_body_size 25M;

    # Domain name của web app, có thể một hoặc nhiều domain cùng trỏ đến
    server_name wiki.matbao.net;

    # Forward toàn bộ request sang web app
    location / {
        # Thay đổi port nếu node-web-app chạy trên port khác 3000
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Nếu muốn dùng cùng config cho nhiều web host ảo, bạn có thể chuyển một số directive ở trên như indexclient_max_body_size vào trong config toàn server tại /etc/nginx/nginx.conf.

Sau khi chỉnh sửa xong Nginx config như trên. Bạn có thể thử kiểm tra config mới có hợp lệ hay không bằng lệnh:

sudo nginx -t
# -> nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
# -> nginx: configuration file /etc/nginx/nginx.conf test is successful

Nếu config mới OK, bạn khởi động lại Nginx bằng lệnh sau:

sudo systemctl restart nginx
 

Sau khi Nginx được restart, bạn vào thử website tại domain đã cài đặt ở trên với URL không thêm port (https://wiki.matbao.net). Nếu website hiện ra thì bạn đã cài đặt thành công. Nếu bạn thấy lỗi “Bad Gateway”, tức là cấu hình Nginx vừa rồi chưa thành công và cần phải rà soát lại.

Chúc các bạn thành công!!!