1 (26.07.2013 16:19:08 отредактировано Nigelist)

Посоветуйте хорошую и подробную инструкцию по установке и настройке Bind9 (для локальной сети) и Nginx. Учитывая, что будет только один сервер.

2

Nigelist, для nginx две аж написал, первая в готовых решениях, последняя:
Установка LNMP - nginx, mysql, php-fpm - Gentoo, Debian, Ubuntu, CentOS

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

3

zenon, а статьи по установке Bind9 для одного сервера в локальной сети нет на примете?

4

Nigelist, Переведи и можно будет разместить тут, или у меня. ;_)

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

5

zenon⇓ пишет:

Nigelist, Переведи и можно будет разместить тут, или у меня. ;_)

С переводом проблем нет, но по данному конфигу у меня не получается. Если можете мне помочь с несколькими вопросами, то можно и перевести.

6

Где вопросы-то?

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

7 (27.07.2013 10:52:04 отредактировано Nigelist)

zenon, ну вообще все вопросы связаны с тем, что сервер у меня в сети один, нету дублирующего сервера. А все остальные сервисы (Web-сервер, DNS-сервер, SQL-сервер, сервер приложений) находятся на первом и единственном сервере. Итак, в конструкции:

 Консоль:
@       IN      SOA     ns1.linuxconfig.org. admin.linuxconfig.org. (
                          1        ; Serial
                          3h       ; Refresh after 3 hours
                          1h       ; Retry after 1 hour
                          1w       ; Expire after 1 week
                          1h )     ; Negative caching TTL of 1 day

В другой статье нашел значение этих параметров:

  • Refresh - период времени с которым вторичный сервер днс обращается к основному.

  • Retry - период с которым вторичный сервер будет повторять попытки при неудачном обновлении.

  • Expire - максимальное время использования данных на вторичном сервере, после которого делается обязательное обновление.

Но как быть, если у меня один DNS-сервер? Или может быть значение параметров указаны неправильно?

P.S. И обязательно ли указывать имя ns1. Или можно указать hostname сервера?

P.P.S. Так же непонятно как быть с роутером? Ведь DHCP-сервер на роутере. Надо ли настраивать статический IP на сервере? Если уже на роутере зарезервирован IP-адрес для сервера?

8

Nigelist, уже не первый день тут... телепат из меня сегодня никакой.
Начни с постановки задачи.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

9 (27.07.2013 16:50:45 отредактировано Nigelist)

zenon, хочу поднять DNS-сервер, чтоб по домашней сети к нему можно было обращаться по доменному имени (например: server.domain.loc). Для себя хочу сделать сайт со модулем статьи (как у вас) с форумом. тоже пока локальный.

Так же хотелось бы разобраться, как расшаривать базу 1С:Предприятие на Nginx. На Apache это делается командой:

 Консоль:
./webinst -apache22 -wsdir db1 -dir '/var/www/db1' -connStr 'Srvr="1cserver";Ref="db1";' -confPath /etc/apache2/httpd.conf

Где webinst - скрипт публикации баз из состава утилит 1С, db1 - имя БД к которой настраиваем доступ, 1cserver - имя сервера на котором установлен 1С сервер.

В дальнейшем хочу попробовать поднять почтовик и ftp-сервер.


Добавлено:
У вас в статье указано:

Владельцем каталога сайтов должен быть пользователь, от которого запущен и работает вэб-сервер. В Debian и Ubuntu это www-data, в Gentoo, CentOS - пользователь nginx. В конфигурации за это отвечает директива user (nginx.conf):

 Консоль:
user  www-data;
worker_processes  4;
...
...

А у меня в Debian 7:

 Консоль:
user  nginx;
worker_processes  1;

И непонятно то ли задавать владельцем папки пользователя nginx, то ли заменить nginx на www-data в nginx.conf.

10

Nigelist⇓ пишет:

А у меня в Debian 7:
Консоль
user  nginx;
worker_processes  1;

Откуда nginx был установлен? Если из dotdeb то будет пользователь nginx, если стандартно, то www-data.
Вообще без разницы, главное знать от кого работает, чтобы у сервера был доступ к содержимому.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

11

Nigelist пишет:

хочу поднять DNS-сервер, чтоб по домашней сети к нему можно было обращаться по доменному имени (например: server.domain.loc). Для себя хочу сделать сайт со модулем статьи (как у вас) с форумом. тоже пока локальный.

ИМХО, BIND для этого избыточен, я обошёлся dnsmasq.

Да, у меня Ubuntu.
Нет, не глючит.

12 (27.07.2013 19:34:18 отредактировано Nigelist)

zenon⇓ пишет:

Откуда nginx был установлен? Если из dotdeb то будет пользователь nginx, если стандартно, то www-data.
Вообще без разницы, главное знать от кого работает, чтобы у сервера был доступ к содержимому.

Из репозитория nginx. Того, что в вашей статье.
А так наверное все таки работает от nginx:

 Консоль:
ps aux | grep nginx
root      2055  0.0  0.0  30904   980 ?        Ss   20:49   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx     2056  0.0  0.0  31252  1628 ?        S    20:49   0:00 nginx: worker process                   
nigelist  3208  0.0  0.0   7852   836 pts/0    S+   21:24   0:00 grep nginx

-=Serj=-⇓ пишет:

ИМХО, BIND для этого избыточен, я обошёлся dnsmasq.

На вырост.

13

Nigelist⇓ пишет:

Из репозитория nginx. Того, что в вашей статье.

Ну а я про что говорю - мейнтейнеры Debian правят конфиги и если ставишь из родных реп, то пользователь будет www-data - это стандарт для Debian/Ubuntu.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

14 (28.07.2013 08:33:32 отредактировано Nigelist)

zenon, что то я не пойму, разве репозитории с nginx.org относятся к родным? Или вы имели в виду стандартные репозитории Debian?

P.S. В репозиториях nginx версии 1.4.2, а в стандартных репозиториях версии 1.2.1. Эта разница важна? Может стоит поставить версию из стандартного репозитория.

15

zenon⇓ пишет:

Nigelist, Переведи и можно будет разместить тут, или у меня. ;_)

Спасибо, по этой статье получилось.

Кстати, это ничего, что DNS-сервер получает IP-адрес от роутера (правда ему зарезервирован постоянный IP-адрес) или лучше назначить статический IP-адрес? Добавил в роутер DNS-сервер для домашней локалки. Вроде всё работает.

16

Nigelist⇓ пишет:

Кстати, это ничего, что DNS-сервер получает IP-адрес от роутера

В локальных сетях мне больше нравится кэшируюший dns сервер Unbound.
Локальные адреса в нём прописывать просто, например:

    local-zone: "home.lan." static
       local-data: "www.home.lan. 300 IN A 192.168.0.1"
       local-data: "ftp.home.lan. 300 IN A 192.168.0.2"
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

17

zenon, получаю затык на:

* Связку nginx и php-fpm настраиваем на работу через unix сокет
Создадим новую конфигурацию для localhost:

 Консоль:
# nano /etc/nginx/conf.d/localhost.conf
server {
   server_name localhost;
   # listen 192.168.0.120:80;
   listen 127.0.0.1:80;
   root /var/www/localhost;
   index index.php;

   location ~ [^/]\.php(/|$) {
      fastcgi_split_path_info ^(.+?\.php)(/.*)$;
      if (!-f $document_root$fastcgi_script_name) {
         return 404;
      }
      # fastcgi_pass 127.0.0.1:9000;
      fastcgi_pass unix:/var/run/php5-fpm.sock;
      fastcgi_index index.php;
      include fastcgi_params;
   }
}

Дальнейшие шаги выполнил в точности. Страница вообще не отображается. А в server_name должен стоять localhost или что-то другое?

18

Nigelist⇓ пишет:

А в server_name должен стоять localhost или что-то другое?

Смотри офф доку server_name

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

19

Nigelist, Не для Debian конечно, а для Fedora/RHEL, но может что то извлечёшь отсюда.

In Tux We Trust     Centos 6.5
Самурай без меча подобен самураю с мечом, но только без меча, однако как-будто с мечом, которого у него нет, но и без него он как с ним...

20

zenon, сделал так:

server {
   server_name  domain.loc
                www.domain.loc
                192.168.1.33
                ;

   listen       80;
   #listen 127.0.0.1:80;
   root /var/www/localhost;
   index index.php;

   location ~ [^/]\.php(/|$) {
      fastcgi_split_path_info ^(.+?\.php)(/.*)$;
      if (!-f $document_root$fastcgi_script_name) {
         return 404;
      }
      # fastcgi_pass 127.0.0.1:9000;
      fastcgi_pass unix:/var/run/php5-fpm.sock;
      fastcgi_index index.php;
      include fastcgi_params;
   }
}

Открывается пустая страница.

21

По ip открывается что-нибудь? Размести файл index.html  с любым содержанием в корне (/var/www/localhost). Только добавь в конфиг

index index.php  index.html;

И покажи nslookup/dig domain.loc
Вот у меня:

# dig vdebian.home.lan

; <<>> DiG 9.9.2-P2 <<>> vdebian.home.lan
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55478
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;vdebian.home.lan.        IN    A

;; ANSWER SECTION:
vdebian.home.lan.    300    IN    A    192.168.0.120

;; Query time: 0 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Mon Jul 29 00:25:02 2013
;; MSG SIZE  rcvd: 61

У меня всё прекрасно работает вот с таким конфигом:

server {
   server_name localhost;
   listen 192.168.0.120:80;
   listen 127.0.0.1:80;
   root /var/www/localhost;
   index index.php;

   location ~ [^/]\.php(/|$) {
      fastcgi_split_path_info ^(.+?\.php)(/.*)$;
      if (!-f $document_root$fastcgi_script_name) {
         return 404;
      }
      # fastcgi_pass 127.0.0.1:9000;
      fastcgi_pass unix:/var/run/php5-fpm.sock;
      fastcgi_index index.php;
      include fastcgi_params;
   }
}

192.168.0.120 - это виртуалка, указыват имя сервера и не надо, если локальные адреса резолвит локальный днс-сервер.
Те я обращаться могу и по ip и http://vdebian.home.lan/
Смотри не перепутал что-нибудь:

# ls -la /var/www/localhost
# ps aux | grep php
root      4354  0.0  0.4 132708  4864 ?        Ss   04:29   0:00 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)      
www-data  4356  0.0  1.1 137224 11976 ?        S    04:29   0:00 php-fpm: pool www                                         
www-data  4357  0.0  1.1 137224 11996 ?        S    04:29   0:00 php-fpm: pool www     
# ps aux | grep nginx
root      4606  0.0  0.1  76280  1304 ?        Ss   04:36   0:00 nginx: master process /usr/sbin/nginx
www-data  4607  0.0  0.1  76636  1968 ?        S    04:36   0:00 nginx: worker process
www-data  4608  0.0  0.1  76636  1968 ?        S    04:36   0:00 nginx: worker process
www-data  4609  0.0  0.1  76636  1968 ?        S    04:36   0:00 nginx: worker process
www-data  4610  0.0  0.2  76904  2416 ?        S    04:36   0:00 nginx: worker process
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

22 (30.07.2013 08:43:53 отредактировано Nigelist)

zenon⇓ пишет:

По ip открывается что-нибудь? Размести файл index.html  с любым содержанием в корне (/var/www/localhost). Только добавь в конфиг

По ip так же открывается пустая страница. Сделал сим-линк:

 Консоль:
ln -s /usr/share/nginx/html/index.html /var/www/localhost/index.html

Вот содержимое localhost:

 Консоль:
ls -l /var/www/localhost
итого 4
lrwxrwxrwx 1 www-data www-data 32 Июл 29 08:53 index.html -> /usr/share/nginx/html/index.html
-rw-r----- 1 www-data www-data 20 Июл 28 21:53 index.php

Расположение index.html тоже не помогло = пустая страница.

zenon⇓ пишет:

И покажи nslookup/dig domain.loc

Вот:

 Консоль:
dig 192.168.1.33 domain.loc

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> 192.168.1.33 domain.loc
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 59507
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;192.168.1.33.                  IN      A

;; AUTHORITY SECTION:
.                       10800   IN      SOA     a.root-servers.net. nstld.verisign-grs.com. 2013072901 1800 900 604800 86400

;; Query time: 134 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Tue Jul 30 10:50:22 2013
;; MSG SIZE  rcvd: 105

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64617
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;domain.loc.                    IN      A

;; ANSWER SECTION:
domain.loc.             10800   IN      A       192.168.1.33

;; Query time: 1 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Tue Jul 30 10:50:22 2013
;; MSG SIZE  rcvd: 44

вот nslookup:

 Консоль:
nslookup domain.loc
Server:         192.168.1.1
Address:        192.168.1.1#53

Non-authoritative answer:
Name:   domain.loc
Address: 192.168.1.33

Все процессы запущены от www-data:

 Консоль:
ps aux | grep www-data
www-data  1979  0.0  0.0  10472   396 ?        Ss   08:32   0:00 /usr/sbin/fcgiwrap
www-data  3250  0.0  0.0  31256  1636 ?        S    08:48   0:00 nginx: worker process                   
www-data  3251  0.0  0.0  31256  1636 ?        S    08:48   0:00 nginx: worker process                   
www-data  3253  0.0  0.0  31520  2024 ?        S    08:48   0:00 nginx: worker process                   
www-data  3254  0.0  0.0  31256  1372 ?        S    08:48   0:00 nginx: worker process                   
www-data  3292  0.0  0.2 137236  4864 ?        S    08:48   0:00 php-fpm: pool www                                         
www-data  3293  0.0  0.2 137236  4864 ?        S    08:48   0:00 php-fpm: pool www                                         
root      3331  0.0  0.0   7856   844 pts/0    S+   09:03   0:00 grep www-data

23

Добавь после server_name (не обязательно) пути к логам и смотри что происходит.
В nginx можно указать глобальные лог файлы и "локальные" для каждого сайта, точнее логи можно в каждой секции с фигурными скобками обозначать, соответственно будет и реакция.

server {
   server_name localhost;
   access_log /var/log/nginx.localhost.access.log main;
   error_log  /var/log/nginx.localhost.error.log warn;
   listen 192.168.0.120:80;
   listen 127.0.0.1:80;
   root /var/www/localhost;
   index index.html index.htm;
   ...
   ...
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

24 (02.11.2013 18:13:52 отредактировано Nigelist)

Решил вернутся к нерешенному вопросу и поднять старую тему. Всё никак не получается корректно заполнить localhost.conf:

/etc/nginx/conf.d/localhost.conf

В общем дефолтный работает, а ваш не хочет работать:

server {
   server_name localhost;
   # listen 192.168.0.120:80;
   listen 127.0.0.1:80;
   root /var/www/localhost;
   index index.php;

   location ~ [^/]\.php(/|$) {
      fastcgi_split_path_info ^(.+?\.php)(/.*)$;
      if (!-f $document_root$fastcgi_script_name) {
         return 404;
      }
      # fastcgi_pass 127.0.0.1:9000;
      fastcgi_pass unix:/var/run/php5-fpm.sock;
      fastcgi_index index.php;
      include fastcgi_params;
   }
}

На данный момент выдает, сервер не найден. В различных вариантах localhost.conf выдает страницу: либо 404, либо 50*, либо файл не найден.
P.S.

zenon пишет:

В include как правило присутствует конфигурация сайта по умолчанию, который как раз и выводит надпись "Welcome to nginx!" при обращении к localhost (127.0.0.1):
Debian/Ubuntu - /etc/nginx/sites-enabled/default
Gentoo/CentOS - /etc/nginx/conf.d/default
Больше этот файл не нужен - удалите его.

В Debian конфиг лежит в:

/etc/nginx/conf.d/

25

Вроде настроил Bind9, некоторое время работало отлично. Но, пару дней назад перестал работать адрес локального сайта. Хотя если перейти по IP. Сайт работает отлично. Пинг на домен:

 Консоль:
ping domain.loc

Обмен пакетами с domain.loc[::1] с 32 байтами данных:
Ответ от ::1: время<1мс
Ответ от ::1: время<1мс
Ответ от ::1: время<1мс
Ответ от ::1: время<1мс

Статистика Ping для ::1:
    Пакетов: отправлено = 4, получено = 4, потеряно = 0
    (0% потерь)
Приблизительное время приема-передачи в мс:
    Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек


Вот содержимое файла зоны прямого просмотра:
 Консоль:
;
; domain.loc
;
$TTL            604800
@               IN      SOA     ns1.domain.loc. root.domain.loc. (
                              3         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@               IN      NS      ns1.domain.loc.
@               IN      A       192.168.1.200

ps1             IN      A       192.168.1.200
s0              IN      A       192.168.1.55
s0              IN      A       192.168.1.115

domain.loc.     IN      A       192.168.1.200
domain.loc.     IN      MX      mail.domain.loc.

www             IN      CNAME   domain.loc.
mail            IN      A       192.168.1.200
ftp             IN      CNAME   domain.loc.