THẢO LUẬN

thg 4 13, 2023 2:40 CH

vì 3 app của bạn là reactjs nên cách deploy nó cũng đơn giản và đa dạng hơn, ở đây mình đưa ra cho bạn 1 cách nhé.

Ở mỗi app bạn thêm 1 Dockerfile để build app đó, nội dung y hệt như sau:

# build stage
FROM node:lts-alpine as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

# production stage
FROM nginx:stable-alpine as production-stage
COPY --from=build-stage /app/build /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Sau đó là tạo file docker-compose.yml như sau và chạy thôi:

version: '3'

volumes:
  redis:
  db:


services:
  db:
    image: mongo
    volumes:
      - db:/data/db
    restart: unless-stopped
    user: "1000:1000"

  redis:
    image: redis:5-alpine
    volumes:
      - redis:/data
    restart: unless-stopped
    user: "1000:1000"

  app1:
    image: my_app1
    ports:
      - 3000:80
    restart: unless-stopped

  app2:
    image: my_app2
    ports:
      - 3001:80
    restart: unless-stopped

  app3:
    image: my_app3
    ports:
      - 3002:80
    restart: unless-stopped

Như bạn thấy thì cách deploy này là ta build riêng 3 app mỗi app 1 image, trong image đó có 1 con nginx để chạy app của bạn, tất thảy là ta có 3 con nginx riêng rẽ cho từng app.

Bạn thích dùng 1 nginx cho 3 app cũng đc như vậy thì phải sửa đi. Nhìn chung app Frontend thì dễ deploy, và cách deploy thì đa dạng tuỳ từng người từng hoản cảnh. Bạn có thể dùng server Nodejs/php laravel để chạy cũng đc, vì bản chất app react build xong nó ra các file static HTML,CSS, JS rồi, chạy ở đâu cũng đc

0

Mình đang hiểu ý của bạn là CookieStrategy và LocalStrategy của passport.

Việc đặt câu hỏi TẠI SAO trong trường hợp này có vẻ hơi không hợp lý lắm.

Vì CookieStrategy và LocalStrategy là hai chiến lược xác thực trong Passport.js.

CookieStrategy dựa vào cookie để xác thực người dùng khi họ duyệt trang web, phù hợp với ứng dụng web truyền thống.

LocalStrategy sử dụng tên người dùng và mật khẩu để xác thực, thích hợp cho ứng dụng web và di động.

Dùng CookieStrategy khi muốn đăng nhập một lần, LocalStrategy khi yêu cầu nhập thông tin đăng nhập.


Ngoài 2 Strategy (chiến lược) này thì thư viện cũng hỗ trợ rất nhiều Strategy khác mà tuỳ vào từng trường hợp và hệ thống của bạn mà sử dụng cho phù hợp.

Ví dụ: Dự án thực tế hiện tại của mình hỗ trợ 2 kiểu login: Login bằng FORM và login bằng SSO. Thì hiện mình dùng kết hợp OAuth và Local. Và nó được code trong 1 module riêng biệt (một server authentication riêng biệt chỉ chịu trách nhiệm login thôi). Sau khi login thành công bằng FORM hay SSO thì sử dụng JWTStrategy để tạo và xác thực token dựa trên JSON Web Token (JWT) và lưu trữ chúng trong DynamoDB (hoặc Redis)....

Trên đây mình chỉ giải thính sơ sài về CookieStrategy và LocalStrategy nếu bạn quan tâm có thể follow mình. Mình nghĩ tương lai mình sẽ viết thêm vài bài chi tiết về vấn đề này.

0

Hi a, Em có theo dõi serries của anh, đến đây em có thắc mắc sao mình lại chọn local strategy thay vì cookie. Em thấy mình đang dùng cookie. Mong anh giải đáp ạ

+1
thg 4 13, 2023 10:35 SA

Làm thế nào để lấy smtp của docker-mail server này vậy ạ?

0
Avatar
đã bình luận cho bài viết
thg 4 13, 2023 4:10 SA

💯🙌

0

Cái này tùy thuộc vào nghiệp vụ mà xử lý em ạ. Còn cách xử lý có thể dùng code hoặc cấu hình tùy thuộc loại database đó có hỗ trợ hay không.

0
thg 4 13, 2023 3:17 SA

nó dùng việc làm web xem truyện ở cái việc load trang load hình ảnh khi chọn trong danh sách <option></option> à

0
thg 4 13, 2023 3:11 SA

Amazing

+1
thg 4 13, 2023 3:10 SA

Tuyệt vời.

0
Avatar
đã bình luận cho bài viết
thg 4 13, 2023 3:10 SA

Hay quá sốp ơi.

0
thg 4 13, 2023 3:01 SA

MapBox này có đường lưỡi bò á nếu dùng map màu sáng thì thấy rõ luôn á luoibo1.jpgluoibo2.jpg

0

hình như token này chỉ lấy được thông tin của chính mình, bác có cách lấy token nào full quyền như bên facebook không bác

0

Cái ví dụ với LIKE mình k hiểu lắm, muốn nó chỉ ra one thì dùng = là xong mà ??????????

0

Theo như mô hình trong hình phía trên, thì làm sao biết được là data đang read từ slave db hay sharding db vậy a? Hay là cơ chế của db tự động switch nếu có mode master-slave hoặc sharding?

Series bài viết rắt bổ ích với e. Cảm ơn anh, chúc anh có nhiều sức khỏe

0

Cảm ơn bạn đã ủng hộ ^^!

0

Cảm ơn tác giả. Bài viết rất hữu ích.

+1
thg 4 12, 2023 10:23 CH

7 phút để hiểu mongo db hết. Cảm ơn tác giả

0
thg 4 12, 2023 2:17 CH

tks

0
thg 4 12, 2023 2:01 CH

thanks bạn

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí