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.
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;
}
}
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/
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.
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
}
Simple est:
server {
listen 80;
server_name p3000;
location / {
proxy_pass http://0.0.0.0:3000;
include /etc/nginx/proxy_params;
}
}
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;
}
}