11
2010
Sử dụng Nginx và memcached để tăng tốc Apache trên Debian Lenny
Trong bài viết này, tôi giới thiệu cách thức cài đặt Nginx kết hợp với memcached trên Debian “lenny” 5.0 nhằm tăng hiệu năng phục vụ của web server mà ở đây là Apache 2.2. Bài viết này là tổng hợp từ nhiều nguồn khác nhau trên Internet và là bản ghi chép của tôi trong quá trình nâng cấp một web server thực tế có lượng truy cập lớn.
- Nginx (phát âm giống “engine x”) là một máy chủ web (web server), proxy ngược (reserve proxy) và e-mail proxy (IMAP/POP3) nhẹ, hiệu năng cao, sử dụng giấy phép kiểu BSD. Nó có thể chạy trên UNIX, Linux, các dòng BSD, Mac OS X, Solaris và Microsoft Windows.
- memcached (phát âm là mem-cash-dee) là một hệ thống lưu trữ bản sao các đối tượng (objects) và dữ liệu được truy cập nhiều lần để tăng tốc độc truy xuất. Nó thường được sử dụng để tối ưu hóa việc tải dữ liệu từ cơ sở dữ liệu cho các ứng dụng trên nền web. Vào lúc đầu, hệ thống memcached được phát triển bởi Danga Interactive và dùng cho LiveJournal. Sau đó memcached trở nên phổ biến và được dùng trên các trang web khác.
ServerName blog.cuongnv.com
ServerAdmin [email protected]
DocumentRoot “/home/www/blog.cuongnv.com/public_html”
<Directory “/home/www/blog.cuongnv.com/public_html”>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
ErrorLog /var/log/apache2/blog.cuongnv.com_error_log
LogFormat “%h %l %>s %b” common
CustomLog /var/log/apache2/blog.cuongnv.com_access_log common
</VirtualHost>
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 32 4k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
listen 80;
server_name blog.cuongnv.com;
access_log /var/log/nginx/blog.cuongnv.com.access.log;
location / {
proxy_pass http://blog.cuongnv.com:8080;
include /etc/nginx/proxy.conf;
}
location ~ \.php$ {
proxy_pass http://blog.cuongnv.com:8080;
include /etc/nginx/proxy.conf;
}
# Danh sach file tinh vi dụ
location ~* ^.+.(jpg|jpeg|gif|png|ico|css|tar|mid|midi|wav|js)$ {
expires max;
set $memcached_key “$scheme://$host$request_uri”;
memcached_pass 127.0.0.1:11211;
error_page 404 = /fallback;
}
location /fallback {
internal;
expires max;
proxy_pass http://blog.cuongnv.com:8080;
include /etc/nginx/proxy.conf;
break;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/nginx-default;
}
}
<?php
function rscandir($base = ”, &$data = array())
{
$array = array_diff(scandir($base), array(‘.’, ‘..’));
foreach ($array as $value)
{
if (is_dir($base.$value))
{
$data = rscandir($base . $value . ‘/’, $data);
}
elseif (is_file($base.$value))
{
$rest = substr($value, -4);
if ((!strcmp($rest,’.jpg’)) ||
(!strcmp($rest,’.png’)) ||
(!strcmp(substr($value, -3),’.js’)) ||
(!strcmp($rest,’.css’)) ||
(!strcmp($rest,’.gif’)) )
{
$data[] = $base.$value;
}
}
}
return $data;
}
$mylist=rscandir(“/home/www/blog.cuongnv.com/public_html”);
$srch = array(‘/home/www/blog.cuongnv.com/public_html’);
$newval = array(‘http://blog.cuongnv.com’);
$memcache_obj = memcache_connect(’127.0.0.1′, 11211);
while (list($key, $val) = each($mylist))
{
$url = str_replace($srch, $newval, $val);
echo “$key => $url -> ” . filesize($val) . “\n”;
$value = file_get_contents($val);
memcache_add($memcache_obj, $url, $value, false, 0);
}
?>
# /etc/init.d/cron restart
Các bài hay khác
8 lời bình + Thêm lời bình
Với lời bình
Bài nhiều người đọc
Sử dụng Nginx và memcached để tăng tốc Apache trên Debian Lenny
8 |
Hướng dẫn cài đặt Nginx, PHP trên CENTOS, REDHAT
5 |
[Cách cài đặt] Cài đặt SQL Server 2008
2 |
[Kiến thức cơ bản] Dùng lệnh date trên Linux.
2 |
[Cách cài đặt] Thiết lập hệ thống WebDAV với Apache2 trên OpenSUSE 11.3
2 |
[Tối ưu] Tăng tốc truy cập và tải xuống với mô đun mod_deflate của Apache 2.0
2 |
[Tối ưu hóa] Tăng tốc ứng dụng Web
2 |
[Tin tức] Ubuntu 10.10 chính thức ra mắt
2 |
[Kiến thức cơ bản] Tập tin Hiberfil.sys là gì và cách xóa nó
2 |
[Kiến thức cơ bản] CHMOD là gì ?
1 |
Bình luận mới nhất
- Loading...
E-books mới
Những website hay
- Kiến thức y học
- Phụ đề Tiếng Việt
- Tin tức khuyến mãi
- Trang tải phần mềm, phim, nhạc, e-book, wallpaper

Viết bởi

Bài viết rất hay và đáng tham khảo. Thx bạn.
Cam on ban, bai viet rat huu ich
Cám ơn nhiều, vô tình đọc được bài này. Có thể thử nghiệm xem sao .
Ymoi recently posted..Bài thơ về Hạnh Phúc
[...] ảnh và file khác Nói đến đây thôi nhỉ đây là bài viết mình lấy nguồn từ cachcaidat.com Sử dụng Nginx và memcached để tăng tốc Apache trên Debian Lenny Trong bài viết [...]
Bài viết hay
Có điều gì đó chưa thỏa đáng trong cấu hình, bạn giải thích giúp
# Ba dòng này ấn định là truy cập theo kiểu chuẩn không bảo mật với HTTP
listen 80;
server_name blog.cuongnv.com;
proxy_pass http://blog.cuongnv.com:8080;
# Trong khi đó dòng này lại ấn định “dù HTTP hay HTTPS”. Vậy có phải là đã dư? Nếu đúng vậy thì sao mình không dùng hẳn luôn HTTP? Hay trong cú pháp của Nginx không có phân biệt này?
set $memcached_key “$scheme://$host$request_uri”;
Chờ hồi âm quý của bạn.
Trân trọng
Cái này chỉ làm trên Debian thôi nhỉ, Cen OS khác đúng ko bạn
Về cơ bản là giống nhau, chỉ khác các câu lệnh để cài đặt thôi.