рдирд╛рдЗрдЯреНрд░реЛрдб рдХрд╛ рдкрд░рд┐рдЪрдп - рд╕рдорд░реНрдкрд┐рдд HTTP рд╕рд░реНрд╡рд░

рдореИрдВ рдЖрдкрдХреЛ рдирд╛рдЗрдЯреНрд░реЛрдб рдХрд╛ рд╡рд┐рд╡рд░рдг рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рд╕рдиреНрди рд╣реВрдВ ред

рд╕рдорд╕реНрдпрд╛:

Node.Js рдореЗрдВ FastCGI рдореЙрдбреНрдпреВрд▓ рдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдореЙрдбреНрдпреВрд▓ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ, рдЕрдиреНрдп HTTP рд╕рд░реНрд╡рд░ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, nginxред

рдирд┐рд░реНрдгрдп

рдирд╛рдЗрдЯреНрд░реЛрдб рдХрд╛ рд▓рдХреНрд╖реНрдп Node.JS рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдирд┐рд░реНрдорд┐рдд рдПрдХ рддреЗрдЬ рдФрд░ рдмрд╣реБрдореБрдЦреА HTTP рд╕рд░реНрд╡рд░ рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рдкрд╛рдЯрдирд╛ рд╣реИред рдЗрд╕реЗ рдирдЧреАрдиреЗрдХреНрд╕ рдХреА рдЕрдзрд┐рдХрд╛рдВрд╢ рдмреБрдирд┐рдпрд╛рджреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдирд╛рдЗрдЯреНрд░реЙрдб рд╣реЛрдиреЗ рдХрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдн рд╣реИ рдФрд░ рдореМрдЬреВрджрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдореМрдЬреВрджрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рдмрд┐рдирд╛ рд╕рд░реНрд╡рд░ рдХрд╛ рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдг рд▓реЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рд╡рд╛рд╣! рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдЖрдк рдпрд╣рд╛рдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: github.com/ollym/nitrode

рдореИрдВрдиреЗ рдЗрд╕рдореЗрдВ example.js рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛, рдЬреЛ рдирд╛рдЗрдЯреНрд░реЙрдб рдХреА рд╕рднреА рд╡рд░реНрддрдорд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
  1. рдореВрд▓ HTTP рдкреНрд░рдорд╛рдгреАрдХрд░рдг
  2. рдИрдЯрд╛рдЧ рдФрд░ рдЗрдл-рдореЛрдбрд┐рдлрд╛рдЗрдб-рдЪреВрдВрдХрд┐ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди;
  3. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ рд╕реНрдерд┐рд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░рдЦрд░рдЦрд╛рд╡ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди;
  4. рдПрд╕рдПрд╕рдПрд▓ рд╕рдорд░реНрдерди;
  5. рдП рд╕реЗ рдЬреЗрдб рддрдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛;
  6. рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди;
  7. url рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╕рдорд░реНрдерди;
  8. рдФрд░ рдмрд╣реБрдд рдХреБрдЫ ...

рдХрдиреЗрдХреНрдЯ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдирд╛рдЗрдЯреНрд░реЛрдб рдПрдХ рд╕рдЦреНрддреА рд╕реЗ HTTP рд╕рд░реНрд╡рд░ рдмрдирдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрд╕ рджрд┐рд╢рд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП:
  1. рд╕реНрд░реЛрдд рднрдВрдбрд╛рд░ рдХреЛ рдХреНрд▓реЛрди рдХрд░реЗрдВ;
  2. рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдЬрд╛рдПрдВ;
  3. рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ: "sudo рдиреЛрдб example.js";
  4. рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЦреЛрд▓реЗрдВ рдФрд░ рджрд░реНрдЬ рдХрд░реЗрдВ: "рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ: 80";
  5. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ: "рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ", рдкрд╛рд╕рд╡рд░реНрдб: "рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ";
  6. рдЕрдм рдЖрдкрдХреЛ рдПрдХ рдкреЗрдЬ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХрд╛ рд╢реАрд░реНрд╖рдХ рд╣реИ: рд╡реЗрд▓рдХрдо рдЯреВ рдирд╛рдЗрдЯреНрд░реЛрдб!

рдпрд╣ рднреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ example.js рдХреЛ рдкрдврд╝рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ!

рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?

рдирд╛рдЗрдЯреНрд░реЙрдб рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИ, рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдкрд┐рдЫрд▓реЗ рд╣рдлреНрддреЗ рд╣реА рдЗрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛ред рдХрдИ рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рдЕрднреА рднреА рдХрд░рдиреА рд╣реИрдВ:
  1. рдЫреЛрдЯреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ index.js рдХреЛ рддреЛрдбрд╝реЗрдВ;
  2. рдкрд╛рдЪрди рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝реЗрдВ;
  3. рдкреНрд░рд╛рдорд╛рдгрд┐рдХрддрд╛ рдХреЗ рдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝реЗрдВ;
  4. рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреЗрдВ;
  5. Sys.pump рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░;
  6. рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреЗрдВ;
  7. рджрд╕реНрддрд╛рд╡реЗрдЬ рд▓рд┐рдЦреЗрдВ;

рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдЗрди рдХрд╛рдореЛрдВ рдореЗрдВ рдореЗрд░реА рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ!

рдирд┐рд╖реНрдард╛ рд╕реЗ,
рдСрд▓реА

PS: рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ: Node.JS 0.2.0 рдЕрднреА рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдФрд░ рд▓реЗрдЦрдХ рдиреЗ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдПрдкреАрдЖрдИ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ред
PPS: рд▓реЗрдЦрдХ, рдЖрдЬ рддрдХ рдирд╛рдЗрдЯреНрд░реЛрдб рдХреА рдШреЛрд╖рдгрд╛ рд╕реЗ, рдХрдИ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рдЬрд╛рд░реА рдХрд░ рдЪреБрдХрд╛ рд╣реИ, рдкрд╣рд▓реЗ рд╣реА рдмрд╣реБрдд рдХреБрдЫ рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред

Source: https://habr.com/ru/post/In102258/


All Articles