Lonely Dreamer (sanmai) wrote,
Lonely Dreamer
sanmai

Установка и настройка Nginx в Debian/Ubuntu

Настроим conf.d:
mkdir -p /etc/nginx/conf.d/
Затем добавим в конец nginx.conf, если такой строчки там ещё нет:
include /etc/nginx/conf.d/*.conf; 
Перейдем в каталог с конфигами nginx:
# /etc/nginx/
Пропишем типичные конфигурационные опции:
# cat > conf.d/apache.conf <<EOF
upstream apache {
	server   127.0.0.1:80;
}
EOF
Разрываем соединение для неописанных явно в конфиге хостов:
# cat > conf.d/default.conf <<EOF
server {
	listen server.example.net:80 default;
	server_name default;
	return 444;
}
EOF
Где server.example.net - имя этого хоста.
Включаем сжатие:
# cat > conf.d/gzip.conf <<EOF
#gzip on;
gzip_comp_level 5;
gzip_min_length 512;
gzip_buffers    16 128k;
gzip_types      text/plain text/css application/x-javascript;
EOF
Отключаем показ версии в заголовках и показ во фрейме:
# cat > conf.d/misc.conf <<EOF
server_name_in_redirect off;
server_tokens off;
add_header X-Frame-Options SAMEORIGIN;
keepalive_timeout 1200 1180;
keepalive_requests 10000;
EOF
Настройки прокси:
# cat > conf.d/proxy.conf <<EOF
proxy_hide_header Server;
proxy_set_header  Referer  \$http_referer;
proxy_set_header  X-Real-IP  \$remote_addr;
proxy_set_header  X-Forwarded-For  \$proxy_add_x_forwarded_for;
proxy_set_header  Host \$http_host;
proxy_set_header  If-None-Match \$http_if_none_match;


proxy_buffer_size          16k;
proxy_buffers              16 128k;
proxy_connect_timeout      60;
proxy_send_timeout         60;
proxy_read_timeout         60;
proxy_buffering on;
EOF
Если мы хотим загружать файлы размером больше чем один мегабайт:
# cat > conf.d/upload.conf <<EOF
client_max_body_size 105m;
EOF
Типичный конфиг виртуального хоста:
# cat > sites-available/example.com <<EOF
server {
        set \$www_root "/home/example.com/www/htdocs";
        server_name www.example.com;
        listen   www.example.com:80;

        proxy_intercept_errors on;
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root \$www_root;
        }

        location ~ /\.(ht|svn) {
                return 404;
        }

        location ~* \.(jpg|jpeg|gif|png|ico|css|doc|exe|txt|js|swf|cur|tar)$ {
                expires         7d;
                root \$www_root;
                if (!-f \$request_filename) {
                        proxy_pass        http://apache;
                }
        }

        location / {
                proxy_pass        http://apache;
        }
}

server {
        server_name .example.com;
        listen      www.example.com:80;
        location / {
                rewrite  ^(.*)$  http://www.example.com\$1  permanent;
        }
}
EOF
Включаем:
/etc/nginx# ln -s ../sites-available/example.com sites-enabled/
Будет пополнятся и дополнятся. Исправления и дополнения принимаются. YMMV.

Не забываем ставить libapache2-mod-rpaf.
Tags: apache2, debian, nginx, useful, vhosting
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 2 comments