Принудительное перенаправление HTTP на HTTPS - PullRequest
0 голосов
/ 13 февраля 2020

Я использую Node Express в качестве сервера. Я настроил свой сертификат SSL на сервере NGINX PM2. Когда я нажму https://api.test.com. Я мог получить ответ, но когда я сделал http://api.test.com, я не смог ничего получить (то есть), он распознает его как неизвестный URL.

Как мне справиться с этим? Должен ли я сделать что-то в моем коде или в NGINX PM2?

Код

var express = require('express');
import application from './route';
const port = normalizePort(3000);
const server = http.createServer(application);
server.listen(port);

Ответы [ 3 ]

1 голос
/ 13 февраля 2020

Лучше справиться с этим в вашей nginx конфигурации. Вот минимальный пример:

server {
    listen xxx.xxx.xxx.xxx:80;
    server_name www.example.net;

    rewrite ^(.*) https://$server_name$1 permanent;
}

server {
    listen xxx.xxx.xxx.xxx:443;
    server_name www.example.net;

    root   /vhosts/www.example.net;

    ssl                  on;
    ssl_certificate      /etc/pki/nginx/www.example.net.crt;
    ssl_certificate_key  /etc/pki/nginx/www.example.net.key;



    location / {
        proxy_pass http://127.0.0.1:8080;
        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 https;
    }
}
0 голосов
/ 13 февраля 2020

Добавьте следующую конфигурацию к вашему NGINX:

server {
   listen 80;
   server_name example.com;
   location / {
          return 301 https://$host$request_uri;
   }
}

Это перенаправит любой запрос с http://{your_domain} (если вы не используете порт, отличный от 80) на https://{your_domain}.

0 голосов
/ 13 февраля 2020

Вам не нужно настраивать URL своего API, поэтому попробуйте это:

const application=require ('./route');
const express = require('express');
const app = express ();
app.use(application);
app.listen(4000,()=>console.log('connected'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...