راه اندازی CDN سرور

راه اندازی CDN سرور

علی مرادی

امروز در این مقاله قصد داریم تا شما عزیزان و همراهان را با نحوه راه اندازی CDN سرور را در لینوکس آشنا کنیم. در ادامه با ما همراه باشید.

راه اندازی CDN سرور:

۱- ابتدا بسته های نرم افزاری سیستم را به آخرین نسخه به روز کنید.

yum -y update

۲- بعد ، سرور Nginx HTTP را از مخزن EPEL با استفاده از مدیر بسته YUM به شرح زیر نصب کنید.

yum install epel-release
yum install nginx

۳- پس از نصب سرور وب Nginx ، می توانید اولین بار آن را راه اندازی کنید و آن را فعال کنید تا به طور خودکار در بوت سیستم شروع شود.

systemctl start nginx
systemctl enable nginx

۴- به طور پیش فرض ، فایروال داخلی CentOS 7 قرار است ترافیک Nginx را مسدود کند. برای اجازه دادن به ترافیک وب در Nginx ، قوانین فایروال سیستم را به روز کنید تا بسته های ورودی به HTTP و HTTPS را با استفاده از دستورات زیر مجاز کنید.

firewall-cmd –zone=public –permanent –add-service=http
firewall-cmd –zone=public –permanent –add-service=https
firewall-cmd –reload

در غیر این صورت فایروال را برداشته و iptables را فلاش دهید تا تمام اتصالات را برای آزمایش باز کنید. (اصلاً این کار را روی سرور تولید نکنید)

yum remove firewalld && iptables -F

۵- حالا می توانید سرور Nginx را با مراجعه به URL زیر تأیید کنید ، یک صفحه پیش فرض nginx نشان داده می شود.

http://SERVER_DOMAIN_NAME_OR_IP (in this case my server ip are 192.168.0.100) so i type in the browser 192.168.0.100 and i will saw a test page of nginx like below.

فایلها و راهنمای مهم Nginx:

  • دایرکتوری روت پیش فرض سرور (دایرکتوری سطح بالا که حاوی پرونده های پیکربندی است): /etc/nginx.
  • پرونده اصلی پیکربندی Nginx:/etc/nginx/nginx.conf.
  • تنظیمات بلوک سرور (میزبان مجازی) را می توان در: /etc/nginx/conf.d اضافه کرد.
  • دایرکتوری روت اصلی پیش فرض (شامل پرونده های وب): / usr / share / nginx / html.

۶- حال می خواهیم Cache را برای محتوای استاتیک با nginx تنظیم کنیم.

cd /etc/nginx/conf.d/ #changes directory

vim cdn.conf #create a config file with below content.

upstream cdn {
server cdn.linuxscriptshub.com; #origin (this is the web server been create earlier)
}

proxy_cache_path /mnt/nginx/cdn levels=1:2 keys_zone=cdn_cache:10m max_size=10g
inactive=60m use_temp_path=off; 
#cache setting http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_path

server {
listen 80;
server_name www.linuxscriptshub.com;  #your domain name ie: www.linuxscriptshub.com
access_log /var/log/nginx/cdn.access.log; #your cdn access log
error_log /var/log/nginx/cdn.error.log; #your cdn error log


location ~* .(mp4|gif|jpg|png|html|htm|css|js|ico|swf|pdf)$ { 
#in root location, every file content these file format will be serve as a cache # this line must be include on cdn server and origin backend server.
proxy_redirect off;
#http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect (we dont need rewrite when proxy to upstream)
proxy_pass http://cdn;
#proxy_pass to the upstream that we set.
proxy_set_header Host $http_host;
#An unchanged “Host” request header field can be passed like this
expires 5m;
#cache will be expire in 5minutes
proxy_cache cdn_cache;
#proxy pass to the cache rules we setup on top of the config file
proxy_cache_revalidate on;
#cache will be revalidate with the origin server if it is expire
add_header Johnson-CDN-Cache $upstream_cache_status;
#with this header you can know the status of the content been cache or MISS. (can check via inspect element, network)
}

location / {
proxy_redirect off;
#http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect (we dont need rewrite when proxy to upstream)
set_real_ip_from 0.0.0.0/0;
real_ip_header X-Real-IP;
real_ip_recursive on;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy pass the origin client ip to the upstream server
proxy_pass http://cdn;
#proxy_pass to the upstream that we set.
proxy_set_header Host $http_host;
#An unchanged “Host” request header field can be passed like this
}

فایل را ذخیره و ترک کنید.

۸- ایجاد پوشه کش / mnt / nginx / cdn (حافظه پنهان)

mkdir /mnt/nginx/cdn
chown -R nginx.nginx /mnt/nginx/

جمع بندی: این تنها یک سرور cdn در یک نقطه از کشور است ، کاری که شما باید انجام دهید اینست که فقط دامنه خود را به سرور cdn بچسبانید و سرور cdn به صورت داخلی به سرور مبدا باطن منتهی شود.

اگر می خواهید کشور و سرورهای متفاوتی برای خدمت به مشتری خود داشته باشید ، به یک ماژول جغرافیایی تماس nginx نیاز دارید.

امیدواریم از این مقاله بهره لازم را برده و برای شما مفید بوده باشد. نظرات خود را با ما به اشتراک بگذارید.

ما را در شتابان هاست دنبال کنید.

برچسب ها: CDN CDN سرور راه اندازی CDN سرور