我正在尝试在ubuntu服务器的端口2000上运行NodeJS应用程序。
应用程序使用pm2运行。
据我所知,应用程序运行正常,因为我可以使用命令:
curl http://localhost:2000
我几乎立即收回了网页。
我遇到的问题是我正在尝试使用nginx作为反向代理和SSL。从SSL的角度来看,这非常适合尝试浏览网站' http://dreamingoftech.uk'我被重定向到HTTPS版本,我得到绿色挂锁。快乐的日子。
但遗憾的是,我没有收到该网页,但却出现了504错误。
奇怪的是,如果我跑:
time -p GET -H 'Host: dreamingoftech.uk' http://127.0.0.1:2000
我最终还是返回了网页(虽然我不得不承认我并不知道这个命令在做什么)
我使用的是基本的nginx.conf文件,除了添加了这些值:
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
和我的sites-available / default文件如下:
#HTTP
server {
listen 80;
listen [::]:80 default_server ipv6only=on;
return 301 https://$host$request_uri;
}
# HTTPS — proxy all requests to the Node app
server {
# Enable HTTP/2
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name dreamingoftech.uk;
# Use the Let’s Encrypt certificates
ssl_certificate /etc/letsencrypt/live/dreamingoftech.uk/fullchain.pe$
ssl_certificate_key /etc/letsencrypt/live/dreamingoftech.uk/privkey.$
# Include the SSL configuration from cipherli.st
include snippets/ssl-params.conf;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://127.0.0.1:2000;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
proxy_http_version 1.1;
}
在访问日志中,我收到此错误,但我不确定这是否是红鲱鱼:
"GET / HTTP/2.0" 504 665 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
我的问题是,任何人都可以告诉我正确的设置,以便及时加载我的网站。我无法理解为什么如果服务器几乎可以立即提供页面就需要更高的超时(尽管这可能是我的天真)。
提前致谢
史蒂夫