gpt4 book ai didi

nginx 代理到 Comet

转载 作者:行者123 更新时间:2023-12-03 20:19:48 24 4
gpt4 key购买 nike

我需要一些 linux 大师的帮助。我正在开发一个包含 cometd 服务器的网络应用程序。 Comet 服务器在 localhost:8080 上运行,并公开 url localhost:8080/long_polling 供客户端连接。我的 web 应用程序在 localhost:80 上运行。

我已经使用 nginx 将请求从 nginx 代理到 cometd 服务器(localhost:80/long_polling 代理到 localhost:8080/long_polling),但是,我对这个解决方案有两个提示:

  • nginx 在一分钟后给了我 504 网关超时,即使我将每个超时设置更改为 600 秒
  • 无论如何,我真的不希望 nginx 必须代理到 Comet 服务器 - nginx 代理不是为持久连接(可能长达半小时)而构建的。我宁愿让客户端直接连接到 cometd 服务器,让 cometd 服务器处理它。

  • 所以我的问题是:是否有任何 linux 技巧可以让我在不使用 nginx 代理的情况下将 localhost:8080/long_polling 暴露给 localhost:80/long_polling?一定有什么。这就是为什么我认为这个问题最好由 linux 大师回答。

    我需要/long_polling 在端口 80 上公开的原因是我可以使用 AJAX 连接到它(ajax 同源策略)。

    这是我的 nginx proxy.conf 供引用:
    proxy_redirect              off;                                                                                                                         
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    client_max_body_size 10m;
    client_body_buffer_size 128k;
    proxy_connect_timeout 600;
    proxy_send_timeout 600;
    proxy_read_timeout 600;
    proxy_buffer_size 4k;
    proxy_buffers 4 32k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k;
    send_timeout 600;
    proxy_buffering off;

    最佳答案

    这是我的 nginx.conf 和我的 proxy.conf。但是请注意,proxy.conf 是一种矫枉过正的方式 - 我只是在尝试调试我的程序时设置了所有这些设置。

    /etc/nginx/nginx.conf

    worker_processes  1;                                                                                                                                     
    user www-data;

    error_log /var/log/nginx/error.log debug;
    pid /var/run/nginx.pid;

    events {
    worker_connections 1024;
    }

    http {
    include /etc/nginx/proxy.conf;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    access_log /var/log/nginx/access.log;

    sendfile on;
    tcp_nopush on;

    keepalive_timeout 600;
    tcp_nodelay on;

    gzip on;
    gzip_comp_level 2;
    gzip_proxied any;
    gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    }

    /etc/nginx/proxy.conf
    proxy_redirect              off;                                                                                                                         
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    client_max_body_size 10m;
    client_body_buffer_size 128k;
    proxy_connect_timeout 6000;
    proxy_send_timeout 6000;
    proxy_read_timeout 6000;
    proxy_buffer_size 4k;
    proxy_buffers 4 32k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k;
    send_timeout 6000;
    proxy_buffering off;
    proxy_next_upstream error;

    关于nginx 代理到 Comet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1160454/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com