SSL Strangeness
Curtis Spencer
thorin at gmail.com
Thu Nov 29 05:54:16 MSK 2007
forgot to mention that I am running nginx 0.5.33 with the following
use flags on Gentoo:
USE="pcre perl ssl zlib -debug -fastcgi -flv -imap -status -sub -webdav"
On Nov 28, 2007 6:53 PM, Curtis Spencer <thorin at gmail.com> wrote:
> Hi,
>
> I am running 4 mongrels behind nginx with two servers blocks (one ssl
> enabled). I have a public facing app that 20-30 users go through each
> day (non ssl) and administrative SSL controllers in the app that
> people at my office use. I am noticing that by the end of day after a
> lot of use of the SSL version of the app, that some requests are
> hanging for certain people in the office (Mac OSX and Windows Firefox
> 2.0.0.5-10). It very rarely hangs on my machine (Linux), but it
> happens every now and then. I don't think the mongrels are dying
> because usually when these people encounter the hangs we can go to
> other computers (Linux Windows OSX) in the office and hammer on the
> SSL portion of site with no problems. Also, the non SSL version of
> the site never has any hanging AFAIK.
>
> My server settings look like this (which is mainly Ezra's Default conf
> for mongrels):
>
> server {
> server_name www.mydomain.com;
> listen 443;
>
> ssl on;
> ssl_certificate /var/keys/www.mydomain.com.pem;
> ssl_certificate_key /var/keys/www.mydomain.com.np.pem;
>
> client_max_body_size 50M;
>
> # doc root
> root /var/www/www.mydomain.com/current/public;
>
> # vhost specific access log
> access_log /var/log/nginx/ssl.www.mydomain.com.access.log main;
>
> # this rewrites all the requests to the maintenance.html
> # page if it exists in the doc root. This is for capistrano's
> # disable web task
> if (-f $document_root/system/maintenance.html) {
> rewrite ^(.*)$ /system/maintenance.html last;
> break;
> }
>
> location / {
> # needed to forward user's IP address to rails
> proxy_set_header X-Real-IP $remote_addr;
>
> # needed for HTTPS
> proxy_set_header X-FORWARDED_PROTO https;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_set_header Host $http_host;
> proxy_max_temp_file_size 0;
> proxy_redirect false;# If the file exists as a static file serve
> it directly without
> # running all the other rewite tests on it
> if (-f $request_filename) {
> break;
> }
>
> # check for index.html for directory index
> # if its there on the filesystem then rewite
> # the url to add /index.html to the end of it
> # and then break to send it to the next config rules.
> if (-f $request_filename/index.html) {
> rewrite (.*) $1/index.html break;
> }
>
> # this is the meat of the rails page caching config
> # it adds .html to the end of the url and then checks
> # the filesystem for that file. If it exists, then we
> # rewite the url to have explicit .html on the end
> # and then send it on its way to the next config rule.
> # if there is no file on the fs then it sets all the
> # necessary headers and proxies to our upstream mongrels
> if (-f $request_filename.html) {
> rewrite (.*) $1.html break;
> }
>
> if (!-f $request_filename) {
> proxy_pass http://mongrel;
> break;
> }
> }
>
> error_page 500 502 503 504 /500.html;
> error_page 413 /413.html;
> location = /500.html {
> root /var/www/www.mydomain.com/current/public;
> }
> }
>
> One thing I did happen to notice as well, is if I do performance
> testing on SSL with httperf, at first it is decently fast, but on many
> sequential runs it consistently degrades until httperf can barely do
> any requests. However, even while I do an httperf I can use the SSL
> version of the site with different computers. It just hangs on some,
> usually towards the end of the day.
>
> Any ideas?
>
> Thanks,
> Curtis
>
More information about the nginx
mailing list