Tại văn phòng địa phương của chúng tôi, chúng tôi có một máy chủ phát triển, với loại tài nguyên hạn chế. Khi nhiều nhà phát triển đang sử dụng máy chủ này, tải sẽ trở nên rất lớn đối với nó, đến mức nó bắt đầu không phản hồi (hiện tại có 6 nhà phát triển khác nhau đang làm việc trên cùng một máy chủ của nhà phát triển và điều đó cho thấy, khi tất cả chúng tôi đang thực hiện công việc) . Tuy nhiên, tất cả chúng ta đều có máy tính xách tay khá mạnh và chúng tôi đang cố gắng triển khai môi trường phát triển, trong đó thay vì làm việc trên máy chủ phát triển, mỗi máy tính xách tay của lập trình viên sẽ trở thành máy chủ phát triển cá nhân của riêng anh ta.
Vấn đề lớn nhất mà chúng tôi đang gặp phải là chúng tôi chỉ có một địa chỉ IP chuyên dụng duy nhất trong văn phòng vào lúc này. Đây không phải là vấn đề khi tất cả chúng tôi đang phát triển trên máy chủ nhà phát triển, vì máy chủ nhà phát triển đã apache
được cài đặt và mỗi lập trình viên có một tên miền phụ cụ thể, vì vậy mọi người đều có thể truy cập tài nguyên cá nhân của mình với sự trợ giúp của apache.
Cách duy nhất chúng tôi quản lý để phá vỡ điều này vào lúc này là sử dụng máy chủ nhà phát triển cũ như một loại bộ định tuyến. Cách mọi thứ được thiết lập vào lúc này là chúng tôi có một tên miền, hãy gọi nó là dev.com
. Mỗi lập trình viên có một tên miền phụ dưới tên miền này, theo thứ tự sau: lập trình viên1.dev.com
, lập trình viên2.dev.com
, v.v. DNS cho dev.com
tên miền, trỏ đến địa chỉ IP bên ngoài của bộ định tuyến của chúng tôi và bộ định tuyến được thiết lập, bất kỳ yêu cầu nào thông qua 80
hoặc 443
cổng, nên được định tuyến đến địa chỉ IP cục bộ của máy chủ nhà phát triển cũ của chúng tôi, từ đó apache, sử dụng Proxy Pass
chỉ thị và tên máy chủ
đã nhận, định tuyến các cuộc gọi đến địa chỉ IP cục bộ cụ thể của từng máy tính xách tay của lập trình viên.
Điều này hiện đang hoạt động, nhưng tôi đã tự hỏi, mức độ tải này sẽ diễn ra trên máy chủ nhà phát triển cũ? Về cơ bản, khi chúng tôi ở trong môi trường phát triển cũ, tải đến từ các quy trình khác nhau mà chúng tôi đang chạy trong quá trình phát triển (ví dụ: gói web
hoặc khác nhau nodejs
các tập lệnh mà chúng tôi đang viết, v.v.) - tất cả những thứ này sẽ biến mất vào lúc này, nhưng dù sao, tất cả các cuộc gọi cũng cần phải đi qua máy chủ trong tương lai?
Một điều tốt khác mà chúng tôi đã giải quyết được với thiết lập này là chứng chỉ SSL. Vì chúng tôi không có địa chỉ IP dành riêng cho từng máy tính xách tay riêng biệt nên chúng tôi chỉ có thể thêm chứng chỉ tự ký vào các trang web mà chúng tôi đang sử dụng ở chế độ phát triển, tuy nhiên, có vẻ như bằng cách sử dụng Proxy Pass
trên máy chủ nhà phát triển cũ, trình duyệt có thể phân giải chứng chỉ được cung cấp bởi Hãy mã hóa
vào tên máy chủ trên máy chủ nhà phát triển cũ và nó không có gì phàn nàn. Các vấn đề có thể phát sinh từ "hack" này trong tương lai?