1#!/usr/bin/env perl 2#*************************************************************************** 3# _ _ ____ _ 4# Project ___| | | | _ \| | 5# / __| | | | |_) | | 6# | (__| |_| | _ <| |___ 7# \___|\___/|_| \_\_____| 8# 9# Copyright (C) 2016, Daniel Stenberg, <daniel@haxx.se>, et al. 10# 11# This software is licensed as described in the file COPYING, which 12# you should have received as part of this distribution. The terms 13# are also available at https://curl.haxx.se/docs/copyright.html. 14# 15# You may opt to use, copy, modify, merge, publish, distribute and/or sell 16# copies of the Software, and permit persons to whom the Software is 17# furnished to do so, under the terms of the COPYING file. 18# 19# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 20# KIND, either express or implied. 21# 22#*************************************************************************** 23 24# This script invokes nghttpx properly to have it serve HTTP/2 for us. 25# nghttpx runs as a proxy in front of our "actual" HTTP/1 server. 26 27my $pidfile = "log/nghttpx.pid"; 28my $logfile = "log/http2.log"; 29my $nghttpx = "nghttpx"; 30my $listenport = 9015; 31 32#*************************************************************************** 33# Process command line options 34# 35while(@ARGV) { 36 if($ARGV[0] eq '--verbose') { 37 $verbose = 1; 38 } 39 elsif($ARGV[0] eq '--pidfile') { 40 if($ARGV[1]) { 41 $pidfile = $ARGV[1]; 42 shift @ARGV; 43 } 44 } 45 elsif($ARGV[0] eq '--nghttpx') { 46 if($ARGV[1]) { 47 $nghttpx = $ARGV[1]; 48 shift @ARGV; 49 } 50 } 51 elsif($ARGV[0] eq '--port') { 52 if($ARGV[1]) { 53 $listenport = $ARGV[1]; 54 shift @ARGV; 55 } 56 } 57 elsif($ARGV[0] eq '--logfile') { 58 if($ARGV[1]) { 59 $logfile = $ARGV[1]; 60 shift @ARGV; 61 } 62 } 63 else { 64 print STDERR "\nWarning: http2-server.pl unknown parameter: $ARGV[0]\n"; 65 } 66 shift @ARGV; 67} 68 69my $cmdline="$nghttpx --backend=127.0.0.1,8990 ". 70 "--frontend=\"*,$listenport;no-tls\" ". 71 "--log-level=INFO ". 72 "--pid-file=$pidfile ". 73 "--errorlog-file=$logfile"; 74print "RUN: $cmdline\n" if($verbose); 75system("$cmdline 2>/dev/null"); 76