امروز در این مقاله قصد داریم تا شما عزیزان و همراهان را با نحوه راه اندازی 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.
۶- حال می خواهیم 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 نیاز دارید.
امیدواریم از این مقاله بهره لازم را برده و برای شما مفید بوده باشد. نظرات خود را با ما به اشتراک بگذارید.
ما را در شتابان هاست دنبال کنید.