2013-03-01 12 views
13

Ho un'app per rails e voglio impostare il supporto del protocollo SPDY di google. Ma dopo aver installato Nginx con la patch SPDY e quindi aver abilitato l'host virtuale spdy che non mi permette di riavviare il nginx, invece, lancia il seguente errore.Come impostare il protocollo SPDY su Nginx?

Restarting nginx: nginx: [emerg] invalid parameter "spdy" in /etc/nginx/sites-enabled/default:112 
nginx: configuration file /etc/nginx/nginx.conf test failed 

ho compilato ultima nginx 1.3.13 con la patch SPDY, eccomi qui a menzionare i miei passi di installare

wget http://nginx.org/download/nginx-1.3.13.tar.gz 
tar xvfz nginx-1.3.13.tar.gz 
cd nginx-1.3.13 

# Fetch the SPDY patch and apply it 
wget http://nginx.org/patches/spdy/patch.spdy.txt 
patch -p1 < patch.spdy.txt 

./configure \ 
--sbin-path=/usr/local/sbin/nginx \ 
--prefix=/etc/nginx \ 
--conf-path=/etc/nginx/nginx.conf \ 
--error-log-path=/var/log/nginx/error.log \ 
--http-client-body-temp-path=/var/lib/nginx/body \ 
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ 
--http-log-path=/var/log/nginx/access.log \ 
--http-proxy-temp-path=/var/lib/nginx/proxy \ 
--http-scgi-temp-path=/var/lib/nginx/scgi \ 
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi \ 
--lock-path=/var/lock/nginx.lock \ 
--pid-path=/var/run/nginx.pid \ 
--with-debug \ 
--with-http_addition_module \ 
--with-http_dav_module \ 
--with-http_gzip_static_module \ 
--with-http_realip_module \ 
--with-http_stub_status_module \ 
--with-http_ssl_module \ 
--with-http_sub_module \ 
--with-http_xslt_module \ 
--with-http_spdy_module \ 
--with-ipv6 \ 
--with-sha1=/usr/include/openssl \ 
--with-md5=/usr/include/openssl \ 
--with-mail \ 
--with-mail_ssl_module \ 

# wget https://you.googlecode.com/files/ngx_cache_purge-1.6.tar.gz 
--add-module=/software/ngx_cache_purge-1.6 \ 

#http://www.openssl.org/source/openssl-1.0.1e.tar.gz 
--with-openssl='/software/openssl-1.0.1e' 

# Build and install nginx 
make && sudo make install 

Compila con successo senza alcun errore. Risultato 0f nginx -V dà seguito

nginx version: nginx/1.3.13 
built by gcc 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 
TLS SNI support enabled 
configure arguments: --sbin-path=/usr/local/sbin/nginx --prefix=/etc/nginx --conf-   path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-debug --with-http_addition_module --with-http_dav_module --with-http_gzip_static_module --with-http_realip_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_xslt_module --with-http_spdy_module --with-ipv6 --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module --add-module=/software/ngx_cache_purge-1.6 --with-openssl=/software/openssl-1.0.1e 

mio/etc/nginx/config site-enabled ha

server { 
     listen 443 ssl spdy; 

     ssl_certificate  server.crt; 
     ssl_certificate_key server.key; 

     ... 
    } 

Dopo tutto questo nginx installazione di successo non si riavvia con SPDY param nel blocco del server del sito file abilitato.

Qualche suggerimento? Sono sicuro di mancare qualcosa qui ma non riesco a capire.

+1

SPDY non è un grosso vantaggio per sé, ma con congiunzione a TCP/IP sintonia https://coderwall.com/p/8igwqa – Anatoly

+0

seguire questo articolo http://www.liberiangeek.net/2014/10/install-ultima-versione-nginx-ubuntu-14-10/ – AntonAL

risposta

13

UPDATE (19 novembre 2013): script modificato per nginx 1.4.3 (Non ha bisogno di patch SPDY)

https://gist.github.com/deepak-kumar/7541199#file-compile_nginx_1-4-3_with-spdy-sh

Ho scritto Shell Script per la configurazione

https://gist.github.com/deepak-kumar/5069550#file-compile_nginx_with_spdy-sh

Ho trovato la soluzione al problema.

avevo già pacchetto nginx installato sul mio Ubuntu 12.04, anche prima di compilare questo 1.3.13 che è stata la causa del problema. $ sudo apt-get install nginx

Per risolvere questo problema, mi sono assicurato che /etc/init.d/nginx utilizzasse il binario corretto.

ho seguito sul terminale:

$ which nginx 
$ /usr/local/sbin/nginx 

controllato il mio script esistente /etc/init.d/nginx stava usando sbagliato DAEMON percorso quindi l'ho cambiato per assomigliare a questo (opere)

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 
DAEMON=/usr/local/sbin/nginx # $which nginx 

All'inizio di sopra valori erano (non funziona)

#PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 
#DAEMON=/usr/sbin/nginx 

Resto del fi le rimane uguale. Quindi essenzialmente ho usato il binario della versione corretta.

Update: Questo blog è anche un ottimo punto di riferimento nel caso in cui voi ragazzi siete interessati. http://blog.bubbleideas.com/2012/08/How-to-set-up-SPDY-on-nginx-for-your-rails-app-and-test-it.html

+0

potrebbe essere più facile "apt-get remove nginx" .. anche se questo genere di ustioni vostro ponte se si lavora sul sistema di produzione. – Julian

+0

Esiste un aggiornamento a questo script di shell per nginx 1.6.2.Lo script sembra fallire su Ubuntu 14.0.4 per l'ultimo nginx. – marvindanig

+1

@marvindanig questo dovrebbe aiutare, più non hai più bisogno di patch basta passare l'opzione --with-http_spdy_module mentre compili http://blog.glaucocustodio.com/2014/11/24/adding-support-to-spdy- protocollo-on-nginx-con-zero-downtime/ –