Ubuntu 配置 Nginx http2.0 支持 (二) 编译&配置Nginx 与 pagespeed
2016-07-25 16:41
302 查看
编译&配置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
相关文章推荐
- TCP/IP详解
- iOS开发之网络编程--1、NSURLSession的基本使用
- https模式下记住git密码
- TCP/IP协议中backlog分析与设置以及TCP状态变化
- 使用netfilter实现输出报文的tcp option增加
- 【网络安全实战】通过路由器默认密码登陆电信网上营业厅
- TCP负载均衡方案
- 基于AFN 3.0 封装(包括图片与视频的表单上传)
- TCP粘包处理
- HTTP请求——ETag
- 脚本,网络配置,指令
- AFNetworkReachabilityManager检测网络状态
- 7.25牛客网总结
- webservice-客户端调用cxf https服务端
- 网络性能测试工具Iperf/Jperf解读
- 简析TCP的三次握手与四次分手
- AFNetworking 3.x 简单使用
- 【shell】scp网络详解
- iOS-不用网线搭建IPv6网络测试环境
- kernel: INFO: task httpd:31276 blocked for more than 120 sec