āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ āĻŦāĻāĻ° āĻĒāĻ°
āĻ
āĻ¨ā§āĻ¸āĻžāĻ°ā§
āĻŦāĻŋāĻļā§āĻŦā§āĻ° āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻŦā§āĻļāĻŋ āĻĒāĻ°āĻŋāĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻž āĻŽāĻŋāĻ˛āĻŋāĻ¯āĻŧāĻ¨ āĻ¸āĻžāĻāĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§, nginx-āĻāĻ° āĻļā§āĻ¯āĻŧāĻžāĻ° āĻšāĻ˛ 25.54% (āĻāĻ āĻŦāĻāĻ° āĻāĻā§ 26.22%, āĻĻā§āĻ āĻŦāĻāĻ° āĻāĻā§ 23.76%)āĨ¤ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§, āĻĒā§āĻ°āĻžāĻ¯āĻŧ 459 āĻŽāĻŋāĻ˛āĻŋāĻ¯āĻŧāĻ¨ āĻāĻ¯āĻŧā§āĻŦāĻ¸āĻžāĻāĻ Nginx āĻāĻžāĻ˛āĻžāĻā§āĻā§ (āĻāĻ āĻŦāĻāĻ° āĻāĻā§ 397 āĻŽāĻŋāĻ˛āĻŋāĻ¯āĻŧāĻ¨)āĨ¤ āĻĻā§āĻŦāĻžāĻ°āĻž
1.17.x āĻāĻĒāĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻļāĻžāĻāĻžāĻ° āĻŦāĻŋāĻāĻžāĻļā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻāĻ¨ā§āĻ¨āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
- āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻāĻž āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻ¸ā§āĻŽāĻž_āĻāĻ°āĻ_ āĻļā§āĻāĻ¨ā§_āĻāĻ° , āĻ¯āĻž āĻā§āĻ°āĻžāĻ¯āĻŧāĻžāĻ˛ āĻ°āĻžāĻ¨ āĻŽā§āĻĄ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°ā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§āĻ° āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻžāĻ° āĻāĻĒāĻ° āĻā§āĻ¨ āĻŦāĻŋāĻ§āĻŋāĻ¨āĻŋāĻˇā§āĻ§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž (āĻĻāĻ° āĻ¸ā§āĻŽāĻž āĻāĻžāĻĄāĻŧāĻž), āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻļā§āĻ¯āĻŧāĻžāĻ° āĻāĻ°āĻž āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ¸ā§āĻŽāĻž āĻāĻžāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§; - āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻāĻž āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻ¸ā§āĻŽāĻž_āĻāĻ¨_ āĻļā§āĻāĻ¨ā§_āĻāĻ° , āĻ¯āĻž ngx_http_limit_conn_module āĻŽāĻĄāĻŋāĻāĻ˛āĻāĻŋāĻā§ āĻā§āĻ¸ā§āĻ āĻ°āĻžāĻ¨ āĻŽā§āĻĄā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻ¸ā§āĻŽāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻžāĻ¯āĻŧ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ; - āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻāĻž āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ "
auth_ āĻŦāĻŋāĻ˛āĻŽā§āĻŦ ", āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°āĻžāĻ° āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻāĻŽāĻžāĻ¤ā§ āĻāĻŦāĻ āĻāĻ° āĻŦāĻŋāĻ°ā§āĻĻā§āĻ§ā§ āĻ¸ā§āĻ°āĻā§āĻˇāĻž āĻĻāĻŋāĻ¤ā§ 401 āĻāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻā§āĻĄ āĻ¸āĻš āĻ āĻ¨āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻ āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋāĻ¤ā§ āĻŦāĻŋāĻ˛āĻŽā§āĻŦ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĻāĻā§āĻ°āĻŽāĻŖ , āĻ¯ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¸ā§āĻŽāĻŋāĻ¤ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° (āĻāĻžāĻāĻŽāĻŋāĻ āĻ ā§āĻ¯āĻžāĻāĻžāĻ) āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻāĻ°āĻžāĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ ,āĻāĻāĻāĻŋ subquery āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻŦāĻžāĻā§āĻĄāĻžāĻŦā§āĻ˛ā§āĻāĻŋ (JSON āĻāĻ¯āĻŧā§āĻŦ āĻā§āĻā§āĻ¨); - "āĻ¸ā§āĻŽāĻž_āĻšāĻžāĻ°" āĻāĻŦāĻ "āĻ¸ā§āĻŽāĻž_āĻšāĻžāĻ°_āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§" āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§āĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻ¸ā§āĻā§āĻ°ā§āĻŽ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° "āĻĒā§āĻ°āĻā§āĻ¸āĻŋ_āĻāĻĒāĻ˛ā§āĻĄ_āĻ°ā§āĻ" āĻāĻŦāĻ "āĻĒā§āĻ°āĻā§āĻ¸āĻŋ_āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ_āĻ°ā§āĻ" āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§āĻ¤ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§;
- āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ¨āĻžāĻ¯āĻŧ
grpc_pass āĻāĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻāĻāĻāĻŋ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĨ¤ āĻ¯āĻĻāĻŋ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻāĻŋ āĻāĻāĻāĻŋ āĻĄā§āĻŽā§āĻ¨ āĻ¨āĻžāĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§ āĻ¨āĻžāĻŽāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻā§āĻ°ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ, āĻ¯āĻĻāĻŋ āĻ¨āĻž āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¤āĻŦā§ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻāĻžāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ; - āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
$proxy_protocol_server_addr и$proxy_protocol_server_port , āĻ¯āĻž PROXY āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻšā§āĻĄāĻžāĻ° āĻĨā§āĻā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ āĻŋāĻāĻžāĻ¨āĻž āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻ āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§; - āĻŽāĻĄāĻŋāĻāĻ˛ā§
ngx_stream_limit_conn_module āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§$limit_conn_status , āĻ¯āĻž āĻ¸āĻāĻ¯ā§āĻā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻ¸ā§āĻŽāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§: PASSED, REJECTED āĻŦāĻž REJECTED_DRY_RUN; - āĻŽāĻĄāĻŋāĻāĻ˛ā§
ngx_http_limit_req_module āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§$limit_req_status , āĻ¯āĻž āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻāĻāĻŽāĻ¨ā§āĻ° āĻšāĻžāĻ° āĻ¸ā§āĻŽāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§: āĻĒāĻžāĻ¸ āĻāĻ°āĻž, āĻŦāĻŋāĻ˛āĻŽā§āĻŦāĻŋāĻ¤, āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻā§āĻ¯āĻžāĻ¨ āĻāĻ°āĻž, DELAYED_DRY_RUN āĻŦāĻž REJECTED_DRY_RUN; - āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ
ngx_http_postpone_filter_module ; - āĻŦāĻŋāĻ˛ā§āĻ-āĻāĻ¨ āĻĒāĻžāĻ°ā§āĻ˛ āĻāĻ¨ā§āĻāĻžāĻ°āĻĒā§āĻ°ā§āĻāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ $r->internal_redirect() āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ "āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨" āĻŦā§āĻ˛āĻ āĻ¨āĻžāĻŽāĻ āĻāĻāĻ˛ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ āĻāĻāĻ¨ āĻāĻ¸ā§āĻā§āĻĒāĻĄ āĻā§āĻ¯āĻžāĻ°ā§āĻā§āĻāĻžāĻ° āĻ¸āĻš URI-āĻāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖ āĻāĻĄāĻŧāĻŋāĻ¤;
- "āĻāĻĒāĻ¸ā§āĻā§āĻ°āĻŋāĻŽ" āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻŦā§āĻ˛āĻā§ "āĻāĻĒāĻ¸ā§āĻā§āĻ°āĻŋāĻŽ" āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ
āĻāĻžāĻāĻž Âģ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ-āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻāĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§ āĻ˛ā§āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸āĻŋāĻ āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻāĻ°āĻ¤ā§, āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻāĻžāĻ˛āĻŋ āĻā§ āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻ¨, āĻāĻāĻ¨āĻŋāĻĢāĻ°ā§āĻŽ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸āĻŋāĻ āĻŽā§āĻĄ (āĻ°āĻžāĻāĻ¨ā§āĻĄ-āĻ°āĻŦāĻŋāĻ¨) āĻāĻāĻ¨ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§; - āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§ āĻĻā§āĻ°ā§āĻ¤ āĻ¸āĻāĻ¯ā§āĻ āĻĨā§āĻā§ āĻĒāĻĄāĻŧāĻž āĻāĻĄāĻŧāĻžāĻ¤ā§ ioctl(FIONREAD) āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻ¤ā§āĻ¸: opennet.ru