• 源码安装H2O Http 服务端程序到Ubuntu服务器


    首先安装全家桶

    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

      1 access-log: /tmp/h2o.log
      2 error-log: /tmp/h2o.err
      3 pid-file: /tmp/h2o.pid
      4 max-connections: 512
      5 file.send-gzip: ON
      6 tcp-fastopen: 3
      7 user: www
      8 file.index: [ 'index.php', 'index.html' ]
      9 file.mime.addtypes:
     10 text/html: .html .htm .shtml
     11 text/css: .css
     12 text/xml: .xml
     13 image/gif: .gif
     14 image/jpeg: .jpeg .jpg
     15 application/javascript: .js
     16 application/atom+xml: .atom
     17 application/rss+xml: .rss
     18 
     19 text/mathml: .mml
     20 text/plain: .txt
     21 text/vnd.sun.j2me.app-descriptor: .jad
     22 text/vnd.wap.wml: .wml
     23 text/x-component: .htc
     24 
     25 image/png: .png
     26 image/tiff: .tif .tiff
     27 image/vnd.wap.wbmp: .wbmp
     28 image/x-icon: .ico
     29 image/x-jng: .jng
     30 image/x-ms-bmp: .bmp
     31 image/svg+xml: .svg .svgz
     32 image/webp: .webp
     33 
     34 application/font-woff: .woff
     35 application/java-archive: .jar .war .ear
     36 application/json: .json
     37 application/mac-binhex40: .hqx
     38 application/msword: .doc
     39 application/pdf: .pdf
     40 application/postscript: .ps .eps .ai
     41 application/rtf: .rtf
     42 application/vnd.apple.mpegurl: .m3u8
     43 application/vnd.ms-excel: .xls
     44 application/vnd.ms-fontobject: .eot
     45 application/vnd.ms-powerpoint: .ppt
     46 application/vnd.wap.wmlc: .wmlc
     47 application/vnd.google-earth.kml+xml: .kml
     48 application/vnd.google-earth.kmz: .kmz
     49 application/x-7z-compressed: .7z
     50 application/x-cocoa: .cco
     51 application/x-java-archive-diff: .jardiff
     52 application/x-java-jnlp-file: .jnlp
     53 application/x-makeself: .run
     54 application/x-perl: .pl .pm
     55 application/x-pilot: .prc .pdb
     56 application/x-rar-compressed: .rar
     57 application/x-redhat-package-manager: .rpm
     58 application/x-sea: .sea
     59 application/x-shockwave-flash: .swf
     60 application/x-stuffit: .sit
     61 application/x-tcl: .tcl .tk
     62 application/x-x509-ca-cert: .der .pem .crt
     63 application/x-xpinstall: .xpi
     64 application/xhtml+xml: .xhtml
     65 application/xspf+xml: .xspf
     66 application/zip: .zip
     67 
     68 application/octet-stream: .bin .exe .dll
     69 application/octet-stream: .deb
     70 application/octet-stream: .dmg
     71 application/octet-stream: .iso .img
     72 application/octet-stream: .msi .msp .msm
     73 
     74 application/vnd.openxmlformats-officedocument.wordprocessingml.document: .docx
     75 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet: .xlsx
     76 application/vnd.openxmlformats-officedocument.presentationml.presentation: .pptx
     77 
     78 audio/midi: .mid .midi .kar
     79 audio/mpeg: .mp3
     80 audio/ogg: .ogg
     81 audio/x-m4a: .m4a
     82 audio/x-realaudio: .ra
     83 
     84 video/3gpp: .3gpp .3gp
     85 video/mp2t: .ts
     86 video/mp4: .mp4
     87 video/mpeg: .mpeg .mpg
     88 video/quicktime: .mov
     89 video/webm: .webm
     90 video/x-flv: .flv
     91 video/x-m4v: .m4v
     92 video/x-mng: .mng
     93 video/x-ms-asf: .asx .asf
     94 video/x-ms-wmv: .wmv
     95 video/x-msvideo: .avi
     96 
     97 hosts:
     98 "域名:端口":
     99 #header.add: "strict-transport-security: max-age=39420000; includesubdomains; preload"
    100 header.add: "X-Frame-Options: SAMEORIGIN"
    101 header.add: "X-Content-Type-Options: nosniff"
    102 header.add: "X-XSS-Protection: 1; mode=block"
    103 listen:
    104 port: 端口
    105 #ssl:
    106 #certificate-file: /home/wwwroot/ssl/miraisann.com.crt
    107 #key-file: /home/wwwroot/ssl/miraisann.com.key
    108 #dh-file: /home/wwwroot/ssl/dhparam4096.pem
    109 #minimum-version: TLSv1.1
    110 #cipher-preference: server
    111 #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
    112 paths:
    113 /:
    114 file.dir: /home/wwwroot/domain/xx.com
    115 redirect:
    116 url: /index.php/
    117 internal: YES
    118 status: 307
    119 file.custom-handler:
    120 extension: .php
    121 fastcgi.connect:
    122 port: /tmp/php-fpm.sock
    123 type: unix

     配置服务:

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

     1 [Unit]
     2 Description=h2o optimized HTTP server
     3 After=network.target remote-fs.target nss-lookup.target
     4 
     5 [Service]
     6 PIDFile=/tmp/h2o.pid
     7 ExecStart=/usr/local/bin/h2o/bin/h2o -c /home/etc/h2o.cf &
     8 ExecReload=/usr/bin/kill -HUP $MAINPID
     9 LimitNOFILE=infinity
    10 
    11 [Install]
    12 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

    "随笔"类型下的内容为原创,转载请注明来源. http://www.cnblogs.com/DragonStart/
  • 相关阅读:
    手势识别 ios
    无题
    核心动画笔记
    Quartz2D的学习2
    Quartz2D的学习1
    NSURLsessionTask
    NSURLSession
    POST请求的两种方式
    网络第一天
    NSThread
  • 原文地址:https://www.cnblogs.com/DragonStart/p/7128389.html
Copyright © 2020-2023  润新知