【问题标题】:nginx server forward request on custom port to node appnginx 服务器将自定义端口上的请求转发到节点应用程序
【发布时间】:2018-07-14 01:52:12
【问题描述】:

我有一个运行 Nginx 的 VPS 服务器,我还有一个在端口 8000 上运行的节点应用程序。Nginx 服务器容纳我的 PHP 应用程序,并在默认的网络服务器端口上运行良好。

我有一个指向服务器 ip 的自定义域名。

我已经安装了 let's encrypt 来处理我的 https 流量,它适用于我的 php 应用程序。

我必须在端口 8080 上捕获 https 流量并将请求转发到端口 8000 上的节点应用程序。

我已经尝试了大多数 stackoverflow 的东西。我不知道我做错了什么。

下面是我的 nginx 服务器块的副本。

 server {
       listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/repairspots.org/fullchain.pem; # managed$
    ssl_certificate_key /etc/letsencrypt/live/repairspots.org/privkey.pem; # manag$
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
    }




// i need to get this portion right

server {
  listen [::]:8080 ssl ipv6only=on; # managed by Certbot
  listen 8080 ssl;
  server_name 0.0.0.0;

  ssl_certificate /etc/letsencrypt/live/example.org/fullchain.pem; # managed$
  ssl_certificate_key /etc/letsencrypt/live/example.org/privkey.pem; # manag$
  include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

  error_page  497 https://0.0.0.0:8080$request_uri;

  # pass requests to port 8000 where our other node server is running
  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_pass http://0.0.0.0:8000;
    proxy_ssl_session_reuse off;
    proxy_set_header Host $http_host;
    proxy_cache_bypass $http_upgrade;
    proxy_redirect off;
  }
}

【问题讨论】:

    标签: node.js ssl nginx reverse-proxy


    【解决方案1】:

    我能够解决以下问题。

    我创建了 /etc/nginx/conf.d/proxy.conf 并粘贴了下面的服务器块。

    server {
        listen 8080 ssl;
        listen [::]:8080 ssl ipv6only=on;
    
      ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed$
      ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # manag$
      include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
      ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
    
      error_page 497  https://$host:$server_port$request_uri;#enforces https redirect on http traffic
    
       location / {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_ssl_session_reuse off;
            proxy_set_header X-Forwarded-Ssl on; #needed incase redirects comes from http
            proxy_set_header X-NginX-Proxy true;
            rewrite ^/?(.*) /$1 break;
            proxy_pass http://127.0.0.1:8000; #node server
            proxy_redirect off;
    
        }
    
    
    }
    

    这是我以前从未做过的一件事。您需要在您正在侦听的端口上接受互联网流量。使用端口号内联运行以下命令。

    sudo iptables -A INPUT -p tcp --dport 9000 -j ACCEPT
    

    【讨论】:

      猜你喜欢
      • 2018-03-11
      • 1970-01-01
      • 2022-06-16
      • 1970-01-01
      • 2018-08-09
      • 2015-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多