Итак, мы используем Node.js для работы CompassionPit.com, и все это обслуживается nginx.
nginx выдает тайм-аут 504 Gateway
Однако интересно то, что если я перейду к http://compassionpit.com/index.html, то я могу получить доступ к странице (я считаю, что запрос направляется через приложение Node, которое работает на порту 8000).
И http://compassionpit.com/blog/ работает.
Но http://compassionpit.com/ не работает. :(
Помогите?
root@li70-243:~# cat /etc/nginx/sites-enabled/blog
server {
listen 80 default; # your server's public IP address
server_name compassionpit.com;
index index.html;
location /blog/wp-content/ {
alias /opt/blog/wp-content/;
}
location /blog/ {
root /opt/;
include fastcgi_params;
fastcgi_pass localhost:8080;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location / {
alias /opt/chat/static/;
if (-f $request_filename) {
break;
}
if (!-f $request_filename) {
proxy_pass http://127.0.0.1:8000;
}
}
}
root@li70-243:~# cat /etc/nginx/nginx.conf
user www-data;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
# multi_accept on;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
root@li70-243:~# free
total used free shared buffers cached
Mem: 509868 394168 115700 0 43540 215296
-/+ buffers/cache: 135332 374536
Swap: 524284 0 524284
Попробуйте это вместо вашего location /
:
location / {
alias /opt/chat/static/;
try_files $uri @nodejs;
}
location @nodejs {
proxy_pass http://127.0.0.1:8000;
}
И всегда проверять error.log
, это твой лучший друг.
Я также узнал, что csf в Linux запрещал исполняемый файл узла для многих подключений. Решением для этого было бы добавить pid узла в csf.pignore
, вот так (я также включил путь PM2):
...
exe:/usr/local/bin/node
exe:/root/npm/lib/node_modules/pm2/bin/pm2