Tôi có 3 ứng dụng khác nhau được triển khai trên cùng một máy chủ. Mỗi trên các cổng khác nhau
- Một ứng dụng java API chạy trên cổng 8080. thư mục (/nhà/api/)
- Ứng dụng web nextjs thứ hai chạy trên cổng 3000. thư mục (/nhà/web)
- Ứng dụng bảng quản trị vuejs thứ ba trên cổng mặc định 80 được triển khai bên trong thư mục con (/var/www/html/admin)
Đây là tệp cấu hình apache test.conf
Tên máy chủ www.test.com
Quản trị viên web ServerAdmin@localhost
Tài liệuRoot /var/www/html
Nhật ký lỗi ${APACHE_LOG_DIR}/error.log
Nhật ký tùy chỉnh ${APACHE_LOG_DIR}/access.log kết hợp
# Thiết lập proxy ngược cho tất cả máy chủ
ProxyPreserveHost Bật
ProxyPass/admin http://localhost/admin
ProxyPassReverse/admin http://localhost/admin
ProxyPass/api http://localhost:8080/api
ProxyPassReverse/api http://localhost/api
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost/
API đang hoạt động tốt tại http://test.com/api URL.
Trang web cũng đang hoạt động tốt tại http://test.com URL.
Sự cố xảy ra khi tôi truy cập http://test.com/admin URL.
Nó hiển thị lỗi sau trong trình duyệt: -
Trình duyệt của bạn đã gửi một yêu cầu mà máy chủ này không thể hiểu được. Kích thước của trường tiêu đề yêu cầu vượt quá giới hạn máy chủ.
với mã trạng thái 400 Yêu cầu không hợp lệ và Nếu tôi xóa quản trị viên panel từ proxy ngược và tạo một tệp vhost khác với cấu hình đơn giản như bên dưới: -
Đây là một tệp cấu hình vhost apache khác kiểm tra-admin.conf
Tên máy chủ www.test.com
Quản trị viên web ServerAdmin@localhost
Tài liệuRoot /var/www/html/
#LogLevel thông tin ssl:cảnh báo
Nhật ký lỗi ${APACHE_LOG_DIR}/error.log
Nhật ký tùy chỉnh ${APACHE_LOG_DIR}/access.log kết hợp
<Thư mục /var/www/html/admin>
Tùy chọn Chỉ mục FollowSymLinks
AllowOverride All
Yêu cầu tất cả cấp
Lệnh cho phép, từ chối
cho phép từ tất cả
</Thư mục>
sau đó URL khác ngừng hoạt động hiển thị 404 không tìm thấy lỗi.
Ghi chú:- www.test.com chỉ để đại diện cho tên miền hoặc IP thực tế.