Linux рдкрд░ Asp.Net рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ (nginx + рдореЛрдиреЛ + xsp)

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдПрдХ рд╕рд░рд▓ рдирдЧрдиреЗрдХреНрд╕ + Asp.Net рдмрдВрдбрд▓ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╕рд░рд▓ рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рдкрд░рд┐рд╕реАрдорди, рдЙрдЪреНрдЪ рднрд╛рд░ рдЖрджрд┐ред рдЕрд▓рдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рд╡рд┐рд╢реЗрд╖рдХрд░ Asp.Net)ред рд▓реЗрдЦ рдХреЛ рд╣реЗрдмрд░рд╛рдЗрдЬрд╝рд░ рдЧрджрд╛ рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред

рдПрдХ рд╕рдордп рдореЗрдВ, рдЫреЛрдЯреЗ Asp.Net рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдореЗрдЬрдмрд╛рдиреА рдХреА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдШрдмрд░рд╛рдП рд╣реБрдП, рдореБрдЭреЗ рдПрдХ рд╕рд░рд▓ рдмрд╛рдд рдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ: рд╡рд┐рдВрдбреЛрдЬ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрд╕реЗрдВрд╕ рдЦрд░реАрджрдирд╛ рдФрд░ рдлрд┐рд░ рдХреБрдЫ рд╣реЛрдордореЗрдб рд╢рд┐рд▓реНрдк / рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдкрд░реНрдпрд╛рдкреНрдд рд╕рдорд░реНрдкрд┐рдд / рдЖрднрд╛рд╕реА рд╕рд░реНрд╡рд░ рдХрд┐рд░рд╛рдП рдкрд░ рд▓реЗрдирд╛ рдмреЗрд╣рдж рдЕрдиреБрдЪрд┐рдд рд╣реИред рд╕рдорд╛рдзрд╛рди рдХрд┐рд╕реА рддрд░рд╣ рдореЗрд░реЗ рдЧрдВрдЬреЗ рд╕рд┐рд░ рдореЗрдВ рдЙрднрд░рд╛: рдореЛрдиреЛ рд╣реИ! Mono-project.com рдкрд░ рдПрдХ рдЫреЛрдЯреА рдЦреЛрдЬ рдиреЗ Asp.Net FAQ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреНрд░рд▓реЗрдЦрди рдиреЗ рдореБрдЭреЗ рддреАрди рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдк рджрд┐рдЦрд╛рдП:

рдЖрдкрдХреЛ рдореЛрдиреЛ рд░рдирдЯрд╛рдЗрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ mod_mono рдХреЗ рд╕рд╛рде рдЕрдкрд╛рдЪреЗ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдореЛрдиреЛ рдХреЗ FastCGI рд╕рдорд░реНрдерди рдпрд╛ xsp рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рд╕рд░реНрд╡рд░ (рд╣рдорд╛рд░реЗ рдбрд╛рдЙрдирд▓реЛрдб рдкреГрд╖реНрда рд╕реЗ рд╕рднреА рдЙрдкрд▓рдмреНрдз) рдХреЗ рд╕рд╛рде рдПрдХ CGI рдпрд╛ FastCGI- рдЬрд╛рдЧрд░реВрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ред

рдЗрди рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛ рдПрдХ рддреНрд╡рд░рд┐рдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рдореБрдЭреЗ рдореИрдХреНрд╕рд┐рдо рдХреНрд░реЗрдВрдЯреЛрд╡реНрд╕реНрдХреА ( mkrentovskiy ) рджреНрд╡рд╛рд░рд╛ рдПрдХ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛, рдЬреЛ рдХрд╛рдлреА рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдореИрдВрдиреЗ ICQ рдореЗрдВ рдореИрдХреНрд╕рд┐рдо рд╕реЗ рдкреВрдЫрдиреЗ рдХрд╛ рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ред

рдореИрдХреНрд╕рд┐рдо рдХрд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдореБрдЭреЗ рдХрд╛рдлреА рдкрдХреНрдХрд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдореИрдВрдиреЗ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдпрд╛ рдЕрдиреНрдп рд╕реНрд░реЛрддреЛрдВ рдХреА рддрд▓рд╛рд╢ рдирд╣реАрдВ рдХреА, рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЙрддреНрддрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рдерд╛: nginx + xspред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореЛрдиреЛ рд╡рд┐рдХреА рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ xsp рдХрд╛ рдЙрдкрдпреЛрдЧ рдбрд┐рдмрдЧрд┐рдВрдЧ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП!

Nginx рд╕реНрдерд╛рдкрдирд╛

рддреЛ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рддрд╛рдЬрд╝рд╛ рд╕реНрдерд╛рдкрд┐рдд рдбреЗрдмрд┐рдпрди рдирд┐рдЪреЛрдбрд╝ x64 рдорд┐рдирд┐рдорд▓ рд╣реИред Nginx рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ dotdeb.org рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реИред рд╡реИрд╕реЗ, рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рднрдВрдбрд╛рд░: рдЗрд╕рдореЗрдВ, mysql (percona) рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрд╢рд╛ php , mysql (percona) рдФрд░ redis рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг redis ред рд╕реНрд░реЛрдд рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рдХрдард┐рди - рдиреАрдЪреЗ рдЙрд╕ рдкрд░ рдЕрдзрд┐рдХред

sources.list рдПрдХ рдирдпрд╛ рднрдВрдбрд╛рд░ рдЬреЛрдбрд╝реЗрдВ, GnuPG рдХреБрдВрдЬреА рд▓рд┐рдЦреЗрдВ рдФрд░ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ:
 root@falco:~# echo "deb http://packages.dotdeb.org stable all" >> /etc/apt/sources.list root@falco:~# wget -q http://www.dotdeb.org/dotdeb.gpg -O- | apt-key add - root@falco:~# apt-get update 

рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ apt-cache policy nginx рдХрдорд╛рдВрдб рдкрд░ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЗрдЦреЗрдВрдЧреЗ:
 root@falco:~# apt-cache policy nginx nginx: : () : 1.0.2-1~dotdeb.1  : 1.0.2-1~dotdeb.1 0 500 http://packages.dotdeb.org/ stable/all amd64 Packages 0.7.67-3 0 500 http://mirror.yandex.ru/debian/ squeeze/main amd64 Packages 

рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реЗрдЯреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд┐рдд рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреИрдХреЗрдЬ рд╣реИрдВ: рдирдЧрдиреЗрдХреНрд╕-рд▓рд╛рдЗрдЯ , рдиреЗрдЧреНрдиреЗрдХреНрд╕-рдлреБрд▓ (рдиреЗрдЧреНрдиреЗрдХреНрд╕ рдкреИрдХреЗрдЬ рд╕рд┐рд░реНрдл рдЗрд╕рдХрд╛ рдЙрдкрдирд╛рдо рд╣реИ) рдФрд░ рдиреЗрдЧреНрдиреЗрдХреНрд╕-рдПрдХреНрд╕реНрдЯреНрд░рд╛ ред рдЬреЛ рдПрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рд▓рд╛рдЗрдЯ рд╕рдВрд╕реНрдХрд░рдг рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ (рдкреНрд░реЙрдХреНрд╕реА рдареАрдХ рд╣реИ), рд▓реЗрдХрд┐рди рд▓реЗрдЦрди рдХреЗ рд╕рдордп, рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреВрд░реНрдг рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ:
 root@falco:~# apt-get install nginx 

рд╕рдВрдХреБрд▓ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рднреА рдЪрд░рдг рд╣реИрдВред

рдпрджрд┐ рдЖрдк рд╕реНрд░реЛрддреЛрдВ рд╕реЗ nginx рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ ./configure рдХреЛ рдирд┐рдореНрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
 ./configure --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-debug --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_realip_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_xslt_module --with-ipv6 --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module 

рдпрд╣ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ nginx-full рдкреИрдХреЗрдЬ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдЧрд╛, рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдлреЗрдпрд░ рдХреНрдпреВ рдФрд░ рдЗрдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рдеред

рдореЛрдиреЛ рд╕реНрдерд╛рдкрдирд╛

рдореЛрдиреЛ рдХреЗ рд▓рд┐рдП , рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд╕рд╛рде рдРрд╕реА рдХреЛрдИ рдЙрдкрдпреБрдХреНрддрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рддреБрд░рдВрдд рдирд╡реАрдирддрдо рд╕реНрд░реЛрддреЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЕрджреНрдпрддрди ред рдЬреИрд╕рд╛ рдХрд┐ Net_Rat рдиреЗ рд╕рд╣реА рдЯрд┐рдкреНрдкрдгреА рдХреА , рдореИрдВ рдереЛрдбрд╝рд╛ рдЪрд╛рд▓рд╛рдХ рдерд╛: рдЖрдк рдПрдХ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд╣рд╛рдВ рд╕реЗ mono рдФрд░ xsp рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЛ xsp рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореЛрдиреЛ рдФрд░ xsp рдХреЗ рдирд╡реАрдирддрдо рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ (рд▓реЗрдЦрди рдХреЗ рд╕рдордп 2.10.2):
 root@falco:~# wget "http://ftp.novell.com/pub/mono/sources/mono/mono-2.10.2.tar.bz2" root@falco:~# wget "http://ftp.novell.com/pub/mono/sources/xsp/xsp-2.10.2.tar.bz2" 

рдЕрдм рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдХреЛ рдЕрдирдкреИрдХ рдХрд░реЗрдВ:
 root@falco:~# tar -xvf mono-2.10.2.tar.bz2 root@falco:~# tar -xvf xsp-2.10.2.tar.bz2 

рдпрджрд┐ tar bzip2 рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдкрд░ рд╢рдкрде рд▓реЗрддрд╛ рд╣реИ (рдХрдо рд╕реЗ рдХрдо рдпрд╣ рд╢рдкрде рд▓реЗрддрд╛ рд╣реИ), рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 root@falco:~# apt-get install bzip2 

mono рдФрд░ xsp рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП xsp рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 root@falco:~# apt-get install build-essential gawk bison gettext libgdiplus pkg-config libglib2.0-0 libglib2.0-dev 

рдЖрдЗрдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рд╕рдВрдХрд▓рди рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝реЗрдВ (рд╕рдВрдХрд▓рди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, 20-30 рдорд┐рдирдЯ рддрдХ):
 root@falco:~/mono-2.10.2# ./configure --prefix=/usr --sysconfdir=/etc/mono root@falco:~/mono-2.10.2# make && make install 

рдпрджрд┐ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕рдлрд▓ рд░рд╣рд╛, рддреЛ mono --version рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рд╕реЗ рд╣рдореЗрдВ рдкреЛрд╖рд┐рдд рдФрд░ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкреНрд░рддреАрдХреНрд╖рд┐рдд рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛:
 root@falco:~/mono-2.10.2# mono --version Mono JIT compiler version 2.10.2 (tarball   11 15:54:39 MSD 2011) Copyright (C) 2002-2011 Novell, Inc and Contributors. www.mono-project.com TLS: __thread SIGSEGV: altstack Notifications: epoll Architecture: amd64 Disabled: none Misc: softdebug LLVM: supported, not enabled. GC: Included Boehm (with typed GC and Parallel Mark) 

рдЕрдм xsp рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
 root@falco:~/xsp-2.10.2# ./configure --prefix=/usr --sysconfdir=/etc/xsp root@falco:~/xsp-2.10.2# make && make install 

рд╕рднреА xsp C # рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рд╕рдВрдХрд▓рди рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдпрд╣ рд╣рдореЗрдВ рджреЗрдЧрд╛:
 root@falco:~# xsp4 --version xsp4.exe 2.10.2.0 Copyright (C) 2002-2011 Novell, Inc. Minimalistic web server for testing System.Web 

рд▓рдЧрддрд╛ рд╣реИ рд╕рдм рдХреБрдЫ рдкрдХрдбрд╝ рдореЗрдВ рдЖ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред

Xsp рд╕реЗрдЯрдЕрдк

рд╣рдорд╛рд░реЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рдкреЗрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдБ:
 root@falco:~# mkdir -p /var/www/asptest 

рдирдореВрдиреЗ рдХреЗ рд▓рд┐рдП рддреБрд░рдВрдд рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рдмрдирд╛рдПрдВ:
 root@falco:~# cd /var/www/asptest root@falco:/var/www/asptest# nano Default.aspx 

рд╣рдо рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд▓рд┐рдЦреЗрдВрдЧреЗ:
 <%@ Page language="C#" %> <html> <head> <title>Hello C#</title> </head> <body> <p><% Response.Write("Hello World");%></p> </body> </html> 

рдЪреВрдВрдХрд┐ xsp рдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд░рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╡рд╣рд╛рдВ рдХреЛрдИ рдбреЗрдореЙрди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рд╣реИрдВред рд╣рдо рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░реЗрдВрдЧреЗред рдлрд╝рд╛рдЗрд▓ /etc/default/xsp рдмрдирд╛рдПрдБ, рдФрд░ рдЙрд╕рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЪрд░ рд▓рд┐рдЦреЗрдВ:
 user=www-data group=www-data port=8080 address=0.0.0.0 

рдПрдХ рдлрд╝рд╛рдЗрд▓ /etc/init.d/xsp рдмрдирд╛рдПрдВ, рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдЕрдзрд┐рдХрд╛рд░ ( chmod +x /etc/init.d/xsp ) рджреЗрдВ рдФрд░ рдЗрд╕рдореЗрдВ рд▓рд┐рдЦреЗрдВ:
 #!/bin/sh ### BEGIN INIT INFO # Provides: xsp # Required-Start: $local_fs $remote_fs $network # Required-Stop: $local_fs $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Asp.Net testing server startup script. # Description: Asp.Net testing server startup script. ### END INIT INFO PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC=xsp NAME=xsp DAEMON=/usr/bin/xsp4 DEFAULT=/etc/default/$NAME DAEMON_ARGS="--nonstop --root /var/www/asptest" #DAEMON_ARGS="--nonstop --root /usr/lib/xsp/test" MONO_SHARED_DIR=/var/run/$NAME PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME [ -x "$DAEMON" ] || exit 0 [ -f "$DEFAULT" ] && . $DEFAULT . /lib/lsb/init-functions if [ ! -e $MONO_SHARED_DIR ]; then mkdir $MONO_SHARED_DIR chown $user:$group $MONO_SHARED_DIR fi chk_start() { if [ -f "$PIDFILE" ]; then xpid=`head -1 "$PIDFILE"` xps=`ps -p $xpid | wc -l` if [ "$xps" != "1" ]; then log_action_msg "Xsp is running" return 1 fi fi return 0 } do_start() { export MONO_SHARED_DIR start-stop-daemon --start --background --make-pidfile \ --quiet --pidfile /var/run/$NAME.pid \ --user $user --group $group --chuid $user \ --exec $DAEMON -- \ --port $port --address $address \ $DAEMON_ARGS } do_stop() { if [ -e "$PIDFILE" ] ; then kill -9 `head -1 "$PIDFILE"` 1>/dev/null 2>&1 rm -f "$PIDFILE" fi } case "$1" in start) if chk_start ; then log_daemon_msg "Starting $DESC" "$NAME" do_start log_end_msg $? fi ;; stop) log_daemon_msg "Stopping $DESC" "$NAME" do_stop log_end_msg $? ;; status) ;; restart|force-reload) log_daemon_msg "Restarting $DESC" "$NAME" do_stop do_start log_end_msg $? ;; *) echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 exit 3 ;; esac : 

рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрдзрд┐рдХ рдкреВрд░реНрдг рдЪрд┐рддреНрд░ рдХреЗ рд▓рд┐рдП xsp рд╡рд┐рддрд░рдг рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд▓рд╛рдЗрди рднреА рд╣реИред

рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЙрдиреНрдЪ рд╕реНрддрд░реЛрдВ (рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рд╕рд╣реА) рдХреЗ рд╕рд╛рде рдСрдЯреЛрд░рди рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдирдП рдбреЗрдорди рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ:
 root@falco:~# update-rc.d xsp defaults root@falco:~# /etc/init.d/xsp start 

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕рд░реНрд╡рд░ рд╕рднреА рдЗрдВрдЯрд░рдлреЗрд╕ рдкрд░ рд╕реБрдирддрд╛ рд╣реИ, рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЖрд╕рд╛рди рд╣реИ:
 root@falco:~# netstat -nlp | grep 8080 tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 20839/mono 

рдпрджрд┐ рдЖрдк http: // serveraddr: 8080 / рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкреНрд░рддреАрдХреНрд╖рд┐рдд "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:


рдФрд░ рдЕрдЧрд░ рдЖрдк xsp рдкрд░реАрдХреНрд╖рдг рдкреГрд╖реНрда рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ:


Nginx рд╕реЗрдЯрдЕрдк

рд╕рдореАрдкрд╡рд░реНрддреА рд╣рд┐рдЯ рдореЗрдВ рдирдЧреАрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рд╕рд╛рд░ рдХреЗрд╡рд▓ рдПрд╕реНрдк рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИред рд╢реЗрд╖ рд╕реНрдЯреИрдЯрд┐рдХ рдлрд╛рдЗрд▓реЗрдВ nginx рджреНрд╡рд╛рд░рд╛ рд╡рд┐рддрд░рд┐рдд рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдЖрдЧреЗ рдХреА рд╣рд▓рдЪрд▓ рдХреЗ рдмрд┐рдирд╛, рд╣рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓реЗрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдореИрдХреНрд╕рд┐рдо рдХреНрд░реЗрдВрдЯреЛрд╡реНрд╕реНрдХреА рдиреЗ рдЕрдкрдиреЗ рд▓реЗрдЦ рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдФрд░ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛:
 server { listen 80; server_name serveraddr.ru; location / { root /var/www/asptest #root /usr/lib/xsp/test; index index.html index.htm index.aspx default.aspx Default.aspx; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~ \.(aspx|asmx|ashx|axd|asax|ascx|soap|rem|axd|cs|config|dll)$ { root /var/www/asptest #root /usr/lib/xsp/test; proxy_pass http://127.0.0.1:8080; } } 

рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯреНрд╕ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ nginx рд╕рднреА Google рдХреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЬрд╛рдирддрд╛ рд╣реИред

Http://serveraddr.ru/ рдЦреЛрд▓рдиреЗ рдкрд░ рд╣рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкреНрд░рддреАрдХреНрд╖рд┐рдд "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рдорд┐рд▓рддрд╛ рд╣реИ:


рдпрд╛, рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП:


рд╡рд╣ рд╕рдм рд╣реИред xsp , рдореЛрдиреЛ рд╡рд┐рдХреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП xsp рдмреЗрд╣рддрд░ рд╣реИ!

рдПрдХ рд╣рдм рдкрд░ рдпрд╣ рдореЗрд░реА рдкрд╣рд▓реА рдкреЛрд╕реНрдЯ рд╣реИ, рдореИрдВ рдЖрдкрд╕реЗ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдИрдВрдЯреЛрдВ рдФрд░ рдЕрдиреНрдп рдХреЛрдмреНрд▓реЗрд╕реНрдЯреЛрди рдХреЛ рдореБрдЭ рдкрд░ рди рдлреЗрдВрдХреЗрдВ ... рдореБрдЭреЗ рдХрд┐рд╕реА рднреА рдЖрд▓реЛрдЪрдирд╛ рдкрд░, рд▓реЗрдЦ рдХреА рд╕рд╛рдордЧреНрд░реА рдФрд░ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрди рдХреЗ рд╕рд╛рде рд╡рд░реНрддрдиреА рдореЗрдВ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реЛрдЧреАред рдФрд░ рд╣рд╛рдВ, рдмреНрд▓реЙрдЧ рдЪреБрдирдиреЗ рдореЗрдВ рдореИрдВ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВред рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдЗрд╕реЗ рдХрд╣рд╛рдВ рд░рдЦрд╛ рдЬрд╛рдПред

PS I, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореИрдВ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдБ .Net / C #, Asp.Net рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдпрд╛ рд╣реВрдБ, рдпрд╣рд╛рдБ рддрдХ рдХрд┐ Google рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рд▓реЗрдЦ рд╕реЗ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рднреА рд▓рд┐рдЦрд╛ред рдЗрд╕рд▓рд┐рдП Asp.Net рдФрд░ Asp.Net MVC рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрди рдкреВрдЫрдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдмреЗрдХрд╛рд░ рд╣реИред :-)

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


All Articles