2013-03-01 25 views
13

Bir raylı uygulamasına sahibim ve google SPDY protokol desteğini kurmak istiyorum. Ancak Nginx'i SPDY yaması ile yükledikten sonra spdy'yi sanal konakçıda etkinleştirdikten sonra nginx'i yeniden başlatmama izin vermez, bunun yerine aşağıdaki hatayı atar.Nginx üzerinden SPDY Protokolü nasıl ayarlanır?

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

Burada ben herhangi bir hata olmadan başarıyla derler

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 

yüklemek benim adımlarını söz ediyorum, SPDY yama ile son nginx 1.3.13 derledik. Sonucu 0f nginx -V

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 

aşağıdaki verir My/etc/nginx/site özellikli yapılandırma tüm bu başarılı kurulum nginx sitenin sunucu bloğundaki SPDY param ile yeniden başlamazsa sonra

server { 
     listen 443 ssl spdy; 

     ssl_certificate  server.crt; 
     ssl_certificate_key server.key; 

     ... 
    } 

sahiptir etkin dosya.

Herhangi bir öneriniz var mı? Burada bir şey kaçırdığına eminim ama anlayamıyorum.

+1

spdy tek başına büyük bir ikramiye değil, TCP/IP ayar https://coderwall.com/p/8igwqa – Anatoly

+0

için birlikte olan bu makaleyi http://www.liberiangeek.net/2014/10 izleyin/install-son-version-nginx-ubuntu-14-10/ – AntonAL

cevap

13

GÜNCELLEME (19 Kasım 2013): nginx 1.4.3 için Modifiye komut

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

Ben kurulum

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

için Shell Komut yazdı (spdy yama gerekmez mi)

Sorunun çözümünü buldum.

Zaten nulls paketini, bu 1.3.13'ü derlemeden önce ubuntu 12.04'e yükledim. $ sudo apt-get install nginx

Bu sorunu çözmek için /etc/init.d/nginx dosyasının doğru ikiliyi kullanması gerektiğinden emin oldum. Ben terminalde aşağıdaki vermedi

:

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

yanlış kullanıyordu DAEMON yolu bu yüzden değişti başlarında bu (işler) gibi

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

bakmak değerleri yukarıda Mevcut /etc/init.d/nginx senaryoyu İşaretli (çalışmaz)

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

Geri kalan ip le aynı kalır. Bu yüzden temelde doğru sürüm ikili dosyalarını kullandım.

Güncelleme: Bu blog, siz de ilgilendiğiniz için çok iyi bir referans noktasıdır. http://blog.bubbleideas.com/2012/08/How-to-set-up-SPDY-on-nginx-for-your-rails-app-and-test-it.html

+0

Üretim sistemi üzerinde çalışıyorsanız, bu tür köprü köprülerinizi yaklaştırmak için "apt-get nginx'i kaldırmak" daha kolay olabilir. – Julian

+0

nginx 1.6.2 için bu kabuk komut dosyasına bir güncelleme var mı?Komut son nginx için Ubuntu 14.0.4 üzerinde başarısız gibi görünüyor. Bu @marvindanig – marvindanig

+1

artık yama gerekmez üzerinde http://blog.glaucocustodio.com/2014/11/24/adding-support-to-spdy- derlenirken daha adil --with-http_spdy_module seçeneği geçmesi, yardımcı olmalıdır protokol on nginx-ile-sıfır kesinti/ –