2017-09-30 8 views
0

Mon site Web fonctionnait sur le port 80 (http) et j'utilisais nginx sans aucun problème. Ci-dessous le fichier par défaut que j'utilisais dans nginxNodeJs + Nginx .. connexion prématurément fermée en amont lors de la lecture en amont de l'en-tête de réponse

server { 
    listen 80; 
    server_name www.example.com; 
    location/{ 
     proxy_pass http://localhost:3000; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     proxy_set_header Host $host; 
     proxy_cache_bypass $http_upgrade; 
    } 
} 

Maintenant, je prévois d'utiliser https et téléchargé Crypter certs.Currently Lets Je ne suis pas en mesure d'accéder au site. Je reçois une erreur de suivi.

* [erreur] 754 754 #: une connexion en amont fermée prématurément tout en-tête de réponse de lecture fro m en amont, client: xxx.xx.xxx.xxx, serveur: example.com, demande: « GET/favicon Ico HTTP/2.0" , en amont: " h ttp: //127.0.0.1: 3000/favicon.ico" hôte "www.exapmple.com", referrer: "https://www.example.com/"

ci-dessous est mon fichier par défaut de nginx

# HTTP — redirect all traffic to HTTPS 
server { 
    listen 80; 
    listen [::]:80 default_server ipv6only=on; 
    return 301 https://$host$request_uri; 
} 

server { 
    listen 443 default_server ssl; 
    listen [::]:443 ssl http2; 
    server_name example.com www.example.com; 

    # certs sent to the client in SERVER HELLO are concatenated in ssl_certificate 
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; 
    ssl_session_timeout 1d; 
    ssl_session_cache shared:SSL:50m; 
    ssl_session_tickets off; 


    # intermediate configuration. tweak to your needs. 
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS'; 
    ssl_prefer_server_ciphers on; 

    # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months) 
    add_header Strict-Transport-Security max-age=15768000; 

    # OCSP Stapling --- 
    # fetch OCSP records from URL in ssl_certificate and cache them 
    ssl_stapling on; 
    ssl_stapling_verify on; 

    resolver 8.8.8.8; 

    location/{ 
     proxy_pass http://localhost:3000; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     proxy_set_header Host $host; 
     proxy_cache_bypass $http_upgrade; 
    } 

} 

Mon code nodejs est un s suit

var app = express(); 
var port = 3000; 
var server = https.createServer(app).listen(port, function() { 
    console.log("Application connected on port " + port); 
}); 

et le serveur est en cours d'exécution sur le port 3000.

Merci à l'avance .. J

Répondre

2

Ce problème est résolu maintenant. Le problème était avec le code nodejs.

j'ai changé au-dessus du code pour

var app = express(); 
var port = 3000; 
var server = app.listen(port, function() { 
    console.log("Application connected on port " + port); 
}); 

https.createserver appelle le http.server() en interne et crée l'instance. donc en supprimant cela, l'erreur a été résolue.

Merci pour votre aide !!