Хостинг - Обзор: эпицентр русскоязычного хостинга

Здравствуйте, гость ( Вход | Регистрация )

> Правила раздела

Настоящие Правила Раздела являются дополннением к Общим Правилам Конференции. В случаях противоречий отдельных пунктов, действуют Правила Раздела.

Запрещается

  1. Обсуждение хостинговых компаний и качества предоставляемых ими услуг.
  2. Реклама и антиреклама услуг хостинговых компаний.
  3. Навязывание собственных услуг в любом виде.
    Участникам Клуба хостинг-провайдеров разрешено давать ссылки на профайл своей компании в каталоге хостинга только в случае явного запроса услуг потенциальным клиентом. При поиске автором темы уникальных или специфических услуг, не описанных в каталоге хостинга, допускается информирование клиента о предоставлении таковых только персонально в личных сообщениях или с использованием другой контактной информации из профайла автора темы.

> Как правильно настроить nginx?
GreeNet.Ru
сообщение 01.06.2010, 12:29
Сообщение #1





Группа: Старые пользователи
Сообщений: 17
Регистрация: 18.12.2008
Пользователь №: 8,625


Репутация: 194


Что имеем:
1) Система СentOS
2) Панель управления ISP Lite
3) Связка apache + nginx
4) 2 IP адреса

Подскажите как правильно настроить nginx. При его запуске получаю ошибку

Код
-bash-3.2# service nginx restart
the configuration file /etc/nginx/nginx.conf syntax is ok
configuration file /etc/nginx/nginx.conf test is successful
Stopping nginx:.                                           [  OK  ]
Starting nginx: [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use
)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: still could not bind()


Конфиг nginx:

Код
user nginx;
worker_processes  10;
error_log  /var/log/nginx/error.log debug;
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] $status '
                 '"$request" $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;
                          tcp_nodelay    on;
                          keepalive_timeout  30;
                          send_timeout       900;
                          server_tokens      off;
                          server {
                          listen 80;
                          server_name     _;
                          server_name_in_redirect  off;
                          access_log  /var/log/nginx/host.access.log  main;
                          location / {
                          proxy_pass         http://127.0.0.1:8080/;
                          proxy_redirect     off;
                          proxy_set_header   Host             $host;
                          proxy_set_header   X-Real-IP        $remote_addr;
                          proxy_set_header   X-Forwarded-For  $proxy_add_x_forwa
                          client_max_body_size       10m;
                          client_body_buffer_size    128k;
                          proxy_connect_timeout      90;
                          proxy_send_timeout         90;
                          proxy_read_timeout         90;
                          proxy_buffer_size          4k;
                          proxy_buffers              4 32k;
                          proxy_busy_buffers_size    64k;
                          proxy_temp_file_write_size 10m;
                          }
                          }
                          }
http {
<------>server {
#<-----><------>listen 89.243.280.131:80;
<------><------>server_name greenet.ru www.greenet.ru;
<------><------>rewrite ^(/manager/.*)$>https://$host$1>permanent;
<------><------>location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
<------><------><------>proxy_pass http://89.243.280.131:8080;
<------><------><------>proxy_redirect http://greenet.ru:8080/ /;
<------><------><------>proxy_set_header Host $host;
<------><------><------>proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_
<------><------><------>proxy_set_header X-Real-IP $remote_addr;
<------><------>}
<------><------>location / {
<------><------><------>proxy_pass http://89.243.280.131:8080;
<------><------><------>proxy_redirect http://greenet.ru:8080/ /;
<------><------><------>proxy_set_header Host $host;
<------><------><------>proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_
<------><------><------>proxy_set_header X-Real-IP $remote_addr;
<------><------>}
<------><------>location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|
<------><------><------>root /var/www/val/data/www/greenet.ru;
<------><------><------>access_log /var/www/httpd-logs/greenet.ru.access.log;
<------><------><------>error_page 404 = @fallback;
<------><------>}
<------><------>location @fallback {
<------><------><------>proxy_pass http://89.243.280.131:8080;
<------><------><------>proxy_set_header Host $host;
<------><------><------>proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_
<------><------><------>proxy_set_header X-Real-IP $remote_addr;
<------><------>}
<------>}
}


Конфиг httpd думаю целиком выкладывать не стоит, по этому кусоек

Код
LoadModule rpaf_module modules/mod_rpaf-2.0.so

RPAFenable On
RPAFsethostname Off
RPAFproxy_ips 127.0.0.1 89.243.280.131
RPAFheader X-Real-IP

...

# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, in addition to the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to.
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
#
#Listen 12.34.56.78:80
Listen 127.0.0.1:8080


Знающие люди подсказали:

В /etc/nginx/nginx.conf у Вас на 24-й строке есть запись:
listen 80;
а на 49-й строке:
listen 89.243.280.131:80;

В результате получается, что nginx первой записью занимает 0.0.0.0:80
т.е. "всё-всё на порту 80", а второй пытается занять 89.243.280.131:80

Вам нужно устранить этот конфликт и тогда nginx заработает.

Подскажите в чем тут ошибка?

Сообщение отредактировал GreeNet.Ru - 01.06.2010, 13:27
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
 
Reply to this topicStart new topic
Ответов(1 - 8)
ultrasparc
сообщение 01.06.2010, 12:38
Сообщение #2





Группа: Старые пользователи
Сообщений: 772
Регистрация: 05.08.2005
Из: UA SVAI
Пользователь №: 1,499


Репутация: 221


Ошибка в том что вы все на один порт пытаетесь повесить, в этом и конфликт, что две программы не могут работать на одном порту.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
GreeNet.Ru
сообщение 01.06.2010, 12:48
Сообщение #3





Группа: Старые пользователи
Сообщений: 17
Регистрация: 18.12.2008
Пользователь №: 8,625


Репутация: 194


А можно по подробнее, что в данном случае надо изменить?

Просто уже третий день мучаюсь, надо срочно хостинг настроить да и сайты все перенести.

/etc/httpd/conf/httpd.conf

<Directory /var/www/val/data/www/greenet.ru>
<------>php_admin_value open_basedir "/var/www/val/data:."
</Directory>
NameVirtualHost 89.243.280.131:8080
<VirtualHost 89.243.280.131:8080>
<------>ServerName greenet.ru
<------>DocumentRoot /var/www/val/data/www/greenet.ru
<------>SuexecUserGroup val val.
<------>CustomLog /var/www/httpd-logs/greenet.ru.access.log combined
<------>ErrorLog /var/www/httpd-logs/greenet.ru.error.log
<------>ServerAlias www.greenet.ru
<------>ServerAdmin webmaster@greenet.ru
<------>DirectoryIndex index.php index.html index.htm
<------>AddDefaultCharset windows-1251
<------>php_admin_value open_basedir "/var/www/val/data:."
<------>php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f webmaster@gre
<------>php_admin_value upload_tmp_dir "/var/www/val/data/mod-tmp"
<------>php_admin_value session.save_path "/var/www/val/data/mod-tmp"
<------>AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
<------>AddType application/x-httpd-php-source .phps
</VirtualHost>

Сообщение отредактировал GreeNet.Ru - 01.06.2010, 13:17
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
ultrasparc
сообщение 01.06.2010, 13:36
Сообщение #4





Группа: Старые пользователи
Сообщений: 772
Регистрация: 05.08.2005
Из: UA SVAI
Пользователь №: 1,499


Репутация: 221


Есть 2 варианта

1. apache повесить на порт 8080 со всеми виртуальными хостами
а в nginx proxy_pass http://127.0.0.1:8080/;

2. оставить apache на порту 80 и не трогать виртуал хосты, при этом с помощью например файрвола все запросы с 80 порта отправить на 8080,
nginx поставить слушать порт 8080 а proxy_pass на порт 80
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
xaker1
сообщение 01.06.2010, 14:46
Сообщение #5





Группа: Старые пользователи
Сообщений: 400
Регистрация: 29.06.2008
Пользователь №: 7,739


Репутация: 197


Знакомый синтаксис конфига. ISPmanager? Если да, Вижу что ISPmanager, то почему бы не активировать nginx через возможности?

Сообщение отредактировал xaker1 - 01.06.2010, 14:48
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
ultrasparc
сообщение 01.06.2010, 14:54
Сообщение #6





Группа: Старые пользователи
Сообщений: 772
Регистрация: 05.08.2005
Из: UA SVAI
Пользователь №: 1,499


Репутация: 221


Кстати исправьте
proxy_connect_timeout 90;

syntax: proxy_connect_timeout время

Директива задаёт таймаут для соединения с проксированным сервером. Необходимо иметь в виду, что этот таймаут не может быть больше 75 секунд.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
eSupport.org.ua
сообщение 01.06.2010, 16:21
Сообщение #7


Одесский сисадмин


Группа: Старые пользователи
Сообщений: 5,200
Регистрация: 18.11.2004
Из: Одесса
Пользователь №: 823


Репутация: 263


Кстати, непонятно почему не может быть больше
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
GreeNet.Ru
сообщение 03.06.2010, 10:30
Сообщение #8





Группа: Старые пользователи
Сообщений: 17
Регистрация: 18.12.2008
Пользователь №: 8,625


Репутация: 194


ultrasparc, спасибо за совет. Проблему решил убрав из конфига nginx 1 строку. Теперь порт 80 свободен и все работает хорошо.

Сообщение отредактировал GreeNet.Ru - 04.06.2010, 07:26
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Arseny, Web Style
сообщение 03.06.2010, 11:18
Сообщение #9





Группа: Старые пользователи
Сообщений: 507
Регистрация: 13.11.2002
Из: ООО Веб Стайл, Санкт-Петербург
Пользователь №: 94


Репутация: 245


Кстати, я бы предложил повесить Apache на другой реальный IP. Это иногда бывает полезно.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 01.06.2024, 11:01
Яндекс.Метрика