<!DOCTYPE html>
	<html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
	<head>
<title>Chuẩn nén dữ liệu Brotli và NukeViet</title>
<meta name="description" content="Chuẩn nén dữ liệu Brotli và NukeViet - Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;nukeviet.vn&#x002F;vi&#x002F;news&#x002F;savefile&#x002F;nhom-phat-trien&#x002F;chuan-nen-du-lieu-brotli-va-nukeviet-514.html">
<meta name="author" content="NukeViet">
<meta name="copyright" content="NukeViet [admin@nukeviet.vn]">
<meta name="generator" content="NukeViet v4.6">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta property="og:title" content="Chuẩn nén dữ liệu Brotli và NukeViet">
<meta property="og:type" content="website">
<meta property="og:description" content="Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;nukeviet.vn&#x002F;vi&#x002F;news&#x002F;savefile&#x002F;nhom-phat-trien&#x002F;chuan-nen-du-lieu-brotli-va-nukeviet-514.html">
<meta property="og:site_name" content="NukeViet">
<meta property="og:url" content="https://nukeviet.vn/vi/news/savefile/nhom-phat-trien/chuan-nen-du-lieu-brotli-va-nukeviet-514.html">
<link rel="shortcut icon" href="https://www.nukeviet.vn/favicon.ico">
<link rel="canonical" href="https://nukeviet.vn/vi/news/savefile/nhom-phat-trien/chuan-nen-du-lieu-brotli-va-nukeviet-514.html">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/" title="Tin Tức" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/Tin-tuc/" title="Tin Tức - Tin tức NukeViet" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/thong-cao-bao-chi/" title="Tin Tức - Thông cáo báo chí" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/Tin-an-ninh/" title="Tin Tức - Bản tin an ninh" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/phat-hanh/" title="Tin Tức - Bản tin phát hành" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/nhom-phat-trien/" title="Tin Tức - Tin từ nhóm phát triển" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/community/" title="Tin Tức - Cộng đồng NukeViet" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/Tin-hoat-dong/" title="Tin Tức - Tin hoạt động" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/To-chuc-Su-kien/" title="Tin Tức - Tổ chức - Sự kiện" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/Guong-mat-tieu-bieu/" title="Tin Tức - Gương mặt tiêu biểu" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/hop-tac-phat-trien/" title="Tin Tức - Hợp tác - Phát triển" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/thong-bao-moi-thau/" title="Tin Tức - Thông báo mời thầu" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/viec-lam/" title="Tin Tức - Việc làm" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/Danh-sach-doi-tac/" title="Tin Tức - Danh sách đối tác" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/Thong-tin-da-chieu/" title="Tin Tức - Thông tin đa chiều" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/Bao-chi-viet/" title="Tin Tức - Báo chí viết" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/Website-tieu-bieu/" title="Tin Tức - Website tiêu biểu" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/the-gioi-cong-nghe/" title="Tin Tức - Thế giới công nghệ" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/website/" title="Tin Tức - Thế giới Web" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/An-ninh-mang/" title="Tin Tức - An ninh mạng" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/Cong-dong-nguon-mo/" title="Tin Tức - Cộng đồng nguồn mở" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/nukeviet-va-seo/" title="Tin Tức - NukeViet và SEO" type="application/rss+xml">
<link rel="alternate" href="https://www.nukeviet.vn/vi/news/rss/Huong-dan-su-dung/" title="Tin Tức - Hướng dẫn sử dụng" type="application/rss+xml">
<link rel="preload" as="style" href="https://www.nukeviet.vn/assets/css/font-awesome.min.css" type="text/css">
<link rel="preload" as="style" href="https://www.nukeviet.vn/themes/nukeviet4_vn/css/bootstrap.min.css" type="text/css">
<link rel="preload" as="style" href="https://www.nukeviet.vn/themes/nukeviet4_vn/css/style.css" type="text/css">
<link rel="preload" as="style" href="https://www.nukeviet.vn/themes/nukeviet4_vn/css/style.responsive.css" type="text/css">
<link rel="preload" as="style" href="https://www.nukeviet.vn/themes/nukeviet4_vn/css/news.css" type="text/css">
<link rel="preload" as="script" href="https://www.nukeviet.vn/assets/js/jquery/jquery.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nukeviet.vn/assets/js/language/vi.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nukeviet.vn/assets/js/DOMPurify/purify3.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nukeviet.vn/assets/js/global.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nukeviet.vn/assets/js/site.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nukeviet.vn/themes/default/js/news.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nukeviet.vn/themes/nukeviet4_vn/js/main.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nukeviet.vn/themes/nukeviet4_vn/js/bootstrap.min.js" type="text/javascript">
<link rel="StyleSheet" href="https://www.nukeviet.vn/assets/css/font-awesome.min.css">
<link rel="StyleSheet" href="https://www.nukeviet.vn/themes/nukeviet4_vn/css/bootstrap.min.css">
<link rel="StyleSheet" href="https://www.nukeviet.vn/themes/nukeviet4_vn/css/style.css">
<link rel="StyleSheet" href="https://www.nukeviet.vn/themes/nukeviet4_vn/css/style.responsive.css">
<link rel="StyleSheet" href="https://www.nukeviet.vn/themes/nukeviet4_vn/css/news.css">
<style type="text/css">
body{background-image:none!important;background-color:#f4f4f4}
.panel-default .panel-body{background-color:#fff}
</style>
<style type="text/css">
	body{background: #fff;}
</style>
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-71522940-3', '.nukeviet.vn');
ga('send', 'pageview');
</script>
<meta name="robots" content="noindex, nofollow">
</head>
	<body>
		<noscript>
			<div class="alert alert-danger">Trình duyệt của bạn đã tắt chức năng hỗ trợ JavaScript.<br />Website chỉ làm việc khi bạn bật nó trở lại.<br />Để tham khảo cách bật JavaScript, hãy click chuột <a href="http://wiki.nukeviet.vn/support:browser:enable_javascript">vào đây</a>!</div>
		</noscript>
<div id="print">
	<div id="hd_print">
		<h2 class="pull-left">NukeViet</h2>
		<p class="pull-right"><a title="NukeViet" href="https://www.nukeviet.vn/">https://www.nukeviet.vn</a></p>
	</div>
	<div class="clear"></div>
	<hr />
	<div id="content">
		<h1>Chuẩn nén dữ liệu Brotli và NukeViet</h1>
		<ul class="list-inline">
			<li>Thứ tư - 16/08/2017 13:29</li>
			<li class="hidden-print txtrequired"><em class="fa fa-print">&nbsp;</em><a title="In ra" href="javascript:;" onclick="window.print()">In ra</a></li>
			<li class="hidden-print txtrequired"><em class="fa fa-power-off">&nbsp;</em><a title="Đóng cửa sổ này" href="javascript:;" onclick="window.close()">Đóng cửa sổ này</a></li>
		</ul>
		<div class="clear"></div>
		<div id="hometext">
			Hướng dẫn này sẽ hữu ích cho các admin quan tâm đến tốc độ và thời gian truyền tải nội dung của mã nguồn NukeViet đến người dùng cuối. Nó sẽ giúp bạn tăng tốc quá trình load trang bằng cách sử dụng thuật toán nén mới của Google: Brotli.
		</div>
				<div class="imghome">
			<img alt="Brotli vs NukeViet" src="https://www.nukeviet.vn/uploads/news/2017_08/brotli-vs-nukeviet.jpg" width="700" class="img-thumbnail" />
						<p>
				<em>Brotli vs NukeViet</em>
			</p>
		</div>
		<div class="clear"></div>
		<div id="bodytext" class="clearfix">
			Điều kiện áp dụng hướng dẫn dưới đây: máy chủ nginx, hệ điều hành centos 6 trở lên, quyền sudo, site đã cài SSL.<h2>Brotli là gì?</h2><br  />Brotli là một chuẩn nén dữ liệu mới được phát triển bởi Google. Nó được tối ưu bằng nhiều phương pháp khác nhau cho các ứng dụng web như HTML, CSS, JS, v.v... Các trình duyệt hỗ trợ chuẩn nén dữ liệu này bao gồm Chrome 49+, Firefox 44+, Opera 36+ và Chrome cho điện thoại di động.<br  /><br  />Theo số liệu mà Google đưa ra, Brotli đang đứng đầu về tốc độ nén, giải nén và có khả năng nén tập tin về mức dung lượng thấp nhất trong hầu hết các trường hợp so với các thuật toán khác. Cụ thể, về dung lượng, Brotli có khả năng nén tốt hơn 17 - 25% so với các giải pháp khác. Nó đòi hỏi bộ xử lý ít hơn, tiết kiệm pin hơn. So sánh với thuật toán trước của Google là Zopfli, Brotli tối ưu hơn 20 - 26%.<br  /><br  />Brotli không tương thích với gzip và chỉ hoạt động trong môi trường HTTPS.<h2>Dựng lại Nginx hỗ trợ Brotli</h2><br  />Hiện tại Nginx chưa cho ra mắt module Brotli chính thức nên chúng ta sẽ tích hợp Brotli từ nguồn Google.<h3>1. Chuẩn bị:</h3>Trước tiên cần tuần tự thực hiện các dòng lệnh sau đây:<pre><code class="language-nginx">yum updateyum install epel-releaseyum install gcc git nano pcre-devel zlib-devel openssl-devel libxml2-devel libxslt-devel gd-devel perl-ExtUtils-Embed GeoIP-devel gperftools-devel</code></pre>&nbsp;<h3>2. Xác định phiên bản NGINX</h3>Truy cập trang http://nginx.org/download/ thông qua trình duyệt web, ta sẽ có danh sách tất cả các phiên bản nginx. Bạn cần tìm đến dòng phiên bản mới nhất. Ở thời điểm viết hướng dẫn này (12.08.2017) phiên bản mới nhất là &quot;1.13.4&quot;.<br  />Chạy dòng lệnh (Thay xxx bằng số phiên bản mà ta vừa nhận được ở trên):<pre><code class="language-nginx">LOCAL=&quot;/usr/local/src&quot;NGINX_VERSION=xxx</code></pre>&nbsp;<h3>3. Nâng cấp:</h3>Chạy tuần tự các câu lệnh dưới đây:<pre><code class="language-nginx">cd ${LOCAL}wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gztar -xvf nginx-${NGINX_VERSION}.tar.gz &amp;&amp; \rm nginx-${NGINX_VERSION}.tar.gzgit clone https://github.com/google/ngx_brotli.gitcd ngx_brotligit submodule update --init --recursivecdcd nginx-${NGINX_VERSION}nginx -V</code></pre><br  /><br  />Chep đoạn mã bắt đầu từ &quot;configure arguments:&quot; cho đến hết, sẽ có tương tự như sau:<pre><code class="language-nginx">configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt=&#039;-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC&#039; --with-ld-opt=&#039;-Wl,-z,relro -Wl,-z,now -pie&#039; --with-http_geoip_module=dynamic</code></pre><br  /><br  />Thay thế &quot;configure arguments:&quot; bằng &quot;./configure&quot;.<br  />Thêm vào phía cuối đoạn mã trên: &quot; --add-module=${LOCAL}/ngx_brotli&quot;.<br  />Kết quả ta sẽ cho chạy dòng lênh tương tự như:<pre><code class="language-nginx">./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt=&#039;-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC&#039; --with-ld-opt=&#039;-Wl,-z,relro -Wl,-z,now -pie&#039; --with-http_geoip_module=dynamic --add-module=${LOCAL}/ngx_brotli</code></pre><br  /><br  />Chạy dòng lệnh:<pre><code class="language-nginx">make install</code></pre><br  />Đợi đến khi quá trình cài đặt kết thúc.<h3>4. Chỉnh sửa file cấu hình nginx của site:</h3>File cấu hình nginx của site được đặt ở vị trí khác nhau, tùy thuộc vào từng máy chủ. Trên máy chủ của tôi nó được đặt tại vị trí: /etc/nginx/vhosts/myaccount/mysite.com.conf<br  />Chạy dòng lệnh:<pre><code class="language-nginx">nano /etc/nginx/vhosts/myaccount/mysite.com.conf</code></pre><br  /><br  />Ta sẽ thấy hiển thị nội dung của file cấu hình trên.<br  />Tìm đến dòng bắt đầu bằng:<pre><code class="language-nginx">listen 443...</code></pre><br  /><br  />Thêm xuống dưới:<pre><code class="language-nginx">brotli on;brotli_static on;brotli_buffers 32 8k;brotli_comp_level 6;brotli_types *;</code></pre><br  /><br  />Lưu thay đổi bằng tổ hợp phím CTRL+x và Enter.<br  /><br  />Khởi động lại nginx bằng dòng lệnh:<pre><code class="language-nginx">systemctl restart nginx</code></pre>&nbsp;<h3>5. Nâng cấp NukeViet:</h3>Để Brotli hỗ trợ NukeViet, bạn cần nâng cấp mã nguồn theo hướng dẫn ở đây:<br  /><a href="https://github.com/nukeviet/nukeviet/commit/443a3dcc92fd67778472c1ed4ff452b12682cf20" target="_blank">https://github.com/nukeviet/nukeviet/commit/443a3dcc92fd67778472c1ed4ff452b12682cf20</a><br  /><br  />&nbsp;
		</div>
				<div id="author">
						<p>
				<strong>Tác giả:</strong>
				Nguyễn Anh Tú &#40;anhtu&#41;
			</p>
		</div>
	</div>
	<div id="footer" class="clearfix">
		<div id="url">
			<strong>URL của bản tin này: </strong><a href="https://nukeviet.vn/vi/news/savefile/nhom-phat-trien/chuan-nen-du-lieu-brotli-va-nukeviet-514.html" title="Chuẩn nén dữ liệu Brotli và NukeViet">https://nukeviet.vn/vi/news/savefile/nhom-phat-trien/chuan-nen-du-lieu-brotli-va-nukeviet-514.html</a>

		</div>
		<div class="clear"></div>
		<div class="copyright">
			&copy; NukeViet
		</div>
		<div id="contact">
			<a href="mailto:admin@nukeviet.vn">admin@nukeviet.vn</a>
		</div>
	</div>
</div>

		<!-- SiteModal Required!!! -->
		<div id="sitemodal" class="modal fade" role="dialog">
			<div class="modal-dialog">
				<div class="modal-content">
					<div class="modal-body">
						<em class="fa fa-spinner fa-spin">&nbsp;</em>
					</div>
					<button type="button" class="close" data-dismiss="modal">
						<span class="fa fa-times"></span>
					</button>
				</div>
			</div>
		</div>
        <div id="timeoutsess" class="chromeframe">
            Bạn đã không sử dụng Site, <a onclick="timeoutsesscancel();" href="https://www.nukeviet.vn/#">Bấm vào đây để duy trì trạng thái đăng nhập</a>. Thời gian chờ: <span id="secField"> 60 </span> giây
        </div>
        <div id="openidResult" class="nv-alert" style="display:none"></div>
        <div id="openidBt" data-result="" data-redirect=""></div>
<script src="https://www.nukeviet.vn/assets/js/jquery/jquery.min.js"></script>
<script>var nv_base_siteurl="/",nv_lang_data="vi",nv_lang_interface="vi",nv_name_variable="nv",nv_fc_variable="op",nv_lang_variable="language",nv_module_name="news",nv_func_name="savefile",nv_is_user=0, nv_my_ofs=-4,nv_my_abbr="EDT",nv_cookie_prefix="nv4c_b1Sp",nv_check_pass_mstime=1738000,nv_area_admin=0,nv_safemode=0,theme_responsive=1,nv_recaptcha_ver=2,nv_recaptcha_sitekey="6LeCch0UAAAAAKrftQUTIjPOxFo5KYJTiFmaH-DJ",nv_recaptcha_type="image",XSSsanitize=1;</script>
<script src="https://www.nukeviet.vn/assets/js/language/vi.js"></script>
<script src="https://www.nukeviet.vn/assets/js/DOMPurify/purify3.js"></script>
<script src="https://www.nukeviet.vn/assets/js/global.js"></script>
<script src="https://www.nukeviet.vn/assets/js/site.js"></script>
<script src="https://www.nukeviet.vn/themes/default/js/news.js"></script>
<script src="https://www.nukeviet.vn/themes/nukeviet4_vn/js/main.js"></script>
<script src="https://www.nukeviet.vn/themes/nukeviet4_vn/js/bootstrap.min.js"></script>
</body>
</html>