Как правильно настроить nginx? |
Здравствуйте, гость ( Вход | Регистрация )
Настоящие Правила Раздела являются дополннением к Общим Правилам Конференции. В случаях противоречий отдельных пунктов, действуют Правила Раздела.
Как правильно настроить 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 |
ultrasparc |
01.06.2010, 12:38
Сообщение
#2
|
Группа: Старые пользователи Сообщений: 772 Регистрация: 05.08.2005 Из: UA SVAI Пользователь №: 1,499 Репутация: 221 |
Ошибка в том что вы все на один порт пытаетесь повесить, в этом и конфликт, что две программы не могут работать на одном порту.
|
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 |
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 |
xaker1 |
01.06.2010, 14:46
Сообщение
#5
|
Группа: Старые пользователи Сообщений: 400 Регистрация: 29.06.2008 Пользователь №: 7,739 Репутация: 197 |
Знакомый синтаксис конфига.
Сообщение отредактировал xaker1 - 01.06.2010, 14:48 |
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 секунд. |
eSupport.org.ua |
01.06.2010, 16:21
Сообщение
#7
|
Одесский сисадмин Группа: Старые пользователи Сообщений: 5,200 Регистрация: 18.11.2004 Из: Одесса Пользователь №: 823 Репутация: 263 |
Кстати, непонятно почему не может быть больше
|
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 |
Arseny, Web Style |
03.06.2010, 11:18
Сообщение
#9
|
Группа: Старые пользователи Сообщений: 507 Регистрация: 13.11.2002 Из: ООО Веб Стайл, Санкт-Петербург Пользователь №: 94 Репутация: 245 |
Кстати, я бы предложил повесить Apache на другой реальный IP. Это иногда бывает полезно.
|
Текстовая версия | Сейчас: 01.06.2024, 11:01 |