Я довольно новичок в NGINX, я использую его для обслуживания страницы c и приложения NodeJS с использованием обратного прокси-сервера.
Идея служила:
Вот мой конфигурационный файл nxginx:
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/bundle.crt;
ssl_certificate_key /etc/ssl/_.my-web.com_private_key.key;
server_name my-web.com;
access_log /var/log/nginx/my-web.com.access.log;
error_log /var/log/nginx/my-web.com.error.log debug;
location / {
root /var/www/my-web.com/html;
}
location /app/ {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:3000/;
}
}
server {
listen 80;
server_name www.my-web.com my-web.com;
return 301 https://$host$request_uri;
}
У меня есть все файлы со страницы stati c в /var/www/my-web.com/html
и NodeJS в /var/www/my-web.com/app/dist
.
Конечно, у меня также есть приложение, работающее на http://localhost: 3000 , вот сервер. js содержимое файла:
const path = require('path');
const express = require('express');
const app = express();
const http = require('http').createServer(app);
const io = require('socket.io')(http);
var events = require('./connections/connection-events');
const DIST_DIR = path.normalize(__dirname + './../../dist');
const HTML_FILE = path.join(DIST_DIR, 'index.html');
app.use(express.static('dist'));
app.get('/', function(req, res){
res.sendFile(HTML_FILE);
});
const PORT = process.env.PORT || 3000;
io.on('connection', events);
http.listen(PORT, () => {
console.log(`App listening to ${PORT}....`);
console.log('Press Ctrl+C to quit.');
});
Когда я go на http://my-web.com показывает правильную страницу c, но когда я хочу получить доступ к приложению на http://my-web.com/app, я получаю индекс. html, но он не может найти мой пакет. js файл:
![404 error](https://i.stack.imgur.com/bTnbn.png)
Однако, если я go прямо на http://my-web.com/app/bundle.js, я действительно могу увидеть содержимое файла , Я думаю, что мне нужен действительный nginx файл конфигурации для обслуживания других файлов, кроме индекса. js из запроса каталога ...
Заранее спасибо кому-нибудь, кто может помочь!