рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╡рд╛рд▓ рд╣рд░ рдЬрдЧрд╣ рдПрдХ рдЙрдкрдбреЛрдореЗрди рд╕реЗ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЙрдкрдбреЛрдореЗрди рдХреА рдкреВрд░реА рдЧрддрд┐рд╢реАрд▓рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдпрд╛ - рдЙрдкрдбреЛрдореЗрди рдиреЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред
рдХрднреА-рдХрднреА рдПрдХ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдФрд░ рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдкрдбреЛрдореЗрди рд╕реЗ рдЬреБрдбрд╝реА рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рддреИрдпрд╛рд░ рд╕рд╛рдЗрдЯ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдЗрд╕ url рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ: www.example.com/users/username , рдФрд░ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, www.example.com/users/username/contact рдФрд░ рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреНрдп рдкреГрд╖реНрда рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛)ред
рдФрд░ рдЕрдм рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЛ рдПрдХ рдЙрдкрдбреЛрдореЗрди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП username.example.com , username.example.com/contact , рдЖрджрд┐)
рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдорд┐рд▓рдиреЗ рд╡рд╛рд▓реЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдиреЗ рдореБрдЭреЗ 2 рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛:
- рдбреЛрдореЗрди www.example.com рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП рдореБрдЭреЗ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдП
- рдкрд╛рдП рдЧрдП рд╕рднреА рд╕рдорд╛рдзрд╛рди рдХреЗрд╡рд▓ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИрдВ рдФрд░ рдпрджрд┐ рдХреЛрдИ рдирд┐рдпрдо рдЖрдЧреЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
рд╣рдорд╛рд░реА рд╕рд╛рдЗрдЯ рдореЗрдВ рдЕрдкрд╛рдЪреЗ рдХреЗ рдКрдкрд░ (рд╕рд╛рде рд╣реА рдХрдИ рдЕрдиреНрдп) рдирдЧреНрдиреЗрдХреНрд╕ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕ рдЧреБрдЪреНрдЫрд╛ (рдирдЧреНрдиреЗрдХреНрд╕ + рдЕрдкрд╛рдЪреЗ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦреБрдж рдХреЛ рдкрд╣рд┐рдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдордЬрдмреВрдд рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рд▓рдЧрднрдЧ рд╕рднреА рдкреНрд░рдореБрдЦ рд╕рд╛рдЗрдЯреЛрдВ рдореЗрдВ рдЕрдкрд╛рдЪреЗ рдХреЗ рдКрдкрд░ рдкреНрд░реЙрдХреНрд╕реА рдирдЧреНрдиреЗрдХреНрд╕ рд╣реИ)
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдорд╛рдзрд╛рди рд╕рд░рд▓ рд╣реИ - рдХреНрдпреЛрдВрдХрд┐ рдЪреВрдВрдХрд┐ рд╕рд╛рдЗрдЯ www.example.com/users ([a-zA-Z _] +) рдЬреИрд╕реЗ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП mod_rewrite рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдЯреНрдпреВрди рдХреА рдЬрд╛ рдЪреБрдХреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ nginx рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдк-рдбреЛрдореЗрди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╢рд░реНрдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА рд╕рд╛рдЗрдЯ рдХреЗрд╡рд▓ ww.example.com рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдФрд░ example.com www рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рддреА рд╣реИред
рддрджрдиреБрд╕рд╛рд░, рдпрд╣ рдЙрдк-рдЕрд╡рд╢реЗрд╖реЛрдВ рдХреЗ рдкреБрдирд░реНрд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ nginx config рдореЗрдВ рдПрдХ рдирд┐рдпрдо рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред рдпрд╣ рд╕рдорд╛рдзрд╛рди рдирд┐рдХрд▓рд╛ рдирд┐рдпрдо - рдпрд╣ рд╕рдЪ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ :
location / { proxy_pass http://11.22.33.44:8080; proxy_redirect http://www.example.com:8080/ /; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; # www set $uid "www"; # uid if ($host ~* "^(([a-z0-9\-]+)\.example\.com)$") { set $uid $2; } # uid www, www if ($uid !~ "^(www)$") { rewrite ^(.*)$ /users/$uid$1 break; } }
рдЕрдкрдбреЗрдЯ рд╡рд┐рд╖рдп рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдмрд╛рдж, BlackWizard рдиреЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╕реБрдЭрд╛рдпрд╛ рдЬреЛ рд╕рднреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ:
server { server_name www.example.com; location / { proxy_pass 11.22.33.44:8080; } } server { server_name ~^(?<user>[a-z0-9\-]+)\.example.com$; location / { proxy_pass 11.22.33.44:8080/users/$user$uri$is_args$args; } }
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рдХреЛрдИ рдЖрдЧрдВрддреБрдХ рдЙрдкрдбреЛрдореЗрди рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ nginx рдЗрд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ Apache рд╕реЗ www.example.com/users/username рдХреЗ рдкрддреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ, рдФрд░ Apache рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдиреЗ mod_rewrite рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдм рдХреБрдЫ рдкрд╛рд░реНрд╕ рдХрд░ рджреЗрддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕рдорд╛рдзрд╛рди рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╛рдпрджреЗ рд╣реИрдВ:
- Www рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ
- рдпрд╣ рдХрд┐рд╕реА рднреА рд╕рд╛рдЗрдЯ рдкрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рддреИрдпрд╛рд░ рд▓рд┐рдВрдХ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ (рд╣рдо рд╕рд╛рдЗрдЯ рдкрд░ рд▓рд┐рдВрдХ рдмрджрд▓рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ)
- рджреЛрдиреЛрдВ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдФрд░ url рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ mod_rewrite рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ
рд╡рд┐рдкрдХреНрд╖:
- рдкреНрд░реЙрдХреНрд╕реА nginx рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдорд╛рдзрд╛рди рдореБрдЭреЗ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рдореИрдВ рдЧреБрд░реБрдУрдВ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдФрд░ рдЖрд▓реЛрдЪрдирд╛рдУрдВ рдХреЛ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЦреБрдж рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рд╢реБрд░реБрдЖрддреА рд╣реВрдВ, рдФрд░ рд╢рд╛рдпрдж рдореЗрд░реЗ рдЬреИрд╕реЗ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред
UPD рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд┐рдЧ рдореЗрдВ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдбреЛрдореЗрди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ username.example.com рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдВ
рдбрд╛рдпрдиреЗрдорд┐рдХ рд╕рдмрдбреЛрдореЗрди рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ DNS рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рд╕рд░реНрд╡рд░ рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдмрд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдП рдкреНрд░рд╛рд░реВрдк рд░рд┐рдХреЙрд░реНрдб (рдЕрдВрдЧреНрд░реЗрдЬреА рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ "рдП рд░рд┐рдХреЙрд░реНрдб") рдЬреЛрдбрд╝реЗрдВ:
* .example.com
рдкреНрд░рд╡реЗрд╢ рд╕рднреА рдЙрдк рдбреЛрдореЗрди (рдореЗрд▓, smtp, рдЖрджрд┐) рдХреЗ рдмрд╛рдж рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП