H2o: рдорд░реБрдмреА рдореЗрдВ рджреЗрд░реА (рдиреАрдВрдж, рдереНрд░реЗрдб.рдиреАрдВрдж) рдЧреБрдо рд╣реИ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 2 рдордИ 2017  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: h2o/h2o

рдореИрдВрдиреЗ рдПрдХ mruby рд╣реИрдВрдбрд▓рд░ рд▓рд┐рдЦрд╛ рд╣реИ рдЬреЛ рдореЗрд░реЗ рдХреИрд╢ рдХреЛ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдореЗрдВ рддрд╛рдЬрд╝рд╛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП http_request рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╕реЛрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ рдпрд╣ рдЕрдиреБрд░реЛрдз рдХреЛ рд╡рд┐рдлрд▓ рдХрд░ рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ PHP рдирд╣реАрдВ рд░рдЦ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ mruby рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ h2o рдореЗрдВ рдХреБрдЫ рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рд╕реЛрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ (рдореИрдВрдиреЗ рдХрд╕реНрдЯрдо рдереНрд░реЗрдб mruby рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдереНрд░реЗрдб рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рддрд╛рд░реАрдЦ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣реА рд╣реИ)?

рддреНрд░реБрдЯрд┐:
[lib/handler/fastcgi.c] in request:/index.php/tag/science:connection failed:failed to connect to host

рдХреЛрдб:

if request_is_from_self and links_file_exist and req_is_get
    links = `php #{links_filepath}`

    for link in links.split(' ') do
        req = http_request(link)
        _, _, _ = req.join
    end
end

рд╕рднреА 6 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдирдорд╕реНрддреЗ @taosx
рдореБрдЭреЗ рдХреБрдЫ рд╣рдж рддрдХ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ PHP рд╣реИ рдЬреЛ рдЬрд╛рд░реА рдирд╣реАрдВ рд░рд╣ рд╕рдХрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдк рдПрдЪ 2 рдУ рдХреЗ рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП http рдЕрдиреБрд░реЛрдз рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдлрд┐рд░ рдлрд╛рд╕реНрдЯрд╕реАрдЬреАрдЖрдИ рдЪрд▓рд╛рддрд╛ рд╣реИ?

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╡рд┐рд░рд╛рдо рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЬреЛ рдкрдврд╝рд╛ рд╣реИ рдЙрд╕рд╕реЗ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд░рд╣реЗ рд╣реИрдВред рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЕрдиреБрд░реЛрдз рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЪрд▓рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓ рджрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдЖрдк рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

links.split(' ').map{|l| http_request }.to_a.map{|r| r.join}

рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рддреНрд░реБрдЯрд┐ рд╡рд┐рд╡рд░рдг рдкреЛрд╕реНрдЯ рдХрд░реЗрдВ?

рдЕрдЧрд░ рдпрд╣ рд╣рдореЗрд╢рд╛ рд╡рд╣реА рдХреБрдЫ рд▓рд┐рдВрдХ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рд╡реЗ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╕реНрдерд┐рд░ рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдореЗрдореЛрд░реА рдХреИрд╢ рдореЗрдВ рд╕рд╕реНрддреЗ рдХреЛ рддреБрд░рдВрдд рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдХреЛрдб http_request рдХреЛ рддрд░реНрдХ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИ:
links.split(' ').map{|l| http_request(l) }.map{|r| r.join}
рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдмрджрддрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдореИрдВрдиреЗ рдКрдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИред
рдореИрдВрдиреЗ opcache рдХреЛ php рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рд╕рдХреНрд░рд┐рдп рдХрд░рдХреЗ рд╕рдорд╛рдзрд╛рди рд╣рд▓ рдХрд┐рдпрд╛ рдФрд░ рдЕрдм рдмрд┐рдирд╛ рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХреЗ 27 рд╕реЗрдХреЗрдВрдб рд╕реЗ 3.1 рд╕реЗрдХреЗрдВрдб рддрдХ рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрдиреЗ рд╡рд╛рд▓рд╛ рд╕рдордпред рдЕрдкрдиреЗ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ 4 рд╕реЗрдХрдВрдб рдореЗрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдХреБрдЫ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЕрдкрдиреЗ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдкреВрд░реЗ рдХреЛрдб рдХреЛ h2o рдХреЗ рд╕рд╛рде рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬреЛ рд╣рд░ 2 рдорд┐рдирдЯ рдореЗрдВ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдХреИрд╢ рдХрд░рддрд╛ рд╣реИ, рдЕрдзрд┐рдХрддрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ gzip рдФрд░ brottli рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░реАрдХрдВрдкреНрд░реЗрд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреИрд╢ рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдЕрдм рддрдХ h2o рдХреЛ рдкреНрдпрд╛рд░ рдХрд░реЗрдВ, h2o рдХреЗ рд╕рднреА рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж !!

рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореИрдВ h2o рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛, рдЬреИрд╕реЗ рдХрд┐ рдУрдкрдирд░реЗрд╕реНрдЯреА рд▓реЗрдХрд┐рди h2o рдкрд░ рдЖрдзрд╛рд░рд┐рдд: D

@taosx рдЖрд╣ рдХреНрд╖рдорд╛ рдХрд░реЗрдВред рдореИрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рднреВрд▓ рдЧрдпрд╛: .to_a

links.split(' ').map{|l| http_request }.to_a.map{|r| r.join}

рдмрд╕ рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рд╕реЗ рдмрд╛рд╣рд░, рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЖрдк рдХрд┐рддрдиреЗ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ/рд▓рд┐рдВрдХ рд╕рд░рдгреА рдХрд┐рддрдиреА рдмрдбрд╝реА рд╣реИ?

@yannick рдореИрдВрдиреЗ рдлрд┐рд░ рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХреА, рдореБрдЭреЗ рдЗрд╕реЗ рддрд░реНрдХ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП http_request рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛ (рдПрд▓)ред
рдХреИрд╢ рдХреЛ рдЧрд░реНрдо рдХрд░рдиреЗ рдкрд░ рдЧрддрд┐ рдШрдЯрдХрд░ 3.06 рд╕реЗрдХрдВрдб :D рдФрд░ рдХрднреА-рдХрднреА 2.9+ рд╣реЛ рдЬрд╛рддреА рд╣реИред
рд▓рд┐рдВрдХ рд╕рд░рдгреА рдореЗрдВ 41 рддрддреНрд╡ рд╣реИрдВ (aws ec2 t2.micro)ред

рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рдПрдХ рдФрд░ рдкреЛрд╕реНрдЯ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдкреЛрд╕реНрдЯ рд╕реЗ рд╣реА 1 рд▓рд┐рдВрдХ рдорд┐рд▓рддрд╛ рд╣реИ + рдЬреЛрдбрд╝реЗ рдЧрдП рдЯреИрдЧ рд╕реЗ ~ 5 рд▓рд┐рдВрдХ ...
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореБрдЭреЗ рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрднреА рдХреЗ рд▓рд┐рдП рдорд░реБрдмреА рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП рдЬрд╛рдКрдВрдЧрд╛ред

рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ wp рдХреЗ рд▓рд┐рдП рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХреИрд╢ рдХреЗ рд░реВрдк рдореЗрдВ mruby рдХреЗ рд╕рд╛рде h2o рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рд▓рд┐рдВрдХ = php #{links_filepath} рдорд╛рдзреНрдпрдо рд╕реЗ PHP рдХреЛ рдЦреЛрд▓ рджрд┐рдпрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЙрд╕ рд╕рдордп рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдерд╛?
рд╕рд┐рд░реНрдл h2o рдХреЗ рд▓рд┐рдП t2.micro рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЙрд╕ рдорд╢реАрди рдкрд░ php рд╕рд╛рдорд╛рди рднреА рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рд╡реЗ рд╕рд┐рдВрдЧрд▓ рд╕реАрдкреАрдпреВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИред рддреЛ рдХрдо рд╕реЗ рдХрдо рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдореИрдВ c4.large рдпрд╛ c4.xlarge рдЬреИрд╕рд╛ рдХреБрдЫ рд▓реВрдВрдЧрд╛ред

рд╣рд╛рдБ рдореГрдмреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреИрд╢рд┐рдВрдЧ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рддреЛ рдЖрдк рдЗрд╕реЗ рд╕реНрдореГрддрд┐ рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдЖрдк рд░реЗрдбрд┐рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдЬрд┐рд╕реЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрднреА рднреА рдПрдХ рдкреИрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЬрд▓реНрдж рд╣реА рд╡рд┐рд▓рдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, https://github.com/h2o/h2o/pull/1152 рджреЗрдЦреЗрдВ)

рдпрд╣ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЪрд░реНрдЪрд╛ рд╣реИ!

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП mruby рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреИрд╢ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ), рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЕрдкрдиреЗ mruby рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рд╕реНрд▓реАрдк рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

wujunjenny picture wujunjenny  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

basbebe picture basbebe  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ahupowerdns picture ahupowerdns  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

chenbd picture chenbd  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kazuho picture kazuho  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ