Tôi có hai ứng dụng.
- Ứng dụng Laravel - Là một trang web động. Không có
dữ liệu-kiến thức. Tất cả dữ liệu được lấy từ ứng dụng thứ hai
sử dụng các yêu cầu AJAX. chạy trên
127.0.0.1:8000
.
- ứng dụng rỉ sét - Một ứng dụng web có chứa tất cả các doanh nghiệp
logic và truy cập dữ liệu. chạy trên
127.0.0.1:8080
.
Cả hai ứng dụng cần phải được truy cập từ URL ví dụ.com
.
Đối với điều này, tôi muốn sử dụng Nginx Reverse Proxy. Tôi đã có thể định tuyến lại tất cả các yêu cầu đến Ứng dụng Laravel của mình.
sự kiện {}
http {
người phục vụ {
nghe 80;
# Trang mạng
địa điểm / {
proxy_pass http://127.0.0.1:8000;
}
}
}
Trong khi Ứng dụng Laravel hoạt động, tôi thực sự cần cấu hình Nginx sau:
- Các trang cụ thể như
/Tin tức
, /
, /xung quanh
,/liên hệ
,... nên được chuyển hướng đến 127.0.0.1:8000
.
- Lưu ý: Các trang trên có thể chứa các tham số GET như ví dụ:
/news?article=abc
.
- TẤT CẢ các yêu cầu khác cần được chuyển hướng đến
127.0.0.1:8080
.
- Lưu ý: 127.0.0.1:8080 thường có thể chứa tên miền phụ. Nhưng tên miền phụ này cần hoạt động như một ký tự đại diện và không xác định tại thời điểm định cấu hình. Ví dụ:
kinh doanh1.example.com
, kinh doanh2.example.com
, businnesX.example.com
,...
Tên miền phụ trả về một trang được cá nhân hóa mà số lượng doanh nghiệp không giới hạn có thể yêu cầu trên example.com.
Làm thế nào tôi có thể đạt được cấu hình này? Tôi đã suy nghĩ một cái gì đó như thế này?
#PSEUDO
sự kiện {}
http {
người phục vụ {
nghe 80;
# Trang mạng
địa điểm / {
proxy_pass http://127.0.0.1:8000;
}
vị trí / tin tức {
proxy_pass http://127.0.0.1:8000;
}
địa điểm/giới thiệu {
proxy_pass http://127.0.0.1:8000;
}
# Đăng kí
địa điểm * {
proxy_pass http://127.0.0.1:8080;
}
}
}
Chỉnh sửa về câu trả lời của Tero:
Tôi cần một loại ký tự đại diện cho tên miền phụ.
# Ứng dụng bắt tất cả
địa điểm / {
proxy_pass http://$subdomain.$application;
}
abc.example.com cần truy cập abc.127.0.0.1:8080
def.example.com cần truy cập def.127.0.0.1:8080
...
Tôi biết một IP không thể có tên miền phụ nhưng đừng lo lắng về điều đó. Tôi đã giải quyết điều đó với máy chủ ảo.
Chỉnh sửa 2 - Chuyển tên miền phụ của yêu cầu tới proxy_pass:
người phục vụ {
nghe 80;
server_name *.website.com;
server_name ~^(?<tên miền phụ>.+)\.website\.com$;
địa điểm / {
proxy_pass http://$subdomain.vhost.local:8080;
}
}
Đây có phải là cách chính xác để chuyển hướng dynamicxxx.website.com sang dynamicxxx.vhost.local:8080 không?