Mam problemy z miksem i MIX_ENV=prod
z mix phoenix.server
, w którym nie można uruchomić. Uruchamianie wszystkich najnowszych (Elixir 1.0.5, Phoenix 0.14.0) oprócz Erlanga (17.x, 17.3, myślę) na Ubuntu Linode'a 14.04.MIX_ENV = prod na serwerze Phoenix ulega awarii po uruchomieniu z portem = 80
$ MIX_ENV=prod PORT=80 mix phoenix.server
{"Kernel pid terminated",application_controller,"{application_start_failure,elirc_site,{{shutdown,{failed_to_start_child,'Elixir.ElircSite.Endpoint',{shutdown,{failed_to_start_child,'Elixir.Phoenix.Endpoint.Server',{shutdown,{failed_to_start_child,{ranch_listener_sup,'Elixir.ElircSite.Endpoint.HTTP'},{shutdown,{failed_to_start_child,ranch_acceptors_sup,{{badmatch,{error,eacces}},[{ranch_acceptors_sup,init,1,[{file,\"src/ranch_acceptors_sup.erl\"},{line,30}]},{supervisor,init,1,[{file,\"supervisor.erl\"},{line,243}]},{gen_server,init_it,6,[{file,\"gen_server.erl\"},{line,306}]},{proc_lib,init_p_do_apply,3,[{file,\"proc_lib.erl\"},{line,239}]}]}}}}}}}}},{'Elixir.ElircSite',start,[normal,[]]}}}"}
W szczególności uważam, że jest to część śladu.
{{badmatch,{error,eacces}},[{ranch_acceptors_sup,init,1,[{file,\"src/ranch_acceptors_sup.erl\"},{line,30}]}
Zazwyczaj nie ma potrzeby uruchamiania Phoenix za nginxem. :) –
Dobrze. Jest to tylko lepsze, jeśli nie chcesz uruchamiać kodu poziomu aplikacji jako root, ale absolutnie potrzebujesz portu 80/443 (co, jak sądziłem, mogło mieć miejsce w tym przypadku). –
Można również zrobić NAT do portu przy użyciu iptables (lub zapory preferencji). Np iptables -t nat -A WYJŚCIE -d myhostname -p tcp --dport 80 -j PRZEKIEROWANIE --to porty 8080 && iptables -t nat -A PREROUTING -d myhostname -p TCP --dport 80 -j REDIRECT - do-portów 8080 – diogovk