2009-07-21 33 views
16

Tôi có một máy chủ không Apache nghe cổng 8001 và Apache lắng nghe cổng 80. Tôi muốn có một miền ảo chắc chắn sẽ thực sự được phục vụ bởi các máy chủ không Apache trên cổng 80.Apache Cảng Proxy

Ví dụ:

<VirtualHost *:80> 
    Servername example.com 

    # Forward this on to the server on port 8001 
</VirtualHost> 

Tôi nghĩ mình có thể làm điều này với mod_proxy và ProxyPass với thứ như thế này.

ProxyPass * http://www.example.com:8001/ 

Nhưng điều đó không hiệu quả.

+1

Bạn có thể có may mắn hơn với điều này trên ServerFault. –

Trả lời

24

ProxyPass * http://www.example.com:8001/

sao chỉ hợp lệ trong một khối. Chuyển tiếp dấu gạch chéo là những gì bạn muốn.

ProxyPass/http://www.example.com:8001/ 
ProxyPassReverse/http://www.example.com:8001/ 

Proxy ngược đảm bảo rằng chuyển hướng được gửi bởi máy chủ cổng 8001 của bạn được điều chỉnh theo tên tên chuẩn của proxy của bạn.

Hướng dẫn sử dụng apache có một số ví dụ. http://httpd.apache.org/docs/2.0/mod/mod_proxy.html

+1

Nếu bạn gặp lỗi máy chủ nội bộ: 'sudo a2enmod proxy' ' sudo a2enmod proxy_http' 'sudo service apache2 restart' – jaggedsoft

+0

chúng tôi không nên sử dụng mysite.com trên stackoverflow, xem http://meta.stackexchange.com/ question/208963/why-are-certain-example-url-like-http-site-com-và-http-mysite-com-blocke –

4

Tôi có trang web được lưu trữ bởi apache trên cổng 80. Tôi cũng có máy chủ web python đang nghe trên cổng 8880, cần truy cập qua http://[mydomainname]/something. Sử dụng câu trả lời txyoji, tôi đã nhận nó làm việc bằng cách đơn giản thêm một đường chuyền proxy để định nghĩa máy chủ ảo của tôi như vậy:

ProxyPass /something http://mydomainname:8880/something 
ProxyPassReverse /something http://mydomainname:8880/something 

CẬP NHẬT

Tùy thiết lập của bạn, một cách tốt hơn để làm điều này là để thiết lập một thẻ proxy cho một cổng trên "localhost". Tôi nghĩ rằng đó là một chút rõ ràng hơn những gì bạn đang làm, cộng với di động hơn. Cùng với điều này, bạn thậm chí không cần phải mở tường lửa đến cổng đó! Bạn có thể ủy quyền truyền nội bộ vào bất kỳ cổng nào, vì vậy không có lý do gì để lộ ra thế giới bên ngoài nếu bạn không phải làm vậy. Kênh tất cả mọi thứ thông qua cổng 80 và có Apache luôn luôn "chạy ra phía trước". Sau đó, bạn chỉ có thể lo lắng về sự an toàn của điều đó.

ProxyPass /something http://localhost:8880/something 
ProxyPassReverse /something http://localhost:8880/something 
Các vấn đề liên quan