با استفاده از 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 "/var/cache/ngx_pagespeed/" pagespeed RewriteLevel OptimizeForBandwidth; location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" "" } location ~ "^/pagespeed_static/" { } location ~ "^/ngx_pagespeed_beacon$" { } }
و داخل index.html میتوانید عبارت زیر را قرار بدهید که هنگام load صفحه آن را به شما نمایش دهد
sudo echo "Thanks Axfon.com for Google PageSpeed Configuration" > /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 قرار دادید را نشان می دهد