首先安装全家桶

apt install -y build-essential zlib1g-dev libpcre3 libpcre3-dev unzip cmake libncurses5-dev libpam0g-dev bison libboost-dev libssl-dev openssl g++ libxml2-dev libcurl3-openssl-dev libpng-dev libfreetype6-dev libfreetype6-dev

这个包有时候会安装失败

apt install -y  libpng12-dev

添加账户:

groupadd www
useradd -s/sbin/nologin -M -g www www

下载安装包:

curl https://github.com/h2o/h2o/archive/v2.2.2.tar.gz -o v2.2.2.tar.gz

解压:

tar zxf v2.2.2.tar.gz

配置安装目录:

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/h2o -DWITH_BUNDLED_SSL=on

编译安装:

make -j8

make install

配置文件:

vim /home/etc/h2o.cf

 access-log: /tmp/h2o.log
error-log: /tmp/h2o.err
pid-file: /tmp/h2o.pid
max-connections: 512
file.send-gzip: ON
tcp-fastopen: 3
user: www
file.index: [ 'index.php', 'index.html' ]
file.mime.addtypes:
text/html: .html .htm .shtml
text/css: .css
text/xml: .xml
image/gif: .gif
image/jpeg: .jpeg .jpg
application/javascript: .js
application/atom+xml: .atom
application/rss+xml: .rss text/mathml: .mml
text/plain: .txt
text/vnd.sun.j2me.app-descriptor: .jad
text/vnd.wap.wml: .wml
text/x-component: .htc image/png: .png
image/tiff: .tif .tiff
image/vnd.wap.wbmp: .wbmp
image/x-icon: .ico
image/x-jng: .jng
image/x-ms-bmp: .bmp
image/svg+xml: .svg .svgz
image/webp: .webp application/font-woff: .woff
application/java-archive: .jar .war .ear
application/json: .json
application/mac-binhex40: .hqx
application/msword: .doc
application/pdf: .pdf
application/postscript: .ps .eps .ai
application/rtf: .rtf
application/vnd.apple.mpegurl: .m3u8
application/vnd.ms-excel: .xls
application/vnd.ms-fontobject: .eot
application/vnd.ms-powerpoint: .ppt
application/vnd.wap.wmlc: .wmlc
application/vnd.google-earth.kml+xml: .kml
application/vnd.google-earth.kmz: .kmz
application/x-7z-compressed: .7z
application/x-cocoa: .cco
application/x-java-archive-diff: .jardiff
application/x-java-jnlp-file: .jnlp
application/x-makeself: .run
application/x-perl: .pl .pm
application/x-pilot: .prc .pdb
application/x-rar-compressed: .rar
application/x-redhat-package-manager: .rpm
application/x-sea: .sea
application/x-shockwave-flash: .swf
application/x-stuffit: .sit
application/x-tcl: .tcl .tk
application/x-x509-ca-cert: .der .pem .crt
application/x-xpinstall: .xpi
application/xhtml+xml: .xhtml
application/xspf+xml: .xspf
application/zip: .zip application/octet-stream: .bin .exe .dll
application/octet-stream: .deb
application/octet-stream: .dmg
application/octet-stream: .iso .img
application/octet-stream: .msi .msp .msm application/vnd.openxmlformats-officedocument.wordprocessingml.document: .docx
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet: .xlsx
application/vnd.openxmlformats-officedocument.presentationml.presentation: .pptx audio/midi: .mid .midi .kar
audio/mpeg: .mp3
audio/ogg: .ogg
audio/x-m4a: .m4a
audio/x-realaudio: .ra video/3gpp: .3gpp .3gp
video/mp2t: .ts
video/mp4: .mp4
video/mpeg: .mpeg .mpg
video/quicktime: .mov
video/webm: .webm
video/x-flv: .flv
video/x-m4v: .m4v
video/x-mng: .mng
video/x-ms-asf: .asx .asf
video/x-ms-wmv: .wmv
video/x-msvideo: .avi hosts:
"域名:端口":
#header.add: "strict-transport-security: max-age=39420000; includesubdomains; preload"
header.add: "X-Frame-Options: SAMEORIGIN"
header.add: "X-Content-Type-Options: nosniff"
header.add: "X-XSS-Protection: 1; mode=block"
listen:
port: 端口
#ssl:
#certificate-file: /home/wwwroot/ssl/miraisann.com.crt
#key-file: /home/wwwroot/ssl/miraisann.com.key
#dh-file: /home/wwwroot/ssl/dhparam4096.pem
#minimum-version: TLSv1.1
#cipher-preference: server
#cipher-suite: CHACHA20 EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4
paths:
/:
file.dir: /home/wwwroot/domain/xx.com
redirect:
url: /index.php/
internal: YES
status: 307
file.custom-handler:
extension: .php
fastcgi.connect:
port: /tmp/php-fpm.sock
type: unix

 配置服务:

vim /usr/lib/systemd/system/h2o.service

 [Unit]
Description=h2o optimized HTTP server
After=network.target remote-fs.target nss-lookup.target [Service]
PIDFile=/tmp/h2o.pid
ExecStart=/usr/local/bin/h2o/bin/h2o -c /home/etc/h2o.cf &
ExecReload=/usr/bin/kill -HUP $MAINPID
LimitNOFILE=infinity [Install]
WantedBy=multi-user.target

systemctl enable h2o
systemctl start h2o
systemctl status h2o

关于服务配置的细节:

http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html

源码安装H2O Http 服务端程序到Ubuntu服务器的更多相关文章

  1. 高级运维(六):源码安装Redis缓存服务、常用Redis数据库操作指令、配置Redis主从服务器

    一.源码安装Redis缓存服务 目标: 本案例要求先快速搭建好一台Redis服务器,并测试该缓存服务器: 1> 设置变量test,值为123 2> 查看变量test的值 3> 设置计 ...

  2. Android应用源码图书馆管理系统带服务端数据库

    本项目是一套基于安卓的图书馆管理系统,包括jsp服务端源码,安卓客户端源码和mysql数据库.代码比较简单,供学习anroid与j2ee交互.例如Sqlite的使用.安卓客户端与jsp的web服务端的 ...

  3. linux源码安装mysql,shell编程学习,ubuntu

    一.mysql安装 以源码安装的方式编译和安装Mysql 5.6. 1.卸载旧版本 rpm -qa | grep mysql 检查是否有旧版本 查询结果:mysql-libs-5.1.73-7.el6 ...

  4. 跟着大彬读源码 - Redis 1 - 启动服务,程序都干了什么?

    一直很羡慕那些能读 Redis 源码的童鞋,也一直想自己解读一遍,但迫于 C 大魔王的压力,解读日期遥遥无期. 相信很多小伙伴应该也都对或曾对源码感兴趣,但一来觉得自己不会 C 语言,二来也不知从何入 ...

  5. Fresco 源码分析(三) Fresco服务端处理(1) ImagePipeline为何物

    4.3 服务端的处理 备注: 因为是分析,而不是设计,所以很多知识我们类似于插叙的方式叙述,就是用到了哪个知识点,我们再提及相关的知识点,如果分析到了最后,我想想是不是应该将这个架构按照设计的方式,重 ...

  6. Netty 源码(一)服务端启动

    Netty 源码(一)服务端启动 Netty 系列目录(https://www.cnblogs.com/binarylei/p/10117436.html) ServerBootstap 创建时序图如 ...

  7. xxl-job源码阅读二(服务端)

    1.源码入口 xxl-job-admin是一个简单的springboot工程,简单翻看源码,可以很快发现XxlJobAdminConfig入口. @Override public void after ...

  8. Fresco 源码分析(三) Fresco服务端处理(3) DataSource到Producer的适配器逻辑以及BitmapMemoryCacheProducer处理的逻辑

    4.3.1.2.1 Producer和DataSource之间适配器处理的逻辑 还是从程序的入口开始说吧 CloseableProducerToDataSourceAdapter.create() 源 ...

  9. (二)Netty源码学习笔记之服务端启动

    尊重原创,转载注明出处,原文地址:http://www.cnblogs.com/cishengchongyan/p/6129971.html  本文将不会对netty中每个点分类讲解,而是一个服务端启 ...

随机推荐

  1. 使用Visual Studio 2017开发python,并在iis上部署Python Django

    作为宇宙第一IDE,怎么可以不支持python开发呢? 1.Visual Studio Installer 扩展Python开发 开始菜单中打开Visual Studio Installer,点修改. ...

  2. vue调试工具vue-devtools安装及使用

    本文主要介绍 vue的调试工具 vue-devtools 的安装和使用 工欲善其事, 必先利其器, 快快一起来用vue-devtools来调试开发你的vue项目吧 安装:  1.到github下载: ...

  3. 谨慎使用递增/递减运算符(C++)

    递增++和递减运算符--不论看起来还是用起来,都感觉是十分简单而又优雅的,然而其中却藏有无法受控制的陷阱,我们必须小心的避免错误的用法而出现的不可控的情况发生. 比方说:x = 2* x++ *(3 ...

  4. php 开发调试的常用技巧和工具​

      nginx的access.log 作用: 记录一个页面请求中,服务器接收到的所用相关的url. 根据此log, 对服务器上调用了哪些服务,可以一目了然,快速理清业务关系,调试开发非常赞! 注意: ...

  5. vue-cli脚手架npm相关文件解读(1)webpack.base.conf.js

    系列文章传送门: 1.build/webpack.base.conf.js 2.build/webpack.prod.conf.js 3.build/webpack.dev.conf.js 4.bui ...

  6. Oracle异常汇总

    持续更新中,可参见https://hnuhell.gitbooks.io/oracle_errmg/content/或https://hnuhell.github.io/Oracle_ERRMG/上的 ...

  7. 线性代数-矩阵-转置 C和C++的实现

    原理解析: 本节介绍矩阵的转置.矩阵的转置即将矩阵的行和列元素调换,即原来第二行第一列(用C21表示,后同)与第一行第二列(C12)元素调换位置,原来c31与C13调换.即cij与cji调换 . (此 ...

  8. Django 创建admin账户

    Django版本 1.11.4 安装参考:http://blog.csdn.net/a_little_snail/article/details/76933868 问题:创建admin账户密码 解决: ...

  9. Laravel学习基础篇之--路由

    终于还是决定再多学一门重量级框架,当然首选必备还是被称为最优雅的Web开发框架--Laravel 对于框架的入门,首先了解它的路由规则是先前必备的,以下是laravel 中几种常见的基础路由规则 // ...

  10. 富文本编辑器UEditor的配置使用方法

    将下载的富文本编辑器的文件解压后放到 webcontent 下 如果 文件中的jsp文件夹下的controller.java文件报错的话    就将jsp下的lib文件夹中的文件都复制到  web-i ...