CentOS 7安装GNOME桌面 和 配置 VNC 服务器

CentOS 7安装GNOME桌面 和 配置 VNC 服务器
这是一个关于怎样在你的 CentOS 7 上安装GNOME桌面 和 配置 VNC 服务器的教程。当然这个教程也适合 RHEL 7 安装GNOME桌面 和 配置 VNC 服务器。

1、安装桌面
yum check-update
yum groupinstall "X Window System" "GNOME Desktop" -y

2、设置默认启动图形界面
unlink /etc/systemd/system/default.target
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

3、安装 VNC 服务器
yum install tigervnc-server -y

然后,我们需要在 /etc/systemd/system/ 目录里创建一个配置文件。我们可以将 /lib/systemd/sytem/vncserver@.service 拷贝一份配置文件范例过来。

cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

4、配置VNC服务器
vi /etc/systemd/system/vncserver@:1.service
然后打开这个配置文件/etc/systemd/system/vncserver@:1.service替换掉默认用户名
找到这一行
ExecStart=/sbin/runuser -l -c "/usr/bin/vncserver %i"
PIDFile=/home//.vnc/%H%i.pid
这里我直接用root 用户登录,所以我替换成
ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid

5、重加载 systemd
# systemctl daemon-reload

6、VNC设密码
# vncpasswd

7、配置防火墙iptables或者firewalld
vim /etc/sysconfig/iptables
在合适位置加上
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5900:5903 -j ACCEPT
重启iptable
service iptables restart

如果是用Centos 7 默认防火墙的可能需要
# firewall-cmd --permanent --add-service vnc-server
# systemctl restart firewalld.service

8、设默认启动并开启VNC
# systemctl enable vncserver@:1.service
# systemctl start vncserver@:1.service

9、重新启动服务器
reboot

CentOS6和7 更换内核,一键安装锐速[lotServer]

CentOS6
rpm -ivh http://file.asuhu.com/kernel/kernel-firmware-2.6.32-504.3.3.el6.noarch.rpm
rpm -ivh http://file.asuhu.com/kernel/kernel-2.6.32-504.3.3.el6.x86_64.rpm --force

cat /boot/grub/grub.conf | awk '$1=="title" {print i++ " : " $NF}'
0 : (2.6.32-504.3.3.el6.x86_64)
1 : (2.6.32-642.13.1.el6.x86_64)

cat /boot/grub/grub.conf | awk '$1=="title" {print i++ " : " $NF}'|grep '2.6.32-504'|awk '{print $1}'
修改/boot/grub/grub.conf default=0
reboot

CentOS7
rpm -ivh http://file.asuhu.com/kernel/kernel-3.10.0-229.1.2.el7.x86_64.rpm --force

查看内核
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux 7 Rescue 1f0eb10f866e4eeea5ec2c016d383869 (3.10.0-229.1.2.el7.x86_64)
1 : CentOS Linux (3.10.0-229.1.2.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-98f15324ee1542fdaf9b60c933ff0e2c) 7 (Core)

设置启动的内核
grub2-set-default `awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg | grep '(3.10.0-229.1.2.el7.x86_64) 7 (Core)'|awk '{print $1}'`
grub2-editenv list #查看确认
reboot 重启

一键安装锐速[lotServer]

wget --no-check-certificate -O appex.sh https://raw.githubusercontent.com/0oVicero0/serverSpeeser_Install/master/appex.sh && chmod +x appex.sh && bash appex.sh install

检测是否启用
lsmod |grep appex

在 Ubuntu Debian Fedora 上安装 Wine 2.0

在 Ubuntu Debian Fedora 上安装 Wine 2.0
Wine 2.0 修改和改善了大量的 Direct3D 10/11 的功能,包括更多的着色指令、 sRGB 读写支持、矩阵纹理等等,此外还调整了 DirectX 支持。在音频方面,有 GStreamer 1.0 支持、DirectSound 下混为立体声等。
Wine不是像虚拟机或者模拟器一样模仿内部的Windows逻辑,而是將Windows API调用翻译成为动态的POSIX调用,免除了性能和其他一些行为的内存占用。

Ubuntu 16.04 16.10 15.04 15.10 14.04 14.10
If your system is 64 bit, enable 32 bit architecture (if you haven't already):
sudo dpkg --add-architecture i386

Add the repository:
sudo add-apt-repository ppa:wine/wine-builds

Update packages:
sudo apt-get update

Then install one of the following packages:

Development branch
sudo apt-get install --install-recommends winehq-devel

Staging branch
sudo apt-get install --install-recommends winehq-staging
wine --version
wine-2.0

Debian 8.0 Jessie
Debian 7.0 Wheezy
https://wiki.winehq.org/Debian
First, enable 32 bit packages:
sudo dpkg --add-architecture i386

Then install key which was used to sign packages:
wget https://dl.winehq.org/wine-builds/Release.key

sudo apt-get install apt-transport-https

sudo apt-key add Release.key
vi /etc/apt/sources.list

deb https://dl.winehq.org/wine-builds/debian/ jessie main
或者
deb https://dl.winehq.org/wine-builds/debian/ wheezy main
或者
deb http://ftp.de.debian.org/debian/ oldstable main

Update packages:
sudo apt-get update

Then install one of the following packages:

Development branch
sudo apt-get install --install-recommends winehq-devel

Staging branch
sudo apt-get install --install-recommends winehq-staging

https://wiki.winehq.org/Fedora

安装 node.js使用Google WebFont Downloader 解决谷歌字体无法访问

node-js
使用Google WebFont Downloader 解决谷歌字体无法访问

1、安装 Google WebFont Downloader 工具
CentOS 6 安装 node.js

NodeJS 7.x

NOTE: If you are using RHEL 6 or CentOS 6, you might want to read about running Node.js >= 4.x on older distros.
curl -sL https://rpm.nodesource.com/setup_7.x | bash -

NodeJS 6.x

NOTE: If you are using RHEL 6 or CentOS 6, you might want to read about running Node.js >= 4.x on older distros.
curl -sL https://rpm.nodesource.com/setup_6.x | bash -

其他版本https://github.com/nodesource/distributions

yum install nodejs -y
npm install -g goog-webfont-dl

2、下载字体

例如 "http://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,900"

goog-webfont-dl -a -f 'Source Sans Pro' -y '300,400,600,900'

这样字体就已经下载完成了,不仅生成了一个 Source Sans Pro 的目录,所有字体文件都在里面(包括 ttf eot woff woff2 svg),而且还在外面生成了一个 Source Sans Pro.css 文件。
不过 CSS 中的路径需要根据自己的需要修改一下。

3、使用字体
将字体文件复制到自己想要的目录,然后修改一下 CSS 文件,将字体路径设置正确,就可以使用本地的字体。

向Windows Server 2016系统添加virtio驱动教程

向Windows Server 2016系统添加virtio驱动,集成virtio驱动的Windows Server 2016的ISO镜像,在Vultr测试通过。
dism
向Windows Server 2016添加VirtIO驱动教程 集成virtio驱动的Windows Server 2016
步骤
1、安装软碟通(UltraISO)和Haozip, Haozip附带的虚拟光驱也要装上
2、安装ADK部署工具 https://developer.microsoft.com/en-us/windows/hardware/windows-assessment-deployment-kit
3、加载系统镜像cn_windows_server_2016_x64_dvd_9327743.iso到虚拟光驱
4、将boot.wim和install.wim发送到C盘
5、在C盘创建文件夹mount
将驱动解压到C盘virtio

6、以管理员权限运行”Windows PowerShell”或”Command”进入WAIK目录使用DISM (部署映像服务和管理)
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools
wim文件包含的版本个数
dism /get-wiminfo /wimfile:C:/boot.wim 2
dism /get-wiminfo /wimfile:C:/install.wim 4

PS C:\Program Files\Windows AIK\Tools\PETools> dism /get-wiminfo /wimfile:C:/install.wim
索引: 1
名称: Windows Server 2016 Standard
描述: 此选项(推荐使用)仅安装运行大多数服务器角色和应用程序所需的内容,从而减少了
管理和维护工作量。它不包括 GUI,但你可以使用 Windows PowerShell 或其他工具通过本
地或远程方式完全管理服务器。有关更多详细信息,请参阅“Windows Server 安装选项”

大小: 9,615,846,310 个字节

索引: 2
名称: Windows Server 2016 Standard (桌面体验)
描述: 当需要 GUI 时,此选项很有用(例如,为无法在服务器核心安装上运行的应用程序提
供向后兼容性)。支持所有服务器角色和功能。有关更多详细信息,请参阅“Windows Serve
r 安装选项”。
大小: 15,599,232,154 个字节

索引: 3
名称: Windows Server 2016 Datacenter
描述: 此选项(推荐使用)仅安装运行大多数服务器角色和应用程序所需的内容,从而减少了
管理和维护工作量。它不包括 GUI,但你可以使用 Windows PowerShell 或其他工具通过本
地或远程方式完全管理服务器。有关更多详细信息,请参阅“Windows Server 安装选项”

大小: 9,617,008,508 个字节

索引: 4
名称: Windows Server 2016 Datacenter (桌面体验)
描述: 当需要 GUI 时,此选项很有用(例如,为无法在服务器核心安装上运行的应用程序提
供向后兼容性)。支持所有服务器角色和功能。有关更多详细信息,请参阅“Windows Serve
r 安装选项”。
大小: 15,595,966,258 个字节

7、6、添加virtio驱动到install.wim,
dism /mount-wim /wimfile:C:/install.wim /index:1 /mountdir:C:/mount 挂载install.wim映像第一个索引
添加驱动
dism /image:C:\mount /add-driver /driver:C:\virtio\viostor\2k16\amd64\viostor.inf
dism /image:C:\mount /add-driver /driver:C:\virtio\NetKVM\2k16\amd64\netkvm.inf
dism /image:C:\mount /add-driver /driver:C:\virtio\viorng\2k16\amd64\viorng.inf
dism /image:C:\mount /add-driver /driver:C:\virtio\Balloon\2k16\amd64\balloon.inf
dism /image:C:\mount /add-driver /driver:C:\virtio\vioscsi\2k16\amd64\vioscsi.inf
dism /image:C:\mount /add-driver /driver:C:\virtio\vioserial\2k16\amd64\vioser.inf

添加virtio驱动后查看一下安装信息,查看是否添加到映像里面。如果驱动没经过微软认证的话,记得在添加驱动那一步结尾加上”/forceunsigned”参数
dism /image:C:\mount /get-drivers

dism /unmount-wim /mountdir:C:/mount /commit 卸载映像

第二个索引
dism /mount-wim /wimfile:C:/install.wim /index:2 /mountdir:C:/mount 挂载install.wim映像第二个索引
....
....
第三个索引
dism /mount-wim /wimfile:C:/install.wim /index:3 /mountdir:C:/mount 挂载install.wim映像第三个索引
....
....
第四个索引
dism /mount-wim /wimfile:C:/install.wim /index:4 /mountdir:C:/mount 挂载install.wim映像第四个索引
....
....
7、添加virtio驱动到boot.wim
dism /get-wiminfo /wimfile:C:/boot.wim
部署映像服务和管理工具
版本: 10.0.14393.0

映像的详细信息: C:/boot.wim

索引: 1
名称: Microsoft Windows PE (x64)
描述: Microsoft Windows PE (x64)
大小: 1,745,492,664 个字节

索引: 2
名称: Microsoft Windows Setup (x64)
描述: Microsoft Windows Setup (x64)
大小: 1,863,239,432 个字节

dism /mount-wim /wimfile:C:/boot.wim /index:1 /mountdir:C:/mount
dism /image:C:\mount /add-driver /driver:C:\virtio\viostor\2k16\amd64\viostor.inf
dism /image:C:\mount /add-driver /driver:C:\virtio\NetKVM\2k16\amd64\netkvm.inf
dism /image:C:\mount /add-driver /driver:C:\virtio\viorng\2k16\amd64\viorng.inf
dism /image:C:\mount /add-driver /driver:C:\virtio\Balloon\2k16\amd64\balloon.inf
dism /image:C:\mount /add-driver /driver:C:\virtio\vioscsi\2k16\amd64\vioscsi.inf
dism /image:C:\mount /add-driver /driver:C:\virtio\vioserial\2k16\amd64\vioser.inf
dism /image:C:\mount /get-drivers
dism /unmount-wim /mountdir:C:/mount /commit

dism /mount-wim /wimfile:C:/boot.wim /index:2 /mountdir:C:/mount
...
...
添加virtio驱动脚本

@echo off
set bootvar=0
set /p bootwimpath=请输入wim文件完整路径例如(D:\boot.wim):
set /p installlwimpath=请输入wim文件完整路径例如(D:\install.wim):
set /p temppath=请输入临时目录完整路径确保文件夹为空(例如:D:\temp):
set /p driverpath=请输入要加入的驱动路径(例如:D:\win2008r2):
dism /get-wiminfo /wimfile:%bootwimpath%
set /p bootcount=请输入当前boot.wim文件所包含的版本个数:
dism /get-wiminfo /wimfile:%installlwimpath%
set /p installcount=请输入当前install.wim文件所包含的版本个数:
rem ************循环开始了
:bootcontinue
set /a bootvar+=1
echo boot.wim第%bootvar%次循环 >>dism.log
echo ====================================================================================== >>dism.log
echo 为boot.wim加载驱动 >> dism.log
dism /mount-wim /wimfile:%bootwimpath% /index:%bootvar% /mountdir:%temppath% >>dism.log
dism /image:%temppath% /add-driver /driver:%driverpath% /recurse /forceunsigned >>dism.log
dism /unmount-wim /mountdir:%temppath% /commit >>dism.log
echo 等待5s准备导入下一版本,如需取消请立即按Ctrl+C >>dism.log
rem 等待10秒 ping本机10次不使用默认的次数,nul是不显示ping信息:
@ping -n 5 127.1>nul
if %bootvar% lss %bootcount% goto bootcontinue
rem ************循环结束了
echo boot.wim循环执行完毕 >>dism.log

set varinstall=0
rem ************循环开始了
:installcontinue
set /a varinstall+=1
echo install.wim第%varinstall%次循环 >>dism.log
echo ====================================================================================== >>dism.log
dism /mount-wim /wimfile:%installlwimpath% /index:%varinstall% /mountdir:%temppath% >>dism.log
dism /image:%temppath% /add-driver /driver:%driverpath% /recurse /forceunsigned >>dism.log
dism /unmount-wim /mountdir:%temppath% /commit >>dism.log
echo 等待5s准备导入下一版本,如需取消请立即按Ctrl+C >>dism.log
rem 等待10秒 ping本机10次不使用默认的次数,nul是不显示ping信息:
@ping -n 5 127.1>nul
if %varinstall% lss %installcount% goto installcontinue
rem ************循环结束了
echo install.wim循环执行完毕 >>dism.log
pause
在D:根目录创建一个test.bat文件,将上面脚本拷入文件中,执行脚本,输入所需路径参数 ,boot.wim版本数为2

8、封装处理
使用UltraISO, 打开cn_windows_server_2016_x64_dvd_9327743.iso将镜像里的boot.wim和install.wim删除(路径:/sources),
再将刚开始从镜像里提取到c盘的boot.wim和install.wim添加进去,然后保存即可。

Haozip http://haozip.com/
Windows 10 (Windows Server 2016) ADK https://developer.microsoft.com/en-us/windows/hardware/windows-assessment-deployment-kit
virtio驱动下载地址 https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
virtio驱动相关说明 http://pve.proxmox.com/wiki/Windows_VirtIO_Drivers
DISM – 部署映像服务和管理 (DISM) 技术参考 http://technet.microsoft.com/zh-cn/library/hh824821.aspx

集成virtio驱动的Windows Server 2016的ISO镜像 http://arv.asuhu.com/cn_windows_server_2016_x64_dvd_9327743_virtio_20161122.iso
集成virtio驱动的Windows 10 的ISO镜像 http://arv.asuhu.com/cn_windows_10_multiple_editions_version_1607_updated_jul_2016_x64_dvd_9056935_virtio_20161122.iso

CentOS6安装devtoolset(使用高版本gcc)GCC 4.8 GCC 4.9 GCC 5.2

CentOS6安装devtoolset(使用高版本gcc)GCC 4.8 GCC 4.9 GCC 5.2
Aria2要求gcc 4.8以上的版本才能编译,然而CentOS6源里的gcc版本才4.4

gcc_logo

GCC 4.8

wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo

yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++ -y

临时编译前使用
export CC=/opt/rh/devtoolset-2/root/usr/bin/gcc
export CPP=/opt/rh/devtoolset-2/root/usr/bin/cpp
export CXX=/opt/rh/devtoolset-2/root/usr/bin/c++

以下为替换系统GCC,不建议这样操作
ln -s /opt/rh/devtoolset-2/root/usr/bin/* /usr/local/bin/
hash -r
gcc --version


GCC 4.9
wget https://copr.fedoraproject.org/coprs/rhscl/devtoolset-3/repo/epel-6/rhscl-devtoolset-3-epel-6.repo -O /etc/yum.repos.d/devtools-3.repo
yum install devtoolset-3-gcc devtoolset-3-binutils devtoolset-3-gcc-c++ -y

临时编译前使用
export CC=/opt/rh/devtoolset-3/root/usr/bin/gcc
export CPP=/opt/rh/devtoolset-3/root/usr/bin/cpp
export CXX=/opt/rh/devtoolset-3/root/usr/bin/c++


GCC 5.2
wget https://copr.fedoraproject.org/coprs/hhorak/devtoolset-4-rebuild-bootstrap/repo/epel-6/hhorak-devtoolset-4-rebuild-bootstrap-epel-6.repo -O /etc/yum.repos.d/devtools-4.repo
yum install devtoolset-4-gcc devtoolset-4-binutils devtoolset-4-gcc-c++ -y

临时编译前使用
export CC=/opt/rh/devtoolset-4/root/usr/bin/gcc
export CPP=/opt/rh/devtoolset-4/root/usr/bin/cpp
export CXX=/opt/rh/devtoolset-4/root/usr/bin/c++

CentOS 6.x升级系统和PHP的curl,利用curl和cron自动重启https网站的php-fpm

CentOS 6.x升级系统和PHP的curl,利用curl和cron自动重启https网站的php-fpm
curl -I https://www.zhangfangzhou.cn/
curl: (35) SSL connect error #需要升级curl

wget https://curl.haxx.se/download/curl-7.50.0.tar.gz
tar -zxvf curl-7.50.0.tar.gz
cd curl-7.50.0
./configure --prefix=/usr/local/curl
make
make install
cp /usr/local/curl/bin/curl /usr/bin/curl #在源码的文件夹里面也有/root/curl-7.50.0/src/curl

curl --version
curl 7.50.0 (x86_64-pc-linux-gnu) libcurl/7.19.7 NSS/3.21 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2

php源码编译
--with-curl=/usr/local/curl/

502 Bad Gateway 自动重启脚本
#!/bin/bash
website="https://www.zhangfangzhou.cn/ https://www.zhangfangzhou.com"
if
/usr/bin/curl -I $website|grep "HTTP/1.1 502"
then
/bin/date -R >>/root/502.log
/etc/rc.d/init.d/nginx restart
fi

给予可执行权限:
chmod +x /root/502.sh

通过 crontab 设置周期运行:
crontab -u root -e
* * * * * /root/502.sh >/dev/null 2>&1

CentOS6 Nginx启用ngx_pagespeed加速站点访问

CentOS6 Nginx启用ngx_pagespeed加速站点访问
1、PageSpeed的功能特性

PageSpeed模块可以使用数量众多的重写"过滤器",每个过滤器都可以选择性地开启/关闭,从而自动进行各种优化(比如,减小文档大小、减少HTTP请求数据、减少HTTP往返次数以及缩短DNS解析时间)。

下面是ngx_pagespeed支持的其中一些过滤器。想了解支持的全部过滤器,请参阅官方文档。

Collapse Whitespace(压缩空白):通过把HTML网页中的多处连续空白换成一处空白,减少带宽使用量。
Canonicalize JavaScript Libraries(规范化转换JavaScript库):通过自动把流行的JavaScript库换成免费托管的JavaScript库(比如由谷歌托管),减少带宽使用量。
Combine CSS(合并CSS):通过把多个CSS文件合并成一个CSS文件,减少HTTP请求数量。
Combine JavaScript(合并JavaScript):通过把多个JavaScript文件合并成一个JavaScript文件,减少HTTP请求数量。
Elide Attributes(省略属性):通过删除由默认属性指定的标签,缩小文档大小。
Extend Cache(扩展缓存):通过优化网页资源的可缓存性,减少带宽使用量。
Flatten CSS Imports(精简CSS导入):通过删除CSS文件中的@import,减少HTTP请求往返次数。
Lazyload Images(延时加载图片):延时加载在客户端浏览器上看不见的图片。
Minify JavaScript(缩小JavaScript):通过缩小JavaScript,减少带宽使用量。
Optimize Images(优化图片):通过引入更多的内嵌图片、压缩图片,或者将GIF图片转换成PNG图片,优化图片分发。
Pre-Resolve DNS(预解析DNS):通过预解析DNS,缩短DNS解析时间。
Prioritize Critical CSS(优化加载关键CSS规则):重写CSS文件,以便首先加载渲染页面的CSS规则。

2、下载解压PageSpeed模块
Scientific Linux 6 provides gcc-4.8 packages that work on CentOS 6.
sudo rpm --import https://linux.web.cern.ch/linux/scientific6/docs/repository/cern/slc6X/i386/RPM-GPG-KEY-cern
sudo wget -O /etc/yum.repos.d/slc6-devtoolset.repo https://linux.web.cern.ch/linux/scientific6/docs/repository/cern/devtoolset/slc6-devtoolset.repo
sudo yum install devtoolset-2-gcc-c++ devtoolset-2-binutils

cd /usr/local/src/
wget https://github.com/pagespeed/ngx_pagespeed/archive/release-1.11.33.3-beta.zip
unzip -q release-1.11.33.3-beta.zip
wget https://dl.google.com/dl/page-speed/psol/1.11.33.3.tar.gz
tar xzf 1.11.33.3.tar.gz -C ngx_pagespeed-release-1.11.33.3-beta #解压出来的psol文件夹到上面ngx_pagespeed-release-1.11.33.3-beta文件夹内

3、然后到nginx源码目录,添加以下代码重新编译nginx
./configure --prefix=/usr/local/nginx --user=www --group=www\
--add-module=/root/ngx_http_google_filter_module \
--add-module=/root/ngx_http_substitutions_filter_module \
--add-module=/root/ngx_pagespeed-release-1.11.33.3-beta \
--with-cc=/opt/rh/devtoolset-2/root/usr/bin/gcc \
--with-openssl=/root/openssl \
--with-pcre=/root/pcre \
--with-zlib=/root/zlib \
--with-http_stub_status_module \
--with-http_secure_link_module \
--with-http_v2_module \
--with-http_ssl_module \
--with-ipv6 \
--with-http_gzip_static_module \
--with-http_realip_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_sub_module \
--with-stream \
--with-stream_ssl_module
make //不需要安装 make install
/etc/init.d/nginx stop
cd objs/
cp nginx /usr/local/nginx/sbin/ //覆盖原文件
/etc/init.d/nginx start

4、配置Nginx中的ngx_pagespeed模块
PageSpeed过滤器,有两种不同的级别可供你选择:CoreFilters和PassThrough。除非有所指定,否则默认情况下使用CoreFilters。
使用CoreFilters

server {
# 侦听的端口
listen 80;
# 服务器名称
server_name www.zhangfangzhou.cn;
# 记下根目录
root /usr/local/nginx/html;
# 访问日志
access_log /var/log/nginx/access.log main;
# 启用ngx_pagespeed
pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;
# 启用CoreFilters
pagespeed RewriteLevel CoreFilters;
# 禁用CoreFilters中的某些过滤器
pagespeed DisableFilters rewrite_images;
# 选择性地启用额外的过滤器
pagespeed EnableFilters collapse_whitespace;
pagespeed EnableFilters lazyload_images;
pagespeed EnableFilters insert_dns_prefetch;
}

对高级用户而言:使用PassThrough

server {
# 侦听的端口
listen 80;
# 服务器名称
server_name www.zhangfangzhou.cn;
# 记下根目录
root /usr/local/nginx/html;
# 访问日志
access_log /var/log/nginx/access.log main;
# 启用ngx_pagespeed
pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;
# 禁用CoreFilters
pagespeed RewriteLevel PassThrough;
# 启用压缩空白过滤器
pagespeed EnableFilters collapse_whitespace;
# 启用JavaScript库卸载
pagespeed EnableFilters canonicalize_javascript_libraries;
# 把多个CSS文件合并成一个CSS文件
pagespeed EnableFilters combine_css;
# 把多个JavaScript文件合并成一个JavaScript文件
pagespeed EnableFilters combine_javascript;
# 删除带默认属性的标签
pagespeed EnableFilters elide_attributes;
# 改善资源的可缓存性
pagespeed EnableFilters extend_cache;
# 更换被导入文件的@import,精简CSS文件
pagespeed EnableFilters flatten_css_imports;
pagespeed CssFlattenMaxBytes 5120;
# 延时加载客户端看不见的图片
pagespeed EnableFilters lazyload_images;
# 启用JavaScript缩小机制
pagespeed EnableFilters rewrite_javascript;
# 启用图片优化机制
pagespeed EnableFilters rewrite_images;
# 预解析DNS查询
pagespeed EnableFilters insert_dns_prefetch;
# 重写CSS,首先加载渲染页面的CSS规则
pagespeed EnableFilters prioritize_critical_css;
}

5、建立缓存文件夹并赋予nginx用户权限

sudo mkdir /var/ngx_pagespeed_cache
sudo chown www:www /var/ngx_pagespeed_cache