LINUX.ORG.RU
ФорумAdmin

Что почитать по конфигурации nginx?

 , homepage, ,


1

2

Ищу годные мануалы по конфигурации nginx.
Для начала хотел просто сделать 3 простых вещи:

Всё для любых whatever и любого количества вложенных директорий.
Однако при написании этих простых правил я столкнулся с непредвиденными проблемами. Браузер рапортует о кольцевом редиректе по методу циклического нуля (ну откуда это может быть?), одни правила ломают другие. Ужас, короче.
Теперь остро осознаю, что нуждаюсь в годном мануале, так как в скором времени буду писать куда более сложные конфиги: хочу прикрутить вебсокеты и автоматическую генерацию контента на lua.

★★★★★

Последнее исправление: CYB3R (всего исправлений: 1)

Доки на оф. сайте, вики (там есть примеры из реальной жизни), или спросить на их форуме (там вполне вменяемые ответы дают).

И да, покажи, что накалякал:)

unikum ★★★★★
()
Последнее исправление: unikum (всего исправлений: 1)
Ответ на: комментарий от unikum

nginx.conf

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    gzip  on;
    gzip_http_version 1.1;
    gzip_comp_level 2;
    gzip_types    text/plain text/css application/pdf
                  application/x-javascript text/xml
                  application/xml application/xml+rss
                  text/javascript;

    #include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}
Мой сайт:
server {
    server_name  www.golovin.in;
    rewrite ^(.*) http://golovin.in$1 permanent;
}

server {

        listen   80; ## listen for ipv4
        listen   [::]:80 default ipv6only=on; ## listen for ipv6

        server_name  golovin.in;

        access_log  /var/log/nginx/homepage.access.log;

        rewrite ^(.*)\.html$ $1 permanent;
        rewrite ^(.*)/index$ $1 permanent;
        try_files $uri.html $uri/ =404;

        location / {
                root   /var/www/homepage;
                index  index.html;
        }

        error_page  404  /err/404.html;
        error_page  403  /err/403.html;
        location ^~ /err/ {
                internal;
                root  /var/www/homepage; 
        }
        location ~ /err {
                deny    all;
                return  403;
        }

        # redirect server error pages to the static page /50x.html
        #
        #error_page   500 502 503 504  /50x.html;
        #location = /50x.html {
        #       root   /var/www/nginx-default;
        #}

}
Интересны тут только эти строчки:
rewrite ^(.*)\.html$ $1 permanent;
rewrite ^(.*)/index$ $1 permanent;
try_files $uri.html $uri/ =404;
Похоже, что у меня ужасные дела с регэкспами.
Подозреваю, что location /err тоже можно было попроще написать.

CYB3R ★★★★★
() автор топика
Последнее исправление: CYB3R (всего исправлений: 1)
Ответ на: комментарий от unikum

Кажется, я начинаю понимать, почему у меня страница ведёт себя не так, как я ожидаю. Сейчас заметил: удалил все правила, а фигня продолжает твориться. Всё дело в том, что сервер возвращает 304.
Может, мои правила и правильно работали.

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от unikum

Это я знаю, да. Но всё решается открытием приватной вкладки.

CYB3R ★★★★★
() автор топика

А меня вот nginx в последнее время просто бесит. После apache это был как глоток свежего воздуха, но теперь я осознал, что это затхлый душок подвала. Как же мне порой приходится извращаться, что бы заставить его делать элементарные вещи, вы бы знали!

beastie ★★★★★
()
Ответ на: комментарий от beastie

Зато такая-то гибкость, такая-то скорость работы!

Le_Raux
()
Ответ на: комментарий от beastie

уточнить бы для примера значимые элементарные вещи, которые непременно надо делать средствами nginx, а не своих модулей или внешними средствами...

Deleted
()
Ответ на: комментарий от Deleted

Мне сильно не хватает goto locataion. Нет встроенной возможности выставить expire в зависимости от mime. Да и много чего другого.

beastie ★★★★★
()
Ответ на: комментарий от beastie

В expire надобности не было ещё, но есть возможность его использовать в зависимости от mime

http://nginx.2469901.n2.nabble.com/expires-and-if-td6533049.html

Игорь как я понял принципиально против введения goto

http://forum.nginx.org/read.php?21,216663,216694#msg-216694

тем более можно обходиться и без goto

http://www.ruby-forum.com/topic/1064797

Мне nginx нравится своим минимализмом и устраивает во всех отношениях, пока нет полноценной альтернативы Сишному nginx в мире ФП.

Deleted
()
Ответ на: комментарий от Deleted

Я тоже люблю минимализм, но в nginx минимализм BrainF*ck.

beastie ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.