Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to run Nginx with Node.js on Windows?

I want to install Nginx on Windows, and to run two node application. How can I do this?

I've tried to download Nginx 1.6.3, but I don't find something relevant about how to run on Windows. Just for Linux. I think there should be some modules for node.

Any advice will be useful!

like image 325
marian Avatar asked Sep 08 '15 14:09

marian


1 Answers

I never run Nginx on Windows, but the official documentation says how: http://nginx.org/en/docs/windows.html.

To run two node applications with Nginx, it's necessary to create a proxy. This is an example of how to alter the nginx.conf file for this:

worker_processes 1;

events {
        worker_connections 1024;
}
http {
        include mime.types;
        default_type application/octet-stream;
        sendfile on;
        keepalive_timeout 65;
        gzip on;
server {
        listen 80;
        server_name localhost;
        access_log C:\var\log\nginx\access.log;
                location ~ ^/(javascripts|stylesheets|images) {
                root C:\app1\public;
                expires max;
        }
        location / {
                proxy_pass http://localhost:3000;
        }
  }
server {
        listen 81;
        server_name localhost;
        access_log C:\var\log\nginx\access.log;
                location ~ ^/(javascripts|stylesheets|images) {
                root C:\app2\public;
                expires max;
        }
        location / {
                proxy_pass http://localhost:3001;
        }
  }
}

In this case, there are two node applications, one running on port 3000 and an other on port 3001 - the Nginx works as a proxy.

Further documentation: https://www.nginx.com/blog/nginx-nodejs-websockets-socketio/.

In your case, the configuration file are localised in: C:\nginx_v1_6\conf\nginx.conf

Backup the default file and update the content with what I posted.

Finally, you can test the reverse-proxy through localhost (port 80 default) and localhost:81, if the nodes servers and Nginx server are running.

like image 121
BrTkCa Avatar answered Sep 28 '22 14:09

BrTkCa