<!DOCTYPE html>
    <html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
    <head>
<title>Cách sử dụng Nginx làm reverse proxy</title>
<meta name="description" content="Cách sử dụng Nginx làm reverse proxy - Savefile - Tin Tức -...">
<meta name="author" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :.">
<meta name="copyright" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :. [admin@nguoicodonvn2008.info]">
<meta name="robots" content="index, archive, follow, noodp">
<meta name="googlebot" content="index,archive,follow,noodp">
<meta name="msnbot" content="all,index,follow">
<meta name="generator" content="NukeViet v4.5">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta property="og:title" content="Cách sử dụng Nginx làm reverse proxy">
<meta property="og:type" content="website">
<meta property="og:description" content="Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;www.nguoicodonvn2008.info&#x002F;vi&#x002F;news&#x002F;savefile&#x002F;kien-thuc-may-tinh&#x002F;cach-su-dung-nginx-lam-reverse-proxy-840.html">
<meta property="og:site_name" content=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.">
<meta property="og:url" content="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/cach-su-dung-nginx-lam-reverse-proxy-840.html">
<link rel="shortcut icon" href="https://www.nguoicodonvn2008.info/favicon.ico">
<link rel="canonical" href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/cach-su-dung-nginx-lam-reverse-proxy-840.html">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/" title="Tin Tức" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/karaoke-dual/" title="Tin Tức - Karaoke Dual" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/nhac-tre/" title="Tin Tức - Nhạc trẻ" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tru-tinh/" title="Tin Tức - Trữ tình" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/nuoc-ngoai/" title="Tin Tức - Nước ngoài" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/remix/" title="Tin Tức - Remix" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tam-su-tinh-yeu/" title="Tin Tức - Tâm sự tình yêu" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tho-suu-tam/" title="Tin Tức - Thơ sưu tầm" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/cuoc-song/" title="Tin Tức - Cuộc sống" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/phan-mem/" title="Tin Tức - Phần mềm" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/kien-thuc-may-tinh/" title="Tin Tức - Kiến thức máy tính" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/hoc-tap/" title="Tin Tức - Học tập" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tai-lieu/" title="Tin Tức - Tài liệu" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/de-thi/" title="Tin Tức - Đề thi" type="application/rss+xml">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/assets/css/font-awesome.min.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/style.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/style.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/news.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/custom.css" type="text/css">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/jquery/jquery.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/language/vi.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/global.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/site.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/news.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/main.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/custom.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/bootstrap.min.js" type="text/javascript">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/assets/css/font-awesome.min.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/style.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/style.non-responsive.css">
<link rel="StyleSheet" href="https://www.nguoicodonvn2008.info/themes/default/css/news.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/custom.css">
<style type="text/css">
	body{background: #fff;}
</style>
    </head>
    <body>
<div id="print">
	<div id="hd_print">
		<h2 class="pull-left">.&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.</h2>
		<p class="pull-right"><a title=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;." href="https://www.nguoicodonvn2008.info/">https://www.nguoicodonvn2008.info</a></p>
	</div>
	<div class="clear"></div>
	<hr />
	<div id="content">
		<h1>Cách sử dụng Nginx làm reverse proxy</h1>
		<ul class="list-inline">
			<li>Thứ ba - 27/08/2019 09:43</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">
		</div>
				<div class="imghome">
			<img alt="Cách sử dụng Nginx làm reverse proxy" src="https://st.quantrimang.com/photos/image/2019/08/27/cach-dung-nginx-lam-reverse-proxy-1.jpg" width="460" class="img-thumbnail" />
		</div>
		<div class="clear"></div>
		<div id="bodytext" class="clearfix">
			<p style="text-align: justify;">Khác với Apache, Nginx là máy chủ web phổ biến nhất hiện có. Ngoài việc là một máy chủ web, nó cũng có thể được sử dụng như một trình cân bằng tải hoặc reverse proxy. Trong hướng dẫn này,&nbsp;<strong>Quantrimang.com</strong>&nbsp;sẽ chỉ cho bạn cách có thể sử dụng Nginx làm reverse proxy.</p>

<h2 style="text-align: justify;">Reverse proxy là gì?</h2>

<p style="text-align: justify;">Một&nbsp;proxy server&nbsp;hoạt động với vai trò trung gian giữa máy khách và máy chủ khác. Proxy server lấy tài nguyên từ máy chủ mà bạn muốn kết nối và gửi nó cho bạn để xem. Một reverse proxy hoạt động theo cùng một cách, ngoại trừ vai trò bị đảo ngược. Khi bạn yêu cầu thông tin từ máy chủ, reverse proxy sẽ giữ yêu cầu và gửi nó đến máy chủ backend thích hợp. Điều này cho phép quản trị viên hệ thống sử dụng máy chủ cho nhiều ứng dụng, cũng như đảm bảo luồng lưu lượng truy cập mượt mà hơn giữa máy khách và máy chủ.</p>

<p style="text-align: justify;"><img alt="Reverse proxy là gì?" data-i="0" data-src="https://st.quantrimang.com/photos/image/2019/08/27/cach-dung-nginx-lam-reverse-proxy-1.jpg" data-was-processed="true" height="204" src="https://st.quantrimang.com/photos/image/2019/08/27/cach-dung-nginx-lam-reverse-proxy-1.jpg" width="528" /></p>

<h2 style="text-align: justify;">Lợi ích của reverse proxy</h2>

<p style="text-align: justify;">Tùy thuộc vào ứng dụng của bạn, bạn có thể có các trường hợp sử dụng reverse proxy khác nhau.</p>

<ul>
	<li style="text-align: justify;"><strong>Một reverse proxy cho phép bạn chạy nhiều ứng dụng trên cùng một máy chủ</strong>&nbsp;- Nếu bạn có nhiều ứng dụng chạy trên cùng một máy chủ, tất cả chúng không thể “lắng nghe” cùng lúc trên cổng 80 hoặc 433. Với reverse proxy, bạn có thể cấu hình nó để chuyển hướng lưu lượng truy cập đến các ứng dụng riêng lẻ nếu cần.</li>
	<li style="text-align: justify;"><strong>Cân bằng tải</strong>&nbsp;- Nếu có nhiều máy chủ chạy cùng một ứng dụng, bạn có thể sử dụng reverse proxy để phân phối lưu lượng đều cho từng máy chủ.</li>
	<li style="text-align: justify;"><strong>Tường lửa ứng dụng web</strong>&nbsp;- Bạn có thể sử dụng reverse proxy để ẩn ứng dụng của mình và cũng để lọc IP spam hoặc bảo vệ khỏi&nbsp;cuộc tấn công DDOS.</li>
	<li style="text-align: justify;"><strong>Ghi nhật ký và kiểm tra dễ dàng</strong>&nbsp;- Vì tất cả lưu lượng truy cập đến được quản lý bởi reverse proxy, nên việc ghi nhật ký và giám sát luồng lưu lượng sẽ dễ dàng hơn.</li>
</ul>

<div style="text-align: justify;">&nbsp;</div>

<h2 style="text-align: justify;">Cấu hình Nginx làm reverse proxy</h2>

<p style="text-align: justify;">Để thiết lập Nginx làm reverse proxy, bài viết sẽ sử dụng tham số&nbsp;<strong>proxy_pass</strong>&nbsp;trong file cấu hình Nginx.</p>

<p style="text-align: justify;"><strong>Lưu ý</strong>: Hướng dẫn này giả định rằng bạn có một số kiến ​​thức về Nginx và đã cài đặt, cũng như thiết lập Nginx trong máy chủ của bạn.</p>

<p style="text-align: justify;">Trong hầu hết các trường hợp sử dụng, Nginx sẽ là máy chủ front-end, “lắng nghe” cổng 80 (HTTP) hoặc 443 (HTTPS) cho các yêu cầu đến. Vì chỉ có thể có một dịch vụ “nghe” trên cổng 80 hoặc 443, ứng dụng của bạn sẽ phải “nghe” trên một cổng khác, chẳng hạn như cổng 8081. Cấu hình đơn giản nhất sẽ giống như thế này:</p>

<pre id="pre0">
<code>server {
 listen 80;
 listen &#91;::&#93;:80;
 server_name myapp.com;
 location / {
 proxy_pass http://localhost:8081/;
 }
 }</code></pre>

<p style="text-align: justify;">Điều này có nghĩa là tất cả các yêu cầu đến&nbsp;<strong>myapp.com</strong>&nbsp;tại cổng&nbsp;<strong>80</strong>&nbsp;sẽ được chuyển hướng đến cổng&nbsp;<strong>8081.</strong></p>

<h2 style="text-align: justify;">Thiết lập nâng cao</h2>

<p style="text-align: justify;">Ngoài directive&nbsp;<strong>proxy_pass,</strong>&nbsp;có một số directive khác mà bạn có thể sử dụng để thiết lập nâng cao hơn.</p>

<ul>
	<li style="text-align: justify;"><strong>proxy_set_header</strong>&nbsp;- Điều này cho phép bạn đặt tiêu đề để gửi đến ứng dụng nền. Ví dụ, xem cấu hình sau:</li>
</ul>

<pre id="pre1">
<code>proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;</code></pre>

<p style="text-align: justify;">Bạn có thể đặt tiêu đề proxy cần thiết để chuyển đến ứng dụng, cho nó biết IP yêu cầu và địa chỉ từ xa, sau đó xuất nội dung chính xác cho trang web yêu cầu.</p>

<ul>
	<li style="text-align: justify;"><strong>proxy timeout</strong>&nbsp;- Điều này cho phép bạn đặt giá trị timeout (thời gian chờ) để gửi và nhận yêu cầu proxy. Ví dụ:</li>
</ul>

<pre id="pre2">
<code>proxy_connect_timeout 90;
 proxy_send_timeout 90;
 proxy_read_timeout 90;</code></pre>

<ul>
	<li style="text-align: justify;"><strong>proxy_buffers</strong>&nbsp;- Điều này cho phép Nginx tạm thời giữ phản hồi của proxy server và chỉ gửi đến máy chủ yêu cầu sau khi proxy server kết thúc phản hồi. Ví dụ:</li>
</ul>

<pre id="pre3">
<code>proxy_buffers 32 4k;</code></pre>

<p style="text-align: justify;">Nếu ứng dụng của bạn gửi một số lượng lớn file, thì bạn có thể muốn vô hiệu hóa proxy_buffers:</p>

<pre id="pre4">
<code>proxy_buffering off;</code></pre>

<p style="text-align: justify;">Như bạn có thể thấy, Nginx là một máy chủ reverse proxy có rất nhiều công dụng. Điểm cộng lớn nhất về nó là cấu hình đơn giản, dễ sử dụng và vẫn cho phép bạn mở rộng quy mô trong các tình huống phức tạp hơn. Để biết thêm chi tiết, bạn có thể xem tài liệu mô-đun proxy Nginx (tại&nbsp;<em>https://nginx.org/en/docs/http/ngx_http_proxy_module.html)</em>&nbsp;hoặc các ví dụ cấu hình (tại&nbsp;<em>https://www.nginx.com/resources/wiki/start/topics/examples/full/).</em></p>

<p style="text-align: justify;">Chúc bạn thực hiện thành công!</p>
		</div>
				<div id="author">
						<p>
				<strong>Nguồn tin:</strong>
				Quantrimang.com
			</p>
		</div>
	</div>
	<div id="footer" class="clearfix">
		<div id="url">
			<strong>URL của bản tin này: </strong><a href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/cach-su-dung-nginx-lam-reverse-proxy-840.html" title="Cách sử dụng Nginx làm reverse proxy">https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/cach-su-dung-nginx-lam-reverse-proxy-840.html</a>

		</div>
		<div class="clear"></div>
		<div class="copyright">
			&copy; .&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.
		</div>
		<div id="contact">
			<a href="mailto:admin@nguoicodonvn2008.info">admin@nguoicodonvn2008.info</a>
		</div>
	</div>
</div>
        <div id="timeoutsess" class="chromeframe">
            Bạn đã không sử dụng Site, <a onclick="timeoutsesscancel();" href="https://www.nguoicodonvn2008.info/#">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>
		<div class="car-top">
  <span><img src="https://www.nguoicodonvn2008.info/themes/default/images/car.png" alt=""></span>
</div>
<script src="https://www.nguoicodonvn2008.info/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_e856T",nv_check_pass_mstime=1738000,nv_area_admin=0,nv_safemode=0,theme_responsive=0,nv_recaptcha_ver=2,nv_recaptcha_sitekey="",nv_recaptcha_type="image",XSSsanitize=1;</script>
<script src="https://www.nguoicodonvn2008.info/assets/js/language/vi.js"></script>
<script src="https://www.nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js"></script>
<script src="https://www.nguoicodonvn2008.info/assets/js/global.js"></script>
<script src="https://www.nguoicodonvn2008.info/assets/js/site.js"></script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/news.js"></script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/main.js"></script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/custom.js"></script>
<script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "Organization",
            "url": "https://www.nguoicodonvn2008.info",
            "logo": "https://www.nguoicodonvn2008.info/uploads/angel.gif"
        }
        </script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/bootstrap.min.js"></script>
<script type="text/javascript">
var $scrolltop = $('.car-top');
$scrolltop.on('click', function () {
    $('html,body').animate({
        scrollTop: 0
    }, 800);
    $(this).addClass("car-run");
    setTimeout(function(){ $scrolltop.removeClass('car-run');}, 1000);
    return false;
});
$(window).on('scroll', function ()
{ 
    if($(window).scrollTop() >= 200)
    {
        $scrolltop.addClass("show");
        $scrolltop.addClass("car-down");
    }
    else
    {
       $scrolltop.removeClass("show");
       setTimeout(function(){ $scrolltop.removeClass('car-down');}, 300);
    }
});
</script>
</body>
</html>