После нескольких часов борьбы с этой аномалией я наконец признал поражение. Если кто-нибудь может мне помочь, я был бы очень признателен!
БЫСТРЫЙ РЕЗЮМЕ:
У меня в журнале ошибок Nginx есть эта ошибка:
2009/11/09 02:49:59 [error] 90#0: *7 connect() to unix:/tmp/passenger.54/master/helper_server.sock
failed (61: Connection refused) while
connecting to upstream, client:
127.0.0.1, server: test.local, request: "GET / HTTP/1.1", upstream:
"passenger://unix:/tmp/passenger.54/master/helper_server.sock:",
host: "test.local"
Полная информация ниже.
Я установил Nginx и Passenger на свой локальный компьютер, чтобы использовать его для локальной разработки. У меня были Apache и Passenger, но у меня было несколько ошибок, поэтому я решил переключиться.
Я без проблем установил расширение Passenger Nginx в / USR / местные / Nginx
и настроил Nginx в /usr/local/nginx/conf/nginx.conf
Для полноты, вот содержимое nginx.conf:
worker_processes 2;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
passenger_root /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.5;
passenger_ruby /usr/local/bin/ruby;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name test.local;
root /Users/i0n/Sites/test/public;
passenger_enabled on;
rails_env development;
client_max_body_size 10M;
client_body_buffer_size 128k;
}
}
Затем я добавил / USR / местные / nginx / sbin к моей переменной пути. Все идет нормально. Если я запускаю Nginx с терминала с помощью sudo nginx, у меня не возникает никаких проблем, я могу просмотреть свое тестовое приложение Rails по адресу http (двоеточие) // test.local как и ожидалось.
Проблема возникает, когда я пытаюсь настроить систему для загрузки Nginx при запуске. Я следовал инструкциям из вики Nginx (с некоторыми корректировками для разных путей)
Я создал файл plist в: /System/Library/LaunchDaemons/nginx.plist
Его содержимое выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key><string>nginx</string>
<key>Program</key><string>/usr/local/nginx/sbin/nginx</string>
<key>KeepAlive</key><true/>
<key>NetworkState</key><true/>
<key>StandardErrorPath</key><string>/usr/local/nginx/logs/error.log</string>
<key>LaunchOnlyOnce</key><true/>
</dict>
</plist>
Я тогда бегу sudo launchctl load -F /System/Library/LaunchDaemons/nginx.plist
Если я перезагружу систему и перейду в http: //test.local в браузере я вижу страницу, на которой написано:
502 Плохой шлюз nginx / 0.7.61
Если я посмотрю в журнал ошибок Nginx (который находится в /usr/local/nginx/logs/error.log)
Я вижу записанную следующую ошибку:
2009/11/09 02:49:59 [error] 90#0: *7 connect() to unix:/tmp/passenger.54/master/helper_server.sock
failed (61: Connection refused) while
connecting to upstream, client:
127.0.0.1, server: test.local, request: "GET / HTTP/1.1", upstream:
"passenger://unix:/tmp/passenger.54/master/helper_server.sock:",
host: "test.local"
Если я вручную остановлю, а затем запустил Nginx из терминала с помощью sudo, он начнет работать. Если честно, это меня поставило в тупик, вероятно, это что-то очень простое, но я просто не вижу этого в данный момент. Любые мысли или предложения будут с благодарностью приняты. Спасибо, что нашли время прочитать это!
Ян
Вам нужно отключить демон. launchctl предполагает, что порождаемые им процессы не демонизируются, иначе он не может знать, когда перезапустить процесс. http://almosteffortless.com/2009/09/16/passenger-with-nginx-on-mac-os-x/