Ubuntu 配置 Nginx http2.0 支持 (二) 编译&配置Nginx 与 pagespeed

编译&配置Nginx

  [Nginx][1] 是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。
因为本人是个懒人, 所以不会选择从源码编译,但是Ubuntu14.04的Nginx版本太低了, HTTP2.0需要Nginx1.9.x以上, 所以我们需要配置一下Nginx的安装源,才能顺利的完成安装任务,
既然从源码安装, 顺便再装个Google开发的一个Nginx神器, PageSpeed!
请参考https://developers.google.com/speed/pagespeed/module/build_ngx_pagespeed_from_source

干货

Bash
# 添加nginx仓库
sudo vi /etc/apt/sources.list.d/nginx.list
加入下面的内容:
#----------------
deb http://nginx.org/packages/ubuntu/ trusty nginx
deb-src http://nginx.org/packages/ubuntu/ trusty nginx
#----------------
保存退出

# 更新源
sudo apt-get update

# 注意:如果你看到信息:GPG error [...] NO_PUBKEY [...] 等等
#  请添加key:
#  sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEYNUMBER
#  然后再 sudo apt-get update
#------------------

# 安装Nginx和编译Ningx所需要的依赖库
# 为什么要先安装Nginx还要编译? 
# 因为使用apt-get安装可以使用sudo service nginx {stop|start...}来管理, 
# 可以省好多事情, 不然就要多费些手脚, 人懒...
sudo apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev nginx

# 干点常规的活儿
sudo mkdir -p /MISSU/pkg/nginx
sudo chmod -R 777 /MISSU/pkg
cd /MISSU/pkg/nginx

# 从仓库下载 nginx
sudo apt-get source nginx
sudo apt-get build-dep nginx
# 看下自己下载回来的版本是什么, 配置一下版本变量,后边要用.
#我下载的是: /MISSU/pkg/nginx/nginx-1.10.0
NGX_VERSION=1.10.0


# 下载 Pagespeed
mkdir -p /MISSU/pkg/nginx/ngx_pagespeed
cd /MISSU/pkg/nginx/ngx_pagespeed
NPS_VERSION=1.11.33.1  #这个版本尽量每次安装的时候去看下最新版本,因为这货一直beta
wget https://github.com/pagespeed/ngx_pagespeed/archive/release-${NPS_VERSION}-beta.zip
unzip release-${NPS_VERSION}-beta.zip
cd ngx_pagespeed-release-${NPS_VERSION}-beta/
wget https://dl.google.com/dl/page-speed/psol/${NPS_VERSION}.tar.gz
tar -xzvf ${NPS_VERSION}.tar.gz  # extracts to psol/

# 开始编译Nginx了
cd /MISSU/pkg/nginx/nginx-${NGX_VERSION}

# 配置过程缺什么就sudo apt-get install lib????-dev 即可
# 这个配置可以使用 sudo nginx -V 查看到apt-get安装的参数,本参数也是那里COPY的
# 然后再加上--add-module, 其实也可以安装更多的module,只要你喜欢就好.
./configure --prefix=/usr/share/nginx \
--conf-path=/etc/nginx/nginx.conf \
--http-log-path=/var/log/nginx/access.log \
--error-log-path=/var/log/nginx/error.log \
--lock-path=/var/lock/nginx.lock \
--pid-path=/run/nginx.pid \
--http-client-body-temp-path=/var/lib/nginx/body \
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
--http-proxy-temp-path=/var/lib/nginx/proxy \
--http-scgi-temp-path=/var/lib/nginx/scgi \
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi \
--with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module \
--with-http_stub_status_module --with-http_realip_module --with-http_addition_module \
--with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module \
--with-http_image_filter_module --with-http_v2_module --with-http_sub_module \
--with-http_xslt_module --with-mail --with-mail_ssl_module \
--add-module=/MISSU/pkg/nginx/ngx_pagespeed/ngx_pagespeed-release-${NPS_VERSION}-beta

make
sudo make install

#删除以前的链接
sudo rm /usr/sbin/nginx  

#建立一个新版本的链接
sudo ln -s /usr/share/nginx/sbin/nginx /usr/sbin/nginx   

#修改nginx的SSL的配置, 只需要把虚拟主机的配置文件中的listen加多一个 http2就OK了
#如下边这样:
server {
    listen       443 ssl http2;
    .......

# nginx对http2.0的支持配置就完了~~
# 配置 PageSpeed其实就容易了... 好多参数, 自己上官网查, 我顺便贴一下我的配置,
# 配置内容是放在http段里的, 不要乱放!
# sudo vi /etc/nginx/nginx.conf
......
http{
......
    ##
    # Pagespeed 
    #
    pagespeed On;
    pagespeed FileCachePath "/dev/shm/ngx_pagespeed/";
    pagespeed XHeaderValue "CACHED BY MISSU.LINK";
    pagespeed RewriteLevel PassThrough;
    pagespeed EnableFilters combine_css,extend_cache,rewrite_images;
    pagespeed EnableFilters rewrite_css,rewrite_javascript;
    pagespeed EnableFilters remove_comments,collapse_whitespace;
    pagespeed FetchWithGzip on;
    #pagespeed CustomFetchHeader Accept-Encoding gzip;

    ##
    # Gzip Settings
    ##
    gzip  on;
    gzip_vary on;
    gzip_types application/ecmascript;
    gzip_types application/javascript;
    gzip_types application/json;
    gzip_types application/pdf;
    gzip_types application/postscript;
    gzip_types application/x-javascript;
    gzip_types image/svg+xml;
    gzip_types text/css;
    gzip_types text/csv;
    # "gzip_types text/html" is assumed.
    gzip_types text/javascript;
    gzip_types text/plain;
    gzip_types text/xml;
    gzip_http_version 1.0;

......
}


###为使用VPS的补充一个虚拟内存不足的解决方法:###

# 1核1G的VPS真心不错, 现在国内把网盘都Kill了... 用这个当网盘其实还是不错的.
cd /
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024k
dd命令是专门用来从一个文件复制并格式成另一个文件.
这条命令的意思是从"/dev/zero"文件读出内容并存到/swapfile文件中,
块大小为1024Byte,总共 1024 K个块,也就是总共 1024M.
然后设置并开启交换文件:
sudo mkswap /swapfile
sudo swapon /swapfile
free #查看结果

来自:https://missu.link/archives/5.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值