Nginx + Webmin - 请求超时
我有 ubuntu 服务器,安装了 Webmin 和 Nginx 服务器来运行 - NextJS、Express JS 和 Node JS Rest API。
如果我使用 IP 地址作为 API 端点,则一切正常,但如果我将 IP 地址替换为域名,则会返回 504 请求超时 以下是我的 Nginx conf 文件
server {
server_name example.com www.example.com;
listen XXX.XXX.XX.XXX;
root /home/myuser/public_html;
index index.php index.htm index.html;
access_log /var/log/virtualmin/example.com_access_log;
error_log /var/log/virtualmin/example.com_error_log;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME /home/myuser/public_html$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT /home/myuser/public_html;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS $https;
fastcgi_connect_timeout 300s;
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;
location ~ \.php(/|$) {
try_files $uri $fastcgi_script_name =404;
fastcgi_pass unix:/var/php-nginx/16445681685115.sock/socket;
}
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /api {
proxy_pass http://XXX.XXX.XX.XXX:4000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_cache_bypass $http_upgrade;
}
location /admin {
proxy_pass http://localhost:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host:$server_port;
proxy_cache_bypass $http_upgrade;
}
location /public {
proxy_pass http://127.0.0.1:8000;
}
location /upload {
root /home/myuser/public_html/;
}
fastcgi_split_path_info ^(.+\.php)(/.+)$;
listen XXX.XXX.XX.XXX:443 ssl;
ssl_certificate /home/myuser/ssl.combined;
ssl_certificate_key /home/myuser/ssl.key;
fastcgi_read_timeout 300;
}
如果我通过公共 IP 地址运行 API - http://XXX.XXX.XX.XXX/api/ 它工作正常,但如果我跑 https://example.com/api/ 它返回504请求超时
请帮忙!!
I have ubuntu server, installed Webmin and Nginx server to Run - NextJS, Express JS and Node JS Rest API.
Everything works well if I use IP address for API end point, but if I replace IP address with the domain name, it returns 504 Request Time Out
Following is my Nginx conf file
server {
server_name example.com www.example.com;
listen XXX.XXX.XX.XXX;
root /home/myuser/public_html;
index index.php index.htm index.html;
access_log /var/log/virtualmin/example.com_access_log;
error_log /var/log/virtualmin/example.com_error_log;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME /home/myuser/public_html$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT /home/myuser/public_html;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS $https;
fastcgi_connect_timeout 300s;
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;
location ~ \.php(/|$) {
try_files $uri $fastcgi_script_name =404;
fastcgi_pass unix:/var/php-nginx/16445681685115.sock/socket;
}
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /api {
proxy_pass http://XXX.XXX.XX.XXX:4000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_cache_bypass $http_upgrade;
}
location /admin {
proxy_pass http://localhost:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host:$server_port;
proxy_cache_bypass $http_upgrade;
}
location /public {
proxy_pass http://127.0.0.1:8000;
}
location /upload {
root /home/myuser/public_html/;
}
fastcgi_split_path_info ^(.+\.php)(/.+)$;
listen XXX.XXX.XX.XXX:443 ssl;
ssl_certificate /home/myuser/ssl.combined;
ssl_certificate_key /home/myuser/ssl.key;
fastcgi_read_timeout 300;
}
If I run API via Public IP address -
http://XXX.XXX.XX.XXX/api/
it works fine but if I run
https://example.com/api/
it returns 504 Request Timed Out
Please help!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论