
рдирдВрдмрд╛ 0: рдкрд░рд┐рдЪрдп
рдПрдХ рджрд┐рди, рд╕реЛрдЪ-рд╕рдордЭрдХрд░ рдПрдХ рдмреИрд╢рдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдореБрдЭреЗ рдЕрдЪрд╛рдирдХ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрджреНрдзрд░рдг рдХрд╛рдлреА рд▓рдВрдмреЗ рд╣реИрдВ рдФрд░ рдЕрдХреНрд╕рд░ рд╡реЗ рдкрдврд╝рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реЛрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реА рд╕рд╛рдорд╛рдиреНрдп рдЖрдпреБ рдореЗрдВ - рдмрд╣реБрдд рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рдирдпрд╛ рдкреНрд░рд╛рд░реВрдк рдкреИрджрд╛ рд╣реБрдЖ:
рд╢реЙрд░реНрдЯреНрд╕ (рдЕрдВрдЧреНрд░реЗрдЬреА рд╢рдмреНрдж рд╢реЙрд░реНрдЯ - рд╢реЙрд░реНрдЯ) рд╕реЗред
рдПрдХ рд▓рдШреБ рдПрдХ (рдПрдХ рдпрд╛ рджреЛ рд╡рд╛рдХреНрдпреЛрдВ рд╕реЗ) рдордЬрд╝рд╛рдХ рд╣реИ, рдХрдбрд╝рд╛рдИ рд╕реЗ 255 рд╡рд░реНрдгреЛрдВ рддрдХ рд╕реАрдорд┐рдд рд╣реИ (рдЗрд╕рд▓рд┐рдП рдЖрдо рдирд╣реАрдВ рд╣реИ)ред
рдмрд╕ рдЙрд╕ рдХреНрд╖рдг рдореИрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░реНрдп рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдерд╛ред рдореИрдВрдиреЗ рд╕рд╛рдЗрдЯ рдХреЛ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ - рдПрдХ-рджреЛ рд╢рд╛рдо рдореЗрдВ, рдореИрдВрдиреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЛ рдЖрдИрдЖрд░рд╕реА рдореЗрдВ рдХрд╛рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдХреБрдЫ рдкрд░рд┐рдЪрд┐рддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдпрд╛, рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдерд╛, рдЬрдм рдореБрдЭреЗ рдЕрдЪрд╛рдирдХ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рджреЛ рджрд┐рдиреЛрдВ рдореЗрдВ рд╕рд╛рдЗрдЯ рдкрд░ 500 рд▓реЛрдЧ рдЖрдП рдереЗ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд▓рдЧрднрдЧ рдПрдХ рддрд┐рд╣рд╛рдИ рдиреЗ рд╕рд╛рдЗрди рдЕрдк рдХрд┐рдпрд╛ рдерд╛ред рдЖрд░рдПрд╕рдПрд╕ рдлрд╝реАрдбред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрд╡рдзрд╛рд░рдгрд╛ рдкрд╕рдВрдж рдЖрдИред рд╕рд╛рдЗрдЯ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рд╛ рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рдЪрд╛рдЯрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЦрд╛рдмрд░реЛрд╕рд┐рдЯреА рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ - рд╢реЙрд░реНрдЯреНрд╕
рд╢реЙрд░реНрдЯ рдФрд░ рдлрдиреА рд╣реИрдВ , рдХреГрдкрдпрд╛ рдкреНрдпрд╛рд░ рдФрд░ рдПрд╣рд╕рд╛рди рдХрд░реЗрдВред
PS рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдПрдХ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдирд╣реАрдВ рд╣реИ (рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрднреА рддрдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдирд╣реАрдВ рд╣реИ, рдФрд░ "рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк" рдореЗрд░реЗ рд╢рд┐рд▓реНрдк рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╢рдмреНрдж рд╣реИ), рд╕рд╛рдЗрдЯ рдкрд░ рдореЗрд░реЗ рд░рд╣рдиреЗ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдП рдЧрдП рд╣рдмреНрд░рд╕ рд╡рд┐рд╡реЗрдХ рдиреЗ рдореБрдЭреЗ рдПрдХ рдЧреИрд░-рддрдХрдиреАрдХреА рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреАред рдЗрд╕рд▓рд┐рдП, рдХрдЯреМрддреА рдХреЗ рддрд╣рдд рдЖрдкрдХреЛ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╣рд╛рдиреА рдорд┐рд▓реЗрдЧреА рдХрд┐ рд╣рдордиреЗ рдХреИрд╕реЗ рд╣реЗрдмреНрд░реИрдлреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╢реЙрд░реНрдЯрдХреА рддреИрдпрд╛рд░ рдХреАред
рдирдВрдмрд╛ 1: рд╕рдВрд╕рд╛рдзрди
рдХрд┐рд╕реА рднреА рд╡реЗрдм рдкрд░рд┐рдпреЛрдЬрдирд╛, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк, рдореЗрдВ рд╣рдореЗрд╢рд╛ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдпрд╛рддрд╛рдпрд╛рдд рдХрд╛ рддреЗрдЬ рдкреНрд░рд╡рд╛рд╣ рд╣реЛрддрд╛ рд╣реИ - рдПрдХ рдмрдбрд╝реЗ рд╕рдВрд╕рд╛рдзрди рдкрд░ рдПрдХ рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣реИрдмреЗ рдкрд░), рдПрдХ рдкреНрд░реЗрд╕ рд╡рд┐рдЬреНрдЮрдкреНрддрд┐, рдПрдХ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдЕрднрд┐рдпрд╛рди, рд╕рдорд╛рдЪрд╛рд░ рдореЗрдВ рдПрдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдЙрд▓реНрд▓реЗрдЦ, рдЖрджрд┐ред рдЕрдХреНрд╕рд░ (рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ) рдЯреНрд░реИрдлрд╝рд┐рдХ рдореЗрдВ рд╡реГрджреНрдзрд┐ SUDDENLY тДв рд╣реЛрддреА рд╣реИред
рдЗрд╕рд╕реЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд▓рддрд╛ рд╣реИ - рдпрд╣ рд╕рдВрднрд╡ рд╣реИ, 200 рд░реВрдмрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡реАрдкреАрдПрд╕ рдкрд░ рдкреНрд░рддрд┐ рджрд┐рди 100k рдЕрджреНрд╡рд┐рддреАрдп рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрд╕рд╛рдзрди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ geek рджреЛрд╕реНрддреЛрдВ рдХреЗ рд╕рд░реНрдХрд▓ рдореЗрдВ рдЧрд░реНрд╡ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдпрд╣ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд╖рдг рдореЗрдВ рд╕рд╛рдЗрдЯ рдХреЗ рдкрддрди рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬрдм рд╡реЗрдм рдЙрддреНрдкрд╛рджрди рдкреНрд░рдгрд╛рд▓реА рдЕрдкрдиреА рдХреНрд╖рдорддрд╛ рдХреЗ 10% рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдпрд╣ рдЙрд╕реЗ рдЙрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рдордп рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдЗрд╕ рд╕рдм рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЗрд╕ рддрд░рд╣ рдХреЗ "рд╣рд▓реНрдХреЗ" рд╕рд╛рдЗрдЯ рдХреЛ рд╢реЙрд░реНрдЯрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдмрд┐рдЬрд▓реА рдХреА рдЕрдЪреНрдЫреА рдЖрдкреВрд░реНрддрд┐ рд╣реЛрддреА рд╣реИред
рдирдВрдмрд╛ 2: рдлреНрд░рдВрдЯрдПрдВрдб рдФрд░ рдмреИрдХрдПрдВрдб
рд╡реЗрдм рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдкрд╣рд▓реЗ рдЙрдкрджреЗрд╢реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реНрдерд┐рд░ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рдПрдХ рдорд╛рдирдХ рд╕рдорд╛рдзрд╛рди рдмрдирд╛рдПрдВрдЧреЗ: рдиреЗрдЬреЗрдиреНрдХреНрд╕ рдЯреВ рдж рдлреНрд░рдВрдЯреЗрдВрдб, рдЕрдкрд╛рдЪреЗ 127.0.0.1 рдкрд░ рд╕реБрдирддрд╛ рд╣реИред Nginx рд╕реНрдереИрддрд┐рдХ рд╕рд╛рдордЧреНрд░реА рдХреЛ рджреВрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд░ рдпрд╣ рджреЗрдЦрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдз рдЧрддрд┐рд╢реАрд▓ рд╣реИ, рддреЛ рдпрд╣ рдЕрдкрд╛рдЪреЗ рдХреЛ рдЕрдиреБрд░реЛрдз "рдЕрдВрджрд░" рднреЗрдЬрддрд╛ рд╣реИ:
server {
listen 10.0.121.124:80;
server_name shortiki.com www.shortiki.com;
#
if ($host = 'www.shortiki.com' ) {
rewrite ^/(.*)$ http://shortiki.com/$1 permanent;
}
access_log /var/log/vhosts/nginx-shortiki.com-access.log main;
# , . .
location ~ ^.+\.(html|jpg|jpeg|gif|png|ico|css|js)$ {
root /usr/home/vhosts/shortiki;
expires 30d;
access_log off;
}
location / {
proxy_pass http://127.0.0.1:8081;
# ,
}
}
* This source code was highlighted with Source Code Highlighter.
3: MPM
Apache MPM (Multi-Processing Modules, , - / , ) тАУ prefork worker.
Prefork тАУ , , . Prefork , worker.
Worker , , , . worker , , , , , . , , , , worker.
4: Accept-
Accept- ( ) , , - , HTTP .
FreeBSD, , :
# kldload accf_http
, :
echo 'accf_http_load="YES"' >> /boot/loader.conf
, :
AcceptFilter http httpready
nginx:
listen 10.0.121.124:80 default sndbuf=16k rcvbuf=8k accept_filter=httpready
-:
/usr/local/etc/rc.d/nginx reload
/usr/local/etc/rc.d/apache22 restart
5: Apache
Apache тАФ . , , :
MaxClients тАУ , , . MaxClients = 300, 301 , , , , . , MaxClients, тАУ 300 . MaxClients :
MaxClients = /
Apache RSS top ps.
AllowOverride:
<Directory />
AllowOverride none
</Directory>
* This source code was highlighted with Source Code Highlighter.
, , , .htaccess.
ExtendedStatus ( 1 2 ):
ExtendedStatus Off
FollowSymLinks -, Apache :
<Directory />
Options FollowSymLinks
</Directory>
* This source code was highlighted with Source Code Highlighter.
:
Timeout 10
( ):
<Location />
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml application/x-javascript
</Location>
* This source code was highlighted with Source Code Highlighter.
MinSpareServers MaxSpareServers тАУ , , ┬л ┬╗. , , MinSpareServers 2, 2 , . , тАУ , , , , , / .
MinSpareServers 2
MaxSpareServers 8
, 2 , , 8 тАУ , .
:
MinSpareServers 8
MaxSpareServers 32
StartServers тАУ , Apache . StartServers MinSpareServers, MinSpareServers. , :
StartServers 8
MaxRequestPerChild , . , . тАУ , 10000 , 10000 , .
MaxRequestPerChild 3000
KeepAlive тАУ , TCP , . KeepAliveTimeout , .. , .
KeepAlive On
KeepAliveTimeout 5
6: PHP
, php php memcache memcached , . FreeBSD :
cd /usr/ports/databases/pecl-memcache
make install clean
cd /usr/ports/databases/memcached
make install clean
7:
, тАФ . , . SQL , 20 :
SELECT sid, sdate, stext, srating FROM quotes ORDER BY id ASC LIMIT $shortik_first, $shortiks_main
* This source code was highlighted with Source Code Highlighter.
, , :
// Memcached
$mem = new Memcache();
$mem->connect('localhost', 11211);
//
$quotesonpage = '';
//
if ( !$mem->get['s_main'] ) {
// - MySQL...
$connect = @mysql_connect ($server, $user, $pass) or die('Could not connect: ' . mysql_error());
@mysql_select_db("ShoDB");
$query = "SELECT sid, sdate, stext, srating FROM quotes ORDER BY id ASC LIMIT $shortik_first, $shortiks_main";
@mysql_set_charset('utf8',$connect);
$get_smain = mysql_query ($query) or die('Cannot execure query: ' . mysql_error());
$quotesonpage = array();
while ($shortik = mysql_fetch_assoc($get_smain)) {
$quotesonpage[] = $shortik;
}
$quotesonpage = array_reverse($quotesonpage);
// ... memcache, (1800 ).
$mem->set('quotes', $quotesonpage,MEMCACHE_COMPRESSED,1800);
} else {
$quotesonpage = $mem->get['quotes'];
}
* This source code was highlighted with Source Code Highlighter.
, , MySQL . , , .
8: :)
! , , .
, , ,
, :)