web-dev-qa-db-fra.com

Transfert des ports 80 à 8080 avec NGINX

J'utilise la pile LEMP et le nœud JS sur mon serveur Debian. Nginx fonctionne sur le port 80 et le nœud JS sur 8080. J'ai créé un nouveau sous-domaine: cdn.domain.com pour l'application nodejs. Actuellement, je peux accéder à l'application Node JS uniquement comme cdn.domain.com:8080/. Ce que je veux faire, c'est configurer Nginx de sorte que, lorsque j'entre dans cdn.domain.com, je puisse faire en sorte que l'application fonctionne sur le port 80. Je pense que cela peut être fait à l'aide de nginx en amont. Mais je ne peux pas comprendre comment. 

16
heron

NGINX prend en charge WebSockets en permettant la configuration d’un tunnel entre un client et un serveur principal. Pour que NGINX puisse envoyer la demande de mise à niveau du client au serveur principal, les en-têtes de mise à niveau et de connexion doivent être définis explicitement. Par exemple:

# WebSocket proxying
map $http_upgrade $connection_upgrade {
    default         upgrade;
    ''              close;
}


server {
    listen 80;

    # The Host name to respond to
    server_name cdn.domain.com;

    location / {
        # Backend nodejs server
        proxy_pass          http://127.0.0.1:8080;
        proxy_http_version  1.1;
        proxy_set_header    Upgrade     $http_upgrade;
        proxy_set_header    Connection  $connection_upgrade;
    }
}

Source: http://nginx.com/blog/websocket-nginx/

17
Tan Hong Tat

Aussi simple que ça,

assurez-vous de changer example.com en votre domaine (ou IP) et 1337 en votre port d'application Node.js:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_Host;
        proxy_pass         "http://127.0.0.1:1337";
    }
}

Source: https://eladnava.com/binding-nodejs-port-80-using-nginx/

9
Nyi Nyi

Voici comment vous pouvez y arriver.

upstream {
    nodeapp 127.0.0.1:8080;
}

server {
    listen 80;

    # The Host name to respond to
    server_name cdn.domain.com;

    location /(.*) {
        proxy_pass http://nodeapp/$1$is_args$args;
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $Host;
        proxy_set_header X-Real-Port $server_port;
        proxy_set_header X-Real-Scheme $scheme;
    }
}

Vous pouvez également utiliser cette configuration pour équilibrer la charge entre plusieurs processus de noeud, comme suit:

upstream {
    nodeapp 127.0.0.1:8081;
    nodeapp 127.0.0.1:8082;
    nodeapp 127.0.0.1:8083;
}

Où vous exécutez votre serveur de noeud sur les ports 8081, 8082 et 8083 dans des processus distincts. Nginx équilibrera facilement le trafic entre ces processus de serveur.

7
vaidik

Vous pouvez définir un amont et l'utiliser dans proxy_pass

http://rohanambasta.blogspot.com/2016/02/redirect-nginx-request-to-upstream.html

server {  
   listen        8082;

   location ~ /(.*) {  
       proxy_pass  test_server;  
       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_redirect    off;  
   }  

}   

  upstream test_server  
     {  
         server test-server:8989  
}  
3
Rohan

Simple est:

server {
    listen   80;
    server_name  p3000;
    location / {
        proxy_pass http://0.0.0.0:3000;
        include /etc/nginx/proxy_params;
    }
}
3
Dan Key

vous pouvez le faire très facilement en utilisant le suivi dans Sudo vi /etc/nginx/sites-available/default

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name _ your_domain;

    location /health {
            access_log off;
            return 200 "healthy\n";
    }

    location / {
            proxy_pass http://localhost:8080; 
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $Host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_cache_bypass $http_upgrade;
    }
  }
1
SHIVAPUTRA UDAGATTI