{"id":3528,"date":"2019-10-23T11:22:45","date_gmt":"2019-10-23T07:52:45","guid":{"rendered":"https:\/\/www.irwebhost.com\/blog\/?p=3528"},"modified":"2019-10-26T13:08:18","modified_gmt":"2019-10-26T09:38:18","slug":"%d9%86%d8%ad%d9%88%d9%87-%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%d9%88-%d8%aa%d9%86%d8%b8%db%8c%d9%85-cdn-%d8%a8%d8%a7-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-%d9%84%db%8c%d9%86%d9%88%da%a9","status":"publish","type":"post","link":"https:\/\/www.irwebhost.com\/blog\/%d9%86%d8%ad%d9%88%d9%87-%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%d9%88-%d8%aa%d9%86%d8%b8%db%8c%d9%85-cdn-%d8%a8%d8%a7-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-%d9%84%db%8c%d9%86%d9%88%da%a9\/","title":{"rendered":"\u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u0648 \u062a\u0646\u0638\u06cc\u0645 CDN \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0644\u06cc\u0646\u0648\u06a9\u0633 (CentOS 7)"},"content":{"rendered":"<div id=\"bsf_rt_marker\"><\/div><p><a href=\"https:\/\/www.irwebhost.com\/blog\/wp-content\/uploads\/2019\/10\/cdn2.jpg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-3555\" src=\"https:\/\/www.irwebhost.com\/blog\/wp-content\/uploads\/2019\/10\/cdn2.jpg\" alt=\"\" width=\"1020\" height=\"350\" srcset=\"https:\/\/www.irwebhost.com\/blog\/wp-content\/uploads\/2019\/10\/cdn2.jpg 1020w, https:\/\/www.irwebhost.com\/blog\/wp-content\/uploads\/2019\/10\/cdn2-300x103.jpg 300w, https:\/\/www.irwebhost.com\/blog\/wp-content\/uploads\/2019\/10\/cdn2-768x264.jpg 768w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" \/><\/a><\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u067e\u0633\u062a \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u0645 \u0634\u0645\u0627 \u0631\u0627 \u0628\u0627 \u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u0648 \u062a\u0646\u0638\u06cc\u0645 CDN \u0645\u062d\u062a\u0648\u0627\u06cc \u062b\u0627\u0628\u062a \u0631\u0648\u06cc \u0633\u0631\u0648\u0631\u06cc \u06a9\u0647 \u0628\u0631 \u0631\u0648\u06cc \u0622\u0646 \u0644\u06cc\u0646\u0648\u06a9\u0633 CentOS 7 \u0646\u0635\u0628 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0622\u0634\u0646\u0627 \u06a9\u0646\u06cc\u0645. \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u06a9\u0627\u0641\u06cc\u0633\u062a \u0645\u0631\u0627\u062d\u0644\u06cc \u06a9\u0647 \u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u0645\u0637\u0644\u0628 \u0622\u0645\u062f\u0647 \u0627\u0633\u062a \u0631\u0627 \u06af\u0627\u0645 \u0628\u0647 \u06af\u0627\u0645 \u0637\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<p><!--more--><\/p>\n<p>1. \u0627\u0628\u062a\u062f\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u067e\u06a9\u06cc\u062c \u0647\u0627\u06cc \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631\u06cc \u0633\u06cc\u0633\u062a\u0645 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<pre class=\"\">#yum -y update<\/pre>\n<p>2. \u0633\u067e\u0633 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0628\u0627\u06cc\u062f \u0633\u0631\u0648\u0631 Nginx HTTP \u0631\u0627 \u0627\u0632 \u0645\u062e\u0632\u0646 EPEL \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"\"># yum install epel-release\r\n# yum install nginx<\/pre>\n<p>3. \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0648\u0628 \u0633\u0631\u0648\u0631 Nginx \u0646\u0635\u0628 \u0634\u062f\u060c \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f nginx \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0648\u0644\u06cc\u0646 \u0628\u0627\u0631 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f \u0648 \u062a\u0646\u0638\u06cc\u0645 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u06af\u0648\u0646\u0647 \u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f \u06a9\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u0628\u0647 \u0628\u0639\u062f \u0628\u0647 \u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u0648 \u0628\u0627 \u0628\u0648\u062a \u0634\u062f\u0646 \u0633\u06cc\u0633\u062a\u0645 \u0627\u062c\u0631\u0627 \u0634\u0648\u062f. \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"\"># systemctl start nginx\r\n# systemctl enable nginx<\/pre>\n<p>4. \u0628\u0647 \u0635\u0648\u0631\u062a \u067e\u06cc\u0634 \u0641\u0631\u0636\u060c \u0641\u0627\u06cc\u0631\u0648\u0627\u0644 \u062a\u0639\u06cc\u0628\u0647 \u0634\u062f\u0647 \u062f\u0631 CentOS 7 \u0628\u0647 \u06af\u0648\u0646\u0647 \u0627\u06cc \u062a\u0646\u0638\u06cc\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0647\u0627\u06cc Nginx \u0631\u0627 \u0628\u0644\u0627\u06a9 \u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u0631\u0641\u0639 \u0628\u0644\u0627\u06a9 \u0627\u06cc\u0646 \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0631\u0648\u06cc Nginx\u060c \u0642\u0648\u0627\u0646\u06cc\u0646 (rule) \u0641\u0627\u06cc\u0631\u0648\u0627\u0644 \u0631\u0627 \u0622\u067e\u062f\u06cc\u062a \u06a9\u0646\u06cc\u062f \u0628\u0647 \u0637\u0648\u0631\u06cc \u06a9\u0647 \u0628\u0633\u062a\u0647 \u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc HTTP \u0648 HTTPS \u0627\u062c\u0627\u0632\u0647 \u0639\u0628\u0648\u0631 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0632\u06cc\u0631 \u0642\u0627\u0628\u0644 \u0627\u0646\u062c\u0627\u0645 \u0627\u0633\u062a:<\/p>\n<pre class=\"\"># firewall-cmd \u2013zone=public \u2013permanent \u2013add-service=http\r\n# firewall-cmd \u2013zone=public \u2013permanent \u2013add-service=https\r\n# firewall-cmd \u2013reload<\/pre>\n<p>\u0628\u0631\u0627\u06cc \u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u062a\u0645\u0627\u0645\u06cc \u06a9\u0627\u0646\u06a9\u0634\u0646 \u0647\u0627 (\u062c\u0647\u062a \u062a\u0633\u062a \u0648 \u062a\u0645\u0631\u06cc\u0646) \u0648 \u062d\u0630\u0641 \u0641\u0627\u06cc\u0631\u0648\u0627\u0644 \u0648 \u067e\u0627\u06a9 \u06a9\u0631\u062f\u0646 \u062c\u062f\u0648\u0644 \u0647\u0627\u06cc \u0622\u0646 \u0646\u06cc\u0632 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f (\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0631\u0627 \u062f\u0631 \u0645\u062d\u0644 \u06a9\u0627\u0631 \u062e\u0648\u062f <strong>\u0647\u0631\u06af\u0632<\/strong> \u0627\u062c\u0631\u0627 \u0646\u06a9\u0646\u06cc\u062f \ud83d\ude42 ).<\/p>\n<pre class=\"\"># yum remove firewalld &amp;&amp; iptables -F<\/pre>\n<p>5. \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u06cc \u0628\u0627 \u062a\u0627\u06cc\u067e <em>http:\/\/SERVER_DOMAIN_NAME_OR_IP<\/em> (\u06a9\u0647 \u0628\u0627\u06cc\u062f \u0645\u0637\u0627\u0628\u0642 \u0628\u0627 \u0646\u0627\u0645 \u062f\u0627\u0645\u0646\u0647 \u0648 \u06cc\u0627 \u0622\u06cc \u067e\u06cc \u0634\u0645\u0627 \u067e\u0631 \u0634\u0648\u062f) \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u062e\u0648\u062f \u0635\u0641\u062d\u0647 \u067e\u06cc\u0634 \u0641\u0631\u0636 nginx \u0631\u0627 \u0645\u0637\u0627\u0628\u0642 \u062a\u0635\u0648\u06cc\u0631 \u0632\u06cc\u0631 \u0645\u0634\u0627\u0647\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<figure id=\"attachment_3537\" aria-describedby=\"caption-attachment-3537\" style=\"width: 775px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.irwebhost.com\/blog\/wp-content\/uploads\/2019\/10\/nginx.png\"><img decoding=\"async\" class=\"size-full wp-image-3537\" src=\"https:\/\/www.irwebhost.com\/blog\/wp-content\/uploads\/2019\/10\/nginx.png\" alt=\"nginx\" width=\"775\" height=\"312\" srcset=\"https:\/\/www.irwebhost.com\/blog\/wp-content\/uploads\/2019\/10\/nginx.png 775w, https:\/\/www.irwebhost.com\/blog\/wp-content\/uploads\/2019\/10\/nginx-300x121.png 300w, https:\/\/www.irwebhost.com\/blog\/wp-content\/uploads\/2019\/10\/nginx-768x309.png 768w\" sizes=\"(max-width: 775px) 100vw, 775px\" \/><\/a><figcaption id=\"caption-attachment-3537\" class=\"wp-caption-text\">nginx<\/figcaption><\/figure>\n<h2>\u0641\u0627\u06cc\u0644 \u0647\u0627 \u0648 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0647\u0627\u06cc \u0645\u0647\u0645 Nginx<\/h2>\n<ul>\n<li>\u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc root \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0633\u0631\u0648\u0631 (\u0628\u0627\u0644\u0627\u062a\u0631\u06cc\u0646 \u0633\u0637\u062d \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0634\u0627\u0645\u0644 \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc (config):etc\/nginx\/<\/li>\n<li>\u0641\u0627\u06cc\u0644 \u0627\u0635\u0644\u06cc \u06a9\u0627\u0646\u0641\u06cc\u06af Nginx \u062f\u0631\u00a0 etc\/nginx\/nginx.conf<\/li>\n<li>\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u06a9\u0627\u0646\u0641\u06cc\u06af \u0633\u0631\u0648\u0631 (\u0647\u0627\u0633\u062a \u0647\u0627\u06cc \u0645\u062c\u0627\u0632\u06cc) \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u0641\u0627\u06cc\u0644 \u0632\u06cc\u0631 \u0627\u0636\u0627\u0641\u0647 \u0634\u0648\u062f: etc\/nginx\/conf.d\/<\/li>\n<li>\u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u067e\u06cc\u0634 \u0641\u0631\u0636 \u062f\u0627\u06a9\u06cc\u0648\u0645\u0646\u062a \u0633\u0631\u0648\u0631: usr\/share\/nginx\/html\/<\/li>\n<\/ul>\n<p>6. \u062d\u0627\u0644 \u0628\u0627\u06cc\u062f \u06a9\u062f\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0645\u0646\u0638\u0648\u0631 \u0627\u0646\u062c\u0627\u0645 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u06a9\u064e\u0634 \u06a9\u0631\u062f\u0646 \u0645\u062d\u062a\u0648\u0627\u06cc \u062b\u0627\u0628\u062a \u0628\u0627 nginx \u062f\u0631 \u0641\u0627\u06cc\u0644 conf.d \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0647 \u0648 \u0633\u067e\u0633 \u0622\u0646 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"\">cd \/etc\/nginx\/conf.d\/ <strong>#changes directory<\/strong>\r\n\r\nvim cdn.conf <strong>#create a config file with below content.<\/strong>\r\n\r\nupstream cdn {\r\nserver cdn.linuxscriptshub.com; <strong>#origin (this is the web server been create earlier)<\/strong>\r\n}\r\n\r\nproxy_cache_path \/mnt\/nginx\/cdn levels=1:2 keys_zone=cdn_cache:10m max_size=10g\r\ninactive=60m use_temp_path=off; \r\n<strong>#cache setting\u00a0http:\/\/nginx.org\/en\/docs\/http\/ngx_http_proxy_module.html#proxy_cache_path<\/strong>\r\n\r\nserver {\r\nlisten 80;\r\nserver_name www.linuxscriptshub.com;\u00a0 <strong>#your domain name ie: www.linuxscriptshub.com<\/strong>\r\naccess_log \/var\/log\/nginx\/cdn.access.log; <strong>#your cdn access log<\/strong>\r\nerror_log \/var\/log\/nginx\/cdn.error.log; <strong>#your cdn error log<\/strong>\r\n\r\n\r\nlocation ~* .(mp4|gif|jpg|png|html|htm|css|js|ico|swf|pdf)$ { \r\n<strong>#in root location, every file content these file format will be serve as a cache\u00a0# this line must be include on cdn server and origin backend server.<\/strong>\r\nproxy_redirect off;\r\n<strong>#http:\/\/nginx.org\/en\/docs\/http\/ngx_http_proxy_module.html#proxy_redirect (we dont need rewrite when proxy to upstream)<\/strong>\r\nproxy_pass http:\/\/cdn;\r\n<strong>#proxy_pass to the upstream that we set.<\/strong>\r\nproxy_set_header Host $http_host;\r\n<strong>#An unchanged \u201cHost\u201d request header field can be passed like this<\/strong>\r\nexpires 5m;\r\n<strong>#cache will be expire in 5minutes<\/strong>\r\nproxy_cache cdn_cache;\r\n<strong>#proxy pass to the cache rules we setup on top of the config file<\/strong>\r\nproxy_cache_revalidate on;\r\n<strong>#cache will be revalidate with the origin server if it is expire<\/strong>\r\nadd_header Johnson-CDN-Cache $upstream_cache_status;\r\n<strong>#with this header you can know the status of the content been cache or MISS. (can check via inspect element, network)<\/strong>\r\n}\r\n\r\nlocation \/ {\r\nproxy_redirect off;\r\n<strong>#http:\/\/nginx.org\/en\/docs\/http\/ngx_http_proxy_module.html#proxy_redirect (we dont need rewrite when proxy to upstream)<\/strong>\r\nset_real_ip_from 0.0.0.0\/0;\r\nreal_ip_header X-Real-IP;\r\nreal_ip_recursive on;\r\nproxy_set_header X-Real-IP $remote_addr;\r\nproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\r\n<strong>#proxy pass the origin client ip to the upstream server<\/strong>\r\nproxy_pass http:\/\/cdn;\r\n<strong>#proxy_pass to the upstream that we set.<\/strong>\r\nproxy_set_header Host $http_host;\r\n<strong>#An unchanged \u201cHost\u201d request header field can be passed like this<\/strong>\r\n}<\/pre>\n<p>8. \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u06cc\u06a9 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc cache \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062f\u0631 \u0648\u0627\u0642\u0639 \u0627\u06cc\u0646 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u062d\u0627\u0641\u0638\u0647 cache \u0634\u0645\u0627 \u0645\u062d\u0633\u0648\u0628 \u0645\u06cc \u0634\u0648\u062f:<\/p>\n<pre class=\"\">mkdir \/mnt\/nginx\/cdn\r\nchown -R nginx.nginx \/mnt\/nginx\/<\/pre>\n<p><span style=\"color: #ff0000;\">\u0646\u06a9\u062a\u0647:\u00a0<\/span><span style=\"color: #ff0000;\"><span style=\"color: #000000;\">\u062f\u0633\u062a\u0648\u0631\u0627\u062a\u06cc \u06a9\u0647 \u062f\u0631 \u0628\u0627\u0644\u0627 \u0628\u0647 \u0622\u0646\u0647\u0627 \u0627\u0634\u0627\u0631\u0647 \u0634\u062f\u060c \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 CDN \u0633\u0631\u0648\u0631 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u062c\u063a\u0631\u0627\u0641\u06cc\u0627\u06cc\u06cc \u0627\u0632 \u06a9\u0634\u0648\u0631 \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a\u0647 \u0645\u06cc \u0634\u0648\u062f\u060c \u062a\u0646\u0647\u0627 \u06a9\u0627\u0631\u06cc \u06a9\u0647 \u0628\u0627\u06cc\u062f \u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0627\u0645\u0646\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 CDN \u0633\u0631\u0648\u0631 \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0627\u0634\u0627\u0631\u0647 \u062f\u0647\u06cc\u062f.\u00a0 \u062f\u0631 \u0635\u0648\u0631\u062a\u06cc \u06a9\u0647 \u062a\u0645\u0627\u06cc\u0644 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f\u060c \u0627\u06cc\u0646 \u0633\u0631\u0648\u0631 \u0631\u0627 \u062f\u0631 \u06a9\u0634\u0648\u0631\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0628\u0627\u06cc\u062f \u0627\u0632 \u0645\u0627\u0698\u0648\u0644 nginx geo \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<br \/>\n<\/span><\/span><\/p>\n<figure id=\"attachment_3549\" aria-describedby=\"caption-attachment-3549\" style=\"width: 610px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.irwebhost.com\/blog\/wp-content\/uploads\/2019\/10\/Screenshot_2019-10-23-How-to-setup-a-static-content-CDN-with-Linux.png\"><img decoding=\"async\" class=\"size-full wp-image-3549\" src=\"https:\/\/www.irwebhost.com\/blog\/wp-content\/uploads\/2019\/10\/Screenshot_2019-10-23-How-to-setup-a-static-content-CDN-with-Linux.png\" alt=\"\u0646\u062d\u0648\u0647 \u0627\u062a\u0635\u0627\u0644 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0628\u0647 \u06cc\u06a9 \u0633\u0631\u0648\u0631 CDN\" width=\"610\" height=\"384\" srcset=\"https:\/\/www.irwebhost.com\/blog\/wp-content\/uploads\/2019\/10\/Screenshot_2019-10-23-How-to-setup-a-static-content-CDN-with-Linux.png 610w, https:\/\/www.irwebhost.com\/blog\/wp-content\/uploads\/2019\/10\/Screenshot_2019-10-23-How-to-setup-a-static-content-CDN-with-Linux-300x189.png 300w\" sizes=\"(max-width: 610px) 100vw, 610px\" \/><\/a><figcaption id=\"caption-attachment-3549\" class=\"wp-caption-text\">\u0646\u062d\u0648\u0647 \u0627\u062a\u0635\u0627\u0644 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0628\u0647 \u06cc\u06a9 \u0633\u0631\u0648\u0631 CDN<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u062f\u0631 \u0627\u06cc\u0646 \u067e\u0633\u062a \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u0645 \u0634\u0645\u0627 \u0631\u0627 \u0628\u0627 \u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u0648 \u062a\u0646\u0638\u06cc\u0645 CDN \u0645\u062d\u062a\u0648\u0627\u06cc \u062b\u0627\u0628\u062a \u0631\u0648\u06cc \u0633\u0631\u0648\u0631\u06cc \u06a9\u0647 \u0628\u0631 \u0631\u0648\u06cc \u0622\u0646 \u0644\u06cc\u0646\u0648\u06a9\u0633 CentOS 7 \u0646\u0635\u0628 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0622\u0634\u0646\u0627 \u06a9\u0646\u06cc\u0645. \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u06a9\u0627\u0641\u06cc\u0633\u062a \u0645\u0631\u0627\u062d\u0644\u06cc \u06a9\u0647 \u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u0645\u0637\u0644\u0628 \u0622\u0645\u062f\u0647 \u0627\u0633\u062a \u0631\u0627 \u06af\u0627\u0645 \u0628\u0647 \u06af\u0627\u0645 \u0637\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n","protected":false},"author":8,"featured_media":3547,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[416,415,418,417],"class_list":["post-3528","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-11","tag-cdn-server","tag-nginx","tag---cdn-server","tag--nginx"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":7}},"_links":{"self":[{"href":"https:\/\/www.irwebhost.com\/blog\/wp-json\/wp\/v2\/posts\/3528","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.irwebhost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.irwebhost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.irwebhost.com\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.irwebhost.com\/blog\/wp-json\/wp\/v2\/comments?post=3528"}],"version-history":[{"count":12,"href":"https:\/\/www.irwebhost.com\/blog\/wp-json\/wp\/v2\/posts\/3528\/revisions"}],"predecessor-version":[{"id":3570,"href":"https:\/\/www.irwebhost.com\/blog\/wp-json\/wp\/v2\/posts\/3528\/revisions\/3570"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.irwebhost.com\/blog\/wp-json\/wp\/v2\/media\/3547"}],"wp:attachment":[{"href":"https:\/\/www.irwebhost.com\/blog\/wp-json\/wp\/v2\/media?parent=3528"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.irwebhost.com\/blog\/wp-json\/wp\/v2\/categories?post=3528"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.irwebhost.com\/blog\/wp-json\/wp\/v2\/tags?post=3528"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}