Nginx + Webmin - 请求超时

发布于 2025-01-15 14:20:58 字数 3314 浏览 4 评论 0原文

我有 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文