Я новичок в Nginx, и у меня возникли проблемы с размещением 2 веб-сайтов на моем RaspberryPi (Raspbian).
У меня 2 домена: site1.com (: 8080) и site2.com (: 8000), оба являются Node.JS приложениями (с Express). У меня есть сертификаты SSL с Let's Encrypt для обоих.
Это мой сайт1 nginx config (/ etc / nginx / site-available / site1):
server {
server_name site2.com;
listen 80;
listen [::]:80;
location / {
include /etc/nginx/proxy_params;
proxy_pass http://192.168.1.11:8080;
}
}
Это мой site2 nginx config (/ etc / nginx / site-available / site2):
server {
server_name site1.com;
listen 80;
listen [::]:80;
location / {
include /etc/nginx/proxy_params;
proxy_pass http://192.168.1.11:8000;
}
}
Таким образом, действительно, в этих файлах conf нет части 443, но https://site2.com есть работает хорошо, но https://site1.com перенаправляет меня на веб-страницу https://site2.com (сохраняя URL-адрес site1). Я предполагаю, это потому, что my_server_ip: 443 уже занят site2 (нет ??).
И http://site2.com дает мне 502 Bad Gateway и не перенаправляется на https (site1 - это хорошо перенаправлен на его https).
Это серверная часть моих приложений Node, они одинаковы для двух приложений (кроме порта и SSL URI)
const express = require('express')
const app = express()
var https = require('https');
var http = require('http');
var fs = require('fs');
const privateKey = fs.readFileSync('/etc/letsencrypt/live/site1or2.com/privkey.pem', 'utf8');
const certificate = fs.readFileSync('/etc/letsencrypt/live/site1or2.com/cert.pem', 'utf8');
const ca = fs.readFileSync('/etc/letsencrypt/live/site1or2.com/chain.pem', 'utf8');
const credentials = {
key: privateKey,
cert: certificate,
ca: ca
};
const httpsServer = https.createServer(credentials, app);
const bodyParser = require("body-parser");
const urlencodedParser = app.use(bodyParser.urlencoded({
extended: true
}));
http.createServer(function (req, res) {
//redirect to https
res.writeHead(301, { "Location": "https://" + req.headers['host'] + req.url });
res.end();
}).listen(8080); //8000 for my site2.com
httpsServer.listen('443', () => {
console.log('Server https listening on Port 443');
})
Я пробовал чтобы изменить Nginx confs, чтобы добавить 'listen 443; SSL включен; ... », но у меня всегда возникают такие ошибки, как« Не удалось запустить высокопроизводительный веб-сервер и обратный прокси-сервер », и я не понимаю, как это исправить. Так проблема в моем коде JS или в моих Nginx confs? (или оба, может быть ..?)
Спасибо, что прочитали, это мой первый пост на StackOverflow, надеюсь, я не забыл информацию и извините, если есть ошибка sh на английском языке.
Доброго вечера (или дня)!