alma pourhosseni
alma pourhosseni
خواندن ۱ دقیقه·۴ سال پیش

Pagespeed on ubuntu


با استفاده از pagespeed می توان سرعت load صفحات وب را افزایش داد.

ابتدا باید وب سرور nginx را روی ubuntu نصب کنید.

sudo apt update && sudo apt install nginx

و بعد وضعیت nginx را چک کنید که در حالت active باشد.

sudo systemctl status nginx

حالا google pagespeed و ماژول های مورد نیاز را نصب کنید.

sudo apt install libssl-dev bash <(curl -f -L -sS https://ngxpagespeed.com/install) \ --nginx-version latest

برای نصب ماژول ها دستور زیر را بزنید

--prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/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-http_ssl_module --with-http_v2_module

و سپس برای build nginx و configuration سوال میپرسه که می تونید y بزنید

مرحله بعد Configure Systemd for NGINX Control

sudo nano /lib/systemd/system/nginx.service

و دستورات زیر را به جای دستورات موجود قرار دهید

[Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/run/nginx.pid ExecStartPre=/usr/sbin/nginx -t ExecStart=/usr/sbin/nginx ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target

مرحله بعد ایجاد دایرکتوری cache و ایجاد دسترسی

mkdir -p /var/cache/nginx/client_temp mkdir /var/cache/ngx_pagespeed/ chown nginx:nginx /var/cache/ngx_pagespeed/

در متغیر (whoami)$ اطلاعات کاربری که در حال حاضر وارد شدید رادر خود ذخیره می کند

sudo chown -R $(whoami):$(whoami) /var/www/html/

سپس دسترسی بهdirectory را ایجاد کنید

sudo chmod -R 755 /var/www

مرحله بعد باید server block را در config مربوط به default تغییر بدهید

sudo nano /etc/nginx/sites-available/default

و دستورات زیر با تغییر نام دامنه به نام دامنه خود قرار دهید

server { listen 80 default_server; listen [::]:80 default_server; # include snippets/snakeoil.conf; root /var/www/html; # Add index.php to the list if you are using PHP index index.html index.htm index.nginx-debian.html; server_name your-domain-name; access_log logs/your-domain-name.access.log; error_log logs/your-domain-name.error error; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; } pagespeed on; pagespeed FileCachePath &quot/var/cache/ngx_pagespeed/&quot pagespeed RewriteLevel OptimizeForBandwidth; location ~ &quot\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+&quot { add_header &quot&quot &quot&quot } location ~ &quot^/pagespeed_static/&quot { } location ~ &quot^/ngx_pagespeed_beacon$&quot { } }

و داخل index.html میتوانید عبارت زیر را قرار بدهید که هنگام load صفحه آن را به شما نمایش دهد

sudo echo &quotThanks Axfon.com for Google PageSpeed Configuration&quot > /var/www/html/index.html

و در نهایت درستی nginx را تست کنید

nginx -t

امکان دارد با خطایی مواجه شوید مانند:

nginx: [emerg] dlopen() "/etc/nginx/modules/ngx_http_geoip_module.so" failed (/etc/nginx/modules/ngx_http_geoip_module.so: cannot open shared object file: No such file or directory) in /etc/nginx/modules-enabled/50-mod-http geoip.conf:1

که باید در مسیر زیر عبارت include مشخص شده را کامنت کنید.

sudo nano /etc/nginx/nginx.conf


user www-data; worker_processes auto; pid /run/nginx.pid; #include /etc/nginx/modules-enabled/*.conf; events { worker_connections 768; # multi_accept on; }

سپس nginx را restart می کنیم.

sudo service nginx restart

و در نهایت با دستور زیر نتیجه را تست می کنیم که در صورت درست بودن عبارت X-Page-Speed را مشاهده می کنید

curl -I -X GET your-domain-name

و اگر نام domain خود را در مرورگر خود تایپ کنید عبارتی که در index.html قرار دادید را نشان می دهد

شاید از این پست‌ها خوشتان بیاید