@Carl wspomina o tym w swoim komentarzu, więc zamierzam określić mój proces w nadziei, że będzie dla ciebie przydatny. Oto kroki na linuksie Debiana z nginx jako serwerem.
- zainstalować
nginx
z apt-get install nginx
- utworzyć plik w
/etc/nginx/sites-available/your-app-name
zawierający
.
server {
listen 80;
server_name your-app.com www.your-app.com your-app.ca;
rewrite .*/favicon.ico /img/favicon.ico last;
location ~ ^/(css|js|img|html)/ {
root /path/to/your/static/resource/folder;
expires 30d;
}
location/{
proxy_pass http://localhost:3000;
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_forwarded_for;
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 64k;
}
}
- restart serwera z
/etc/init.d/nginx restart
- uruchomić aplikację Happstack, i upewnić się, że nasłuchuje na porcie
3000
(lub podstawić odpowiedni port w location
)
używam tej taktyki wdrażać większość moich aplikacji internetowych, z wyjątkiem tych opartych na Erlangu; Ufam, że Yaws sobie poradzi. Wygląda na to, że niektórzy ludzie rozważają to samo, with warp, ale nie wiem wystarczająco dużo o tym, aby to skomentować. Metoda odwrotnego proxy będzie działać tak długo, jak długo używany język będzie w stanie odpowiadać na żądania HTTP, co jest lepszym rozwiązaniem niż liczenie na (fast)?CGI
lub odpowiednią mod_.*?
.
Nginx jest wybrany jako serwer, ponieważ jest to faster than the alternatives at serving static files (co w zasadzie jest ważne w tym przypadku), a także dlatego, że bardzo łatwo go skonfigurować. To jest preferencja, a nie reguła. Prawdopodobnie mógłbyś użyć Apache lub Lighttpd lub cokolwiek w ten sam sposób, ale zostawię to wyjaśnienie komuś bardziej doświadczonemu.
Standard w większości wszechświata używa obecnie odwrotnego proxy nginx. – Carl
Generalnie używam wbudowanego serwera internetowego happstack, który wystarcza w większości przypadków. –