Ok, o problema é que os arquivos estáticos devem ser servidores com nginx porque node.js não é bom para servidores grandes arquivos estáticos.
Estou usando isso em uma LAN local, então deve ser bem rápido.
O servidor nginx usa o servidor node.js para fornecer arquivos estáticos, portanto, ele deve passar pelo node.js para fazer o download dos arquivos, mas isso não é um problema quando não estou usando o nginx.
Eu fiz para tornar muito mais rápido, servindo os arquivos diretamente com o nginx, mas eu não acho que está tudo bem para configurar desta forma. Eu gostaria de ser node.js, que é o aplicativo em si para cuidar do que mostrar ...
No chrome com depurador, posso ver que o status é: 206 - conteúdo parcial e baixou apenas 31KB de 1,03MB. Após 1,1 min, ele fica vermelho e o status falha. Tempo de espera: 6ms Recebimento: 1,1 min
Os cabeçalhos no google chrom:
Request URL:http://192.168.1.16/production/assembly/script/production.js
Request Method:GET
Status Code:206 Partial Content
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:pt-PT,pt;q=0.8,en-US;q=0.6,en;q=0.4
Connection:keep-alive
Cookie:connect.sid=s%3Abls2qobcCaJ%2FyBNZwedtDR9N.0vD4Fi03H1bEdCszGsxIjjK0lZIjJhLnToWKFVxZOiE
Host:192.168.1.16
If-Range:"1081715-1350053827000"
Range:bytes=16090-16090
Referer:http://192.168.1.16/production/assembly/
User-Agent:Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4
Response Headersview source
Accept-Ranges:bytes
Cache-Control:public, max-age=0
Connection:keep-alive
Content-Length:1
Content-Range:bytes 16090-16090/1081715
Content-Type:application/javascript
Date:Mon, 15 Oct 2012 09:18:50 GMT
ETag:"1081715-1350053827000"
Last-Modified:Fri, 12 Oct 2012 14:57:07 GMT
Server:nginx/1.1.19
X-Powered-By:Express
Configurações do meu nginx:
Arquivo 1:
user totty;
worker_processes 4;
pid /var/run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# Logging Settings
##
access_log /home/totty/web/production01_server/node_modules/production/_logs/_NGINX_access.txt;
error_log /home/totty/web/production01_server/node_modules/production/_logs/_NGINX_error.txt;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
##
# nginx-naxsi config
##
# Uncomment it if you installed nginx-naxsi
##
#include /etc/nginx/naxsi_core.rules;
##
# nginx-passenger config
##
# Uncomment it if you installed nginx-passenger
##
#passenger_root /usr;
#passenger_ruby /usr/bin/ruby;
##
# Virtual Host Configs
##
autoindex on;
include /home/totty/web/production01_server/_deployment/nginxConfigs/server/*;
}
Arquivo incluído no arquivo anterior:
server {
# custom location for entry
# using only "/" instead of "/production/assembly" it
# would allow you to go to "thatip/". In this way
# we are limiting to "thatip/production/assembly/"
location /production/assembly/ {
# ip and port used in node.js
proxy_pass http://127.0.0.1:3000/;
}
location /production/assembly.mongo/ {
proxy_pass http://127.0.0.1:9000/;
proxy_redirect off;
}
location /production/assembly.logs/ {
autoindex on;
alias /home/totty/web/production01_server/node_modules/production/_logs/;
}
}