2012-02-05 2 views
8

У меня проблема с перенаправлением моего сервера http://www.mylesgray.com:8080/ ->http://www.mylesgray.com/.Что вызывает перенаправление 301?

Вот мои Nginx default и fastcgi_params конфигурационные файлы:

https://gist.github.com/1745271

https://gist.github.com/1745313

Это скорее nusance, как я пытаюсь запустить эталоном Nginx ж/кэширования против Лак с кэшированием поверх Nginx, чтобы узнать, есть ли какое-либо преимущество в производительности одного над другим.

Таким образом у меня есть прямой Nginx ж/кэширования на порту 8080 и лак на порт 80, который пересылает любые не кэшированные запросы Nginx на localhost:8080, поэтому очевидно, что я хочу сделать, это запустить ab тест на http://www.mylesgray.com:8080/ и на http://www.mylesgray.com/, чтобы увидеть разницу.

Ниже приведены результаты curl -I по различным адресам.

# curl -I http://www.mylesgray.com:8080 

HTTP/1.1 301 Moved Permanently 
Server: nginx/0.7.65 
Date: Sun, 05 Feb 2012 12:07:34 GMT 
Content-Type: text/html; charset=UTF-8 
Connection: keep-alive 
X-Powered-By: PHP/5.3.2-1ubuntu4.7ppa5~lucid1 
X-Pingback: http://www.mylesgray.com/xmlrpc.php 
Location: http://www.mylesgray.com/ 

# curl -I http://mylesgray.com 

HTTP/1.1 301 Moved Permanently 
Server: nginx/0.7.65 
Content-Type: text/html; charset=UTF-8 
X-Powered-By: PHP/5.3.2-1ubuntu4.7ppa5~lucid1 
X-Pingback: http://www.mylesgray.com/xmlrpc.php 
Location: http://www.mylesgray.com/ 
Content-Length: 0 
Date: Sun, 05 Feb 2012 12:15:51 GMT 
X-Varnish: 1419774165 1419774163 
Age: 15 
Via: 1.1 varnish 
Connection: keep-alive 

# curl -I http://mylesgray.com:8080 

HTTP/1.1 301 Moved Permanently 
Server: nginx/0.7.65 
Date: Sun, 05 Feb 2012 12:16:08 GMT 
Content-Type: text/html; charset=UTF-8 
Connection: keep-alive 
X-Powered-By: PHP/5.3.2-1ubuntu4.7ppa5~lucid1 
X-Pingback: http://www.mylesgray.com/xmlrpc.php 
Location: http://www.mylesgray.com/ 

Затем работает curl -I http://www.mylesgray.com дает:

# curl -I http://www.mylesgray.com 

HTTP/1.1 200 OK 
Server: nginx/0.7.65 
Content-Type: text/html; charset=UTF-8 
X-Powered-By: PHP/5.3.2-1ubuntu4.7ppa5~lucid1 
X-Pingback: http://www.mylesgray.com/xmlrpc.php 
Content-Length: 5132 
Date: Sun, 05 Feb 2012 12:07:29 GMT 
X-Varnish: 1419774133 1419774124 
Age: 30 
Via: 1.1 varnish 
Connection: keep-alive 

Так как вы можете видеть 80 обслуживается Varnish и 8080 на Nginx, но я не могу найти в любом ничего, что делает 301 редирект, а не в nginx.conf или в файле sites-enabled/default, и я не думаю, что это вызвано самим Wordpress, но очень открытыми для исправления.

Пожалуйста, помогите, это сводит меня с ума!

Myles

ответ

2

Присутствие X-Powered-By: PHP заголовок означает, что WordPress выдаёт 301. Это происходит из-за WordPress вынуждающих www.mylesgray.com. Когда вы используете нестандартный порт, пользовательские агенты обычно будут включать порт в заголовке Host. Попробуйте добавить

fastcgi_param HTTP_HOST $host; 

с остальной частью ваших директив fastcgi_param (или диалоговые с «включают fastcgi_params;»), и он должен это исправить.

+0

Я добавил это к моему'/и т.д./Nginx/fastcgi_params' и перезапустить все службы, но завиток все еще показывает 301 для всех, кроме 'HTTP: // www.mylesgray.com'. –

+0

Вот мой конфиг 'default' и мой файл' fastcgi_params' соответственно: https://gist.github.com/1745271 и https://gist.github.com/1745313 –

+0

Какую версию nginx вы используете? Кажется, что переопределение заголовков запросов с fastcgi_param не было добавлено до 0.8.40. – kolbyjack

8

Вы должны добавить '/' в конце своих URL-адресов. Кроме того, если вы запустите ab http://foo.com, он вернет вам ошибку «ab: недопустимый URL». Если вы делаете «ab -t 10 http://example.com/« все будет хорошо работать. Вы всегда должны использовать '/' в своих URL-адресах, иначе ваш веб-сервер попытается перенаправить страницу на домашнюю страницу автоматически для вас, что создает нежелательную дополнительную нагрузку на сервере и некоторые дополнительные байты на проводе.

веб-сервер

Вы сказали вам, что он сделал:

'/' отсутствует и что-то неправильно с портом Спальных:

# curl -I http://www.mylesgray.com:8080 
HTTP/1.1 301 Moved Permanently 
[...] 
======> Location: http://www.mylesgray.com/ 

'WWW' и '/' отсутствуют:

# curl -I http://mylesgray.com 
HTTP/1.1 301 Moved Permanently 
[...] 
=======> Location: http://www.mylesgray.com/ 
[...] 

'/' и 'WWW' отсутствуют:

# curl -I http://mylesgray.com:8080 
HTTP/1.1 301 Moved Permanently 
[...] 
========> Location: http://www.mylesgray.com/ 

«надежда, что помогает :)

Смежные вопросы