zoukankan      html  css  js  c++  java
  • [Node] Setup an Nginx Proxy for a Node.js App

    Learn how to setup an Nginx proxy server that sits in front of a Node.js app. You can use a proxy to control the flow of frontend requests hitting your app, as well as to achieve better performance and scalability. We'll create a sample Node.js app and configure a default Nginx configuration file to proxy web requests.

    Create a node app:

    // Load the http module to create an http server.
    var http = require('http');
    
    // Configure our HTTP server to respond with Hello World to all requests.
    var server = http.createServer(function (request, response) {
      response.writeHead(200, {"Content-Type": "text/plain"});
      response.end("Welcome to Node.js!
    ");
    });
    
    // Listen on port 3000, IP defaults to 127.0.0.1
    server.listen(3000);
    
    // Put a friendly message on the terminal
    console.log("Server running at http://127.0.0.1:3000/");

    The app running on port 3000.

    Run the node app:

    node index.js

    See the output:

    curl localhost:3000

    We will see:

    Welcome to Node.js!

    Now, start the nginx:

    service nginx start

    Varifiy nginx started:

    curl localhost // by default nginx running on port 80

    We will see the default nginx html.

    Modify the nginx config in '/etc/nginx/sites/enabled/default':

    server {
        location / {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://localhost:3000;
        }
    }

    Restart nginx:

    service nginx reload

    now do:

    curl localhsot

    Previously we saw the default nginx page, now we should see our node app's output. That means our nginx poxy works, it successfully redirect localhost:80 to localhost:3000.

  • 相关阅读:
    CPU飙高,OOM排查?
    反射
    Mybatits
    spring 基础问题
    java中格式化数字0和#区别
    java中File对象的mkdir和mkdirs的区别
    java截取字符串几种方式
    java工厂模式
    Java获取文件路径的几种方式
    jxl生成excel时,增加批注和冻结窗口
  • 原文地址:https://www.cnblogs.com/Answer1215/p/7218426.html
Copyright © 2011-2022 走看看