Deploy Rails app với AWS
Hello mọi người, mình đang deploy rails app với capistrano, đã deploy được rails app lên production và check trong shared/tmp/sockets đã có file puma.sock. Mình có cài nginx để làm reverse proxy nhưng test lại thì vẫn không truy cập API được. Nginx mình có config như sau:
upstream cupcake {
server unix:/home/ubuntu/cupcake/shared/tmp/sockets/puma.sock fail_timeout=0;
# unix:///home/ubuntu/cupcake/shared/tmp/sockets/puma.sock
}
server {
listen 80;
return 301 http://13.229.114.123$request_uri;
}
Và check lại các port đã sử dụng trên server thì thấy.
nginx mình check lại status thì vẫn thấy đang chạy, mọi người cho hỏi vấn đề có thể xảy ra là gì ạ, và để mở api mình còn cần phải làm bước nào nữa không ạ.
2 ANSWERS
Cái trên là đầy đủ file cấu hình rồi đấy bạn
Ở đây mình không hiểu dòng return 301 http://13.229.114.123$request_uri;
này cho lắm
Nhưng bạn có thể thử sửa lại như này:
upstream cupcake {
server unix:/home/ubuntu/cupcake/shared/tmp/sockets/puma.sock fail_timeout=0;
# unix:///home/ubuntu/cupcake/shared/tmp/sockets/puma.sock
}
server {
listen 80;
location / {
proxy_pass http://cupcake;
}
}
Bạn đang cài tất cả database, server nginx, ruby ... trên cùng một instance phải ko? Với những thông tin bạn cung cấp mình nghĩ inbound rule security group của instance chưa mở port 80 để traffic từ bên ngoài có thể reach out. Docs: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#working-with-security-groups. Hãy kiểm tra lại security group của instance.
Mình đã config trước đó rồi bạn ạ, bạn xem như thế này có đúng ko