Thời gian chờ proxy với ReWriteRule
Nov 16 2020
Không có cách nào kiểm soát thời gian chờ khi proxy bằng ReWriteRule (mod_rewrite) với Apache 2.4.
<VirtualHost "*:443">
ServerName xxxx
Use ssl
RewriteEngine On
RewriteRule (.*/wms|/openlayers3/.*) http://localhost:8080$1 [P,L]
RewriteRule .* [F]
</VirtualHost>
Tôi đã thử không thành công:
Timeout 400ProxyTimeout 400- ProxySet
<Proxy "http://localhost:8080/">
ProxySet connectiontimeout=100 timeout=400
</Proxy>
ProxyPass "/" "http://localhost:8080" connectiontimeout=100 timeout=400
Thời gian chờ luôn là 1 phút, bất kể tôi sử dụng lệnh nào ở trên.
Trả lời
4 ximaera Nov 19 2020 at 12:52
Thời gian chờ này chỉ có thể được kiểm soát trên toàn cầu . Thay đổi Timeoutcài đặt chung thành httpd.confgiá trị ưa thích của bạn:
#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 400
Có lẽ một cách tốt hơn để làm điều này là sử dụng nginx:
server {
listen 443;
server_name xxxx;
# ... ssl setup ...
location ~* /wms$ {
proxy_pass http://localhost:8080;
proxy_read_timeout 400;
}
location /openlayers3/ {
proxy_pass http://localhost:8080;
proxy_read_timeout 400;
}
location / {
return 403;
}
}
Các liên kết bổ sung đến tài liệu nginx để bạn hiểu điều gì đang xảy ra trong đoạn mã này:
- location và cách biểu thức chính quy hoạt động trong nginx
- proxy_pass
- proxy_read_timeout
- Chuyển đổi quy tắc viết lại từ Apache sang Nginx
Đối với cấu hình SSL bị thiếu trong đoạn mã của tôi, vui lòng đọc tài liệu .