<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>Upcoming SPDY support details</title>
<description>Hi all,
I'm developing SPDY (draft 2) support for Tornado, a Python web framework
that often uses nginx as a reverse proxy. AFAICT, nginx will roll out its
own SPDY support in 1.3, to be released at the end of May or in early June.
I'd like Tornado to complement nginx's design, but I can't find any details
of its SPDY implementation online or in svn, so I'll ask a few questions
here.
1. To avoid the significant overhead of an SSL connection, nginx
communicates with the server behind the reverse proxy on unencrypted HTTP.
However, whether to use HTTP or SPDY framing is normally decided via NPN
negotiation during the SSL handshake. Since the backend server can't
distinguish between a forwarded HTTP or SPDY connection without the SSL
layer, will there be a mechanism for delegating HTTP connections to one
address/port, and SPDY to another? Alternately, will nginx serve as an
HTTP&amp;lt;=&amp;gt;SPDY gateway, so that all requests appear to be SPDY to the backend
server?
2. Will there be any way to take advantage of nginx's caching when pushing
static resources that would normally be served by it? For example, the
backend server could send a SYN_STREAM frame with the UNIDIRECTIONAL flag
set and only the &amp;quot;url&amp;quot; header included - if the URL points to a location
that nginx would serve, nginx takes over, filling in the rest of the
headers and serving the file's contents.
I'd appreciate any guidance you may have.
Thanks,
Alek Storm
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel</description><link>http://forum.nginx.org/read.php?29,226562,226562#msg-226562</link><lastBuildDate>Sat, 25 May 2013 12:50:54 -0400</lastBuildDate>
<generator>Phorum 5.2.16</generator>
<item>
<guid>http://forum.nginx.org/read.php?29,226562,226596#msg-226596</guid>
<title>Re: Upcoming SPDY support details</title><link>http://forum.nginx.org/read.php?29,226562,226596#msg-226596</link><description><![CDATA[On Thursday 17 May 2012 17:52:30 Alek Storm wrote:<br />&gt; That's perfectly reasonable. Thanks for the quick and clear answers. Is<br />&gt; there somewhere online the in-progress SPDY implementation has been posted?<br />&gt; If not, what's the current estimated date of release?<br />&gt;<br /><br />We usually post the code on public only after the completion of the development<br />cycle of some full-fledged functionality, internal testing and review (sometimes<br />double or even triple code review). SPDY is the very big one, so it takes time.<br /><br />As you've already seen on roadmap ( http://trac.nginx.org/nginx/roadmap ), the<br />end of May - early June is our goal.<br /><br />wbr, Valentin V. Bartenev<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Valentin V. Bartenev</dc:creator>
<category>Nginx Development</category><pubDate>Thu, 17 May 2012 14:30:01 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,226562,226576#msg-226576</guid>
<title>Re: Upcoming SPDY support details</title><link>http://forum.nginx.org/read.php?29,226562,226576#msg-226576</link><description><![CDATA[That's perfectly reasonable. Thanks for the quick and clear answers. Is<br />there somewhere online the in-progress SPDY implementation has been posted?<br />If not, what's the current estimated date of release?<br /><br />Alek<br /><br />On Thu, May 17, 2012 at 8:17 AM, Valentin V. Bartenev &lt;ne@vbart.ru&gt; wrote:<br /><br />&gt; On Thursday 17 May 2012 16:06:21 Alek Storm wrote:<br />&gt; &gt; On Thu, May 17, 2012 at 6:23 AM, Valentin V. Bartenev &lt;ne@vbart.ru&gt;<br />&gt; wrote:<br />&gt; &gt; &gt; First implementation of SPDY support will work only on frontend side.<br />&gt; So,<br />&gt; &gt; &gt; nginx<br />&gt; &gt; &gt; will be able to talk with backends by HTTP, FastCGI, uwsgi, or SCGI<br />&gt; &gt; &gt; protocols.<br />&gt; &gt;<br />&gt; &gt; Got it. Looking forward to backend SPDY support, so crucial advantages<br />&gt; like<br />&gt; &gt; multiplexing are preserved. Will nginx at least add headers like<br />&gt; &gt; &quot;X-Priority&quot; to the forwarded request?<br />&gt;<br />&gt; Surely, I added the $spdy_request_priority configuration variable and it is<br />&gt; suitable for such tasks.<br />&gt;<br />&gt; &gt; &gt; that<br />&gt; &gt; &gt; the next step is to add pushing by special response header from backend<br />&gt; &gt; &gt; (like<br />&gt; &gt; &gt; &quot;X-Accel-Redirect&quot; but with the list of URIs to push).<br />&gt; &gt;<br />&gt; &gt; That'll work, but am I correct in assuming that the response containing<br />&gt; &gt; &quot;X-Accel-Redirect&quot; is different from the response to the original<br />&gt; request?<br />&gt;<br />&gt; In the most simplest implementation they will be the same.<br />&gt;<br />&gt; &gt; If they are the same, then nginx will not be notified of the URIs to push<br />&gt; &gt; until the server is ready to send the headers for the response to the<br />&gt; &gt; original request. This would be more restrictive than SPDY's semantics,<br />&gt; &gt; which allow pushing resources before the SYN_REPLY frame for the original<br />&gt; &gt; request is even sent.<br />&gt;<br />&gt; Yes, you're right. And this question is still undecided and requires<br />&gt; further<br />&gt; investigation. I think that we also need some sort of configuration<br />&gt; directives<br />&gt; for server pushing.<br />&gt;<br />&gt; wbr, Valentin V. Bartenev<br />&gt;<br />&gt; _______________________________________________<br />&gt; nginx-devel mailing list<br />&gt; nginx-devel@nginx.org<br />&gt; http://mailman.nginx.org/mailman/listinfo/nginx-devel<br />&gt;<br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Alek Storm</dc:creator>
<category>Nginx Development</category><pubDate>Thu, 17 May 2012 09:58:01 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,226562,226573#msg-226573</guid>
<title>Re: Upcoming SPDY support details</title><link>http://forum.nginx.org/read.php?29,226562,226573#msg-226573</link><description><![CDATA[On Thursday 17 May 2012 16:06:21 Alek Storm wrote:<br />&gt; On Thu, May 17, 2012 at 6:23 AM, Valentin V. Bartenev &lt;ne@vbart.ru&gt; wrote:<br />&gt; &gt; First implementation of SPDY support will work only on frontend side. So,<br />&gt; &gt; nginx<br />&gt; &gt; will be able to talk with backends by HTTP, FastCGI, uwsgi, or SCGI<br />&gt; &gt; protocols.<br />&gt;<br />&gt; Got it. Looking forward to backend SPDY support, so crucial advantages like<br />&gt; multiplexing are preserved. Will nginx at least add headers like<br />&gt; &quot;X-Priority&quot; to the forwarded request?<br /><br />Surely, I added the $spdy_request_priority configuration variable and it is<br />suitable for such tasks.<br /><br />&gt; &gt; that<br />&gt; &gt; the next step is to add pushing by special response header from backend<br />&gt; &gt; (like<br />&gt; &gt; &quot;X-Accel-Redirect&quot; but with the list of URIs to push).<br />&gt;<br />&gt; That'll work, but am I correct in assuming that the response containing<br />&gt; &quot;X-Accel-Redirect&quot; is different from the response to the original request?<br /><br />In the most simplest implementation they will be the same.<br /><br />&gt; If they are the same, then nginx will not be notified of the URIs to push<br />&gt; until the server is ready to send the headers for the response to the<br />&gt; original request. This would be more restrictive than SPDY's semantics,<br />&gt; which allow pushing resources before the SYN_REPLY frame for the original<br />&gt; request is even sent.<br /><br />Yes, you're right. And this question is still undecided and requires further<br />investigation. I think that we also need some sort of configuration directives<br />for server pushing.<br /><br />wbr, Valentin V. Bartenev<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Valentin V. Bartenev</dc:creator>
<category>Nginx Development</category><pubDate>Thu, 17 May 2012 09:20:01 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,226562,226570#msg-226570</guid>
<title>Re: Upcoming SPDY support details</title><link>http://forum.nginx.org/read.php?29,226562,226570#msg-226570</link><description><![CDATA[On Thu, May 17, 2012 at 6:23 AM, Valentin V. Bartenev &lt;ne@vbart.ru&gt; wrote:<br /><br />&gt; First implementation of SPDY support will work only on frontend side. So,<br />&gt; nginx<br />&gt; will be able to talk with backends by HTTP, FastCGI, uwsgi, or SCGI<br />&gt; protocols.<br />&gt;<br /><br />Got it. Looking forward to backend SPDY support, so crucial advantages like<br />multiplexing are preserved. Will nginx at least add headers like<br />&quot;X-Priority&quot; to the forwarded request?<br /><br />First implementation will have no support of SPDY server push. I believe<br />&gt; that<br />&gt; the next step is to add pushing by special response header from backend<br />&gt; (like<br />&gt; &quot;X-Accel-Redirect&quot; but with the list of URIs to push).<br />&gt;<br /><br />That'll work, but am I correct in assuming that the response containing<br />&quot;X-Accel-Redirect&quot; is different from the response to the original request?<br />If they are the same, then nginx will not be notified of the URIs to push<br />until the server is ready to send the headers for the response to the<br />original request. This would be more restrictive than SPDY's semantics,<br />which allow pushing resources before the SYN_REPLY frame for the original<br />request is even sent.<br /><br />Alek<br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Alek Storm</dc:creator>
<category>Nginx Development</category><pubDate>Thu, 17 May 2012 08:08:01 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,226562,226568#msg-226568</guid>
<title>Re: Upcoming SPDY support details</title><link>http://forum.nginx.org/read.php?29,226562,226568#msg-226568</link><description><![CDATA[On Thursday 17 May 2012 13:43:29 Alek Storm wrote:<br />&gt; Hi all,<br />&gt;<br />&gt; I'm developing SPDY (draft 2) support for Tornado, a Python web framework<br />&gt; that often uses nginx as a reverse proxy. AFAICT, nginx will roll out its<br />&gt; own SPDY support in 1.3, to be released at the end of May or in early June.<br />&gt; I'd like Tornado to complement nginx's design, but I can't find any details<br />&gt; of its SPDY implementation online or in svn, so I'll ask a few questions<br />&gt; here.<br />&gt;<br />&gt; 1. To avoid the significant overhead of an SSL connection, nginx<br />&gt; communicates with the server behind the reverse proxy on unencrypted HTTP.<br />&gt; However, whether to use HTTP or SPDY framing is normally decided via NPN<br />&gt; negotiation during the SSL handshake. Since the backend server can't<br />&gt; distinguish between a forwarded HTTP or SPDY connection without the SSL<br />&gt; layer, will there be a mechanism for delegating HTTP connections to one<br />&gt; address/port, and SPDY to another? Alternately, will nginx serve as an<br />&gt; HTTP&lt;=&gt;SPDY gateway, so that all requests appear to be SPDY to the backend<br />&gt; server?<br /><br />First implementation of SPDY support will work only on frontend side. So, nginx<br />will be able to talk with backends by HTTP, FastCGI, uwsgi, or SCGI protocols.<br /><br />Also, we will add a variable in nginx configuration, that will indicate client<br />connection by spdy protocol in case if someone wants to write it in the log or<br />notify the application by sending special header.<br /><br />&gt; 2. Will there be any way to take advantage of nginx's caching when pushing<br />&gt; static resources that would normally be served by it? For example, the<br />&gt; backend server could send a SYN_STREAM frame with the UNIDIRECTIONAL flag<br />&gt; set and only the &quot;url&quot; header included - if the URL points to a location<br />&gt; that nginx would serve, nginx takes over, filling in the rest of the<br />&gt; headers and serving the file's contents.<br />&gt;<br /><br />First implementation will have no support of SPDY server push. I believe that<br />the next step is to add pushing by special response header from backend (like<br />&quot;X-Accel-Redirect&quot; but with the list of URIs to push).<br /><br />wbr, Valentin V. Bartenev<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Valentin V. Bartenev</dc:creator>
<category>Nginx Development</category><pubDate>Thu, 17 May 2012 07:26:00 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,226562,226562#msg-226562</guid>
<title>Upcoming SPDY support details</title><link>http://forum.nginx.org/read.php?29,226562,226562#msg-226562</link><description><![CDATA[Hi all,<br /><br />I'm developing SPDY (draft 2) support for Tornado, a Python web framework<br />that often uses nginx as a reverse proxy. AFAICT, nginx will roll out its<br />own SPDY support in 1.3, to be released at the end of May or in early June.<br />I'd like Tornado to complement nginx's design, but I can't find any details<br />of its SPDY implementation online or in svn, so I'll ask a few questions<br />here.<br /><br />1. To avoid the significant overhead of an SSL connection, nginx<br />communicates with the server behind the reverse proxy on unencrypted HTTP.<br />However, whether to use HTTP or SPDY framing is normally decided via NPN<br />negotiation during the SSL handshake. Since the backend server can't<br />distinguish between a forwarded HTTP or SPDY connection without the SSL<br />layer, will there be a mechanism for delegating HTTP connections to one<br />address/port, and SPDY to another? Alternately, will nginx serve as an<br />HTTP&lt;=&gt;SPDY gateway, so that all requests appear to be SPDY to the backend<br />server?<br /><br />2. Will there be any way to take advantage of nginx's caching when pushing<br />static resources that would normally be served by it? For example, the<br />backend server could send a SYN_STREAM frame with the UNIDIRECTIONAL flag<br />set and only the &quot;url&quot; header included - if the URL points to a location<br />that nginx would serve, nginx takes over, filling in the rest of the<br />headers and serving the file's contents.<br /><br />I'd appreciate any guidance you may have.<br /><br />Thanks,<br />Alek Storm<br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Alek Storm</dc:creator>
<category>Nginx Development</category><pubDate>Thu, 17 May 2012 05:44:00 -0400</pubDate></item>
</channel>
</rss>