Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Далее рассмотрим, как собрать и установить сервер, и подробнее остановимся на конфигурировании некоторых сценариев работы.
Сборка и установка
Хотя nginx уже доступен в пакетах для последних версий Ubuntu Linux, я решил собирать его из исходников, потому что хотел использовать более свежую стабильную версию и модуль mod_wsgi для поддержки WSGI-протокола Python. Если вам не нужно собирать nginx с mod_wsgi, вы можете пропустить все места, где он упоминается.
Итак, для сборки нам понадобится исходный код nginx, исходный код библиотеки совместимых с Perl регулярных выражений (PCRE) и исходный код модуля mod_wsgi. Здесь мы используем самые последние, на данный момент, версии mod_wsgi и библиотеки PCRE. При использовании более старых версий PCRE версия не должна быть ниже 4.4:
$ wget http://sysoev.ru/nginx/nginx-0.6.32.tar.gz
$ tar -xzf nginx-0.6.32.tar.gz
$ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.8.tar.bz2
$ tar -xjf pcre-7.8.tar.bz2
$ mv pcre-7.8 pcre
$ wget -O mod_wsgi.tar.gz http://hg.mperillo.ath.cx/nginx/mod_wsgi/archive/tip.tar.gz
$ tar -xzf mod_wsgi.tar.gz
$ mv mod_wsgi-8994b058d2db mod_wsgi
Здесь я также переименовал директории для PCRE и mod_wsgi, чтобы в дальнейшем использовать для конфигурации один скрипт, не изменяя его. Автор mod_wsgi выбрал подход с применением патчей, чтобы успевать за изменениями в nginx, и поэтому мы должны приложить патч для нашей версии nginx. Запишем его как mod_wsgi_nginx-0.6.32.patch:
--- src/ngx_http_wsgi_handler.c 2008-03-26 22:35:15.000000000 +0300
+++ src/ngx_http_wsgi_handler.c 2008-10-06 16:55:07.000000000 +0400
@@ -71,7 +71,7 @@
if (r->method == NGX_HTTP_GET || r->method == NGX_HTTP_HEAD) {
/* XXX not sure */
- rc = ngx_http_discard_body(r);
+ rc = ngx_http_discard_request_body(r);
if (rc != NGX_OK && rc != NGX_AGAIN) {
return rc;
И затем приложим:
$ patch -d mod_wsgi -p0 < mod_wsgi_nginx_0.6.32.patch
Для сборки Nginx с SSL также необходимо установить библиотеку OpenSSL и для использования модуля ngx_http_gzip_module библиотеку zlib. Для сборки mod_wsgi понадобится установить пакет python-dev:
$ sudo apt-get install libssl-dev
$ sudo apt-get install zlib1g-dev
$ sudo apt-get install python-dev
$ touch nginx.sh
$ chmod a+x nginx.sh
$ vi nginx.sh
Для редактирования скрипта конфигурации я использую текстовый редактор Vi, но вы можете использовать любой другой удобный для вас редактор. Для сборки я написал следующий скрипт:
#! /bin/sh
./configure
--prefix=/var/lib/nginx