Cześć, chciałem wrzucić swoją pierwszą aplikację (MEAN stack) na serwer ale napotkałem problem i nie mogę znaleźć rozwiązania.
Mam postawionego debiana zainstalowany nginx, node, mongo itp.
Serwer startuje poprzez pm2
Tutaj plik server.js
require('rootpath')();
var express = require('express');
var app = express();
var cors = require('cors');
var bodyParser = require('body-parser');
var expressJwt = require('express-jwt');
var config = require('config.json');
app.use(cors());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// use JWT auth to secure the api
app.use(expressJwt({ secret: config.secret }).unless({ path: ['/users/authenticate', '/users/register'] }));
// routes
app.use('/users', require('./controllers/users.controller'));
// start server
var port = process.env.NODE_ENV === 'production' ? 3008 : 4000;
var server = app.listen(port, function () {
console.log('Server listening on port ' + port);
});
tak wygląda mój config.json
{
"connectionString": "mongodb://localhost:27017/mydb",
"apiUrl": "http://127.0.0.1:3008",
"secret": "przykladowy ciag znakow testowy"
}
Zbudowałem front w angularze 2 i poprzez angular CLI zbudowałem aplikację (ng build )) mam folder dist który wrzuciłem do /srv/moja_domena/dist
A część serwera do /srv/moja_domena/server
Jak wchodzę na swoją domenę to pokazuje mi się front logowania, konsola nic nie wyrzuca.
Po wpisaniu loginu i hasła otrzymuję w konsoli
OPTIONS http://localhost:4000/users/authenticate net::ERR_CONNECTION_REFUSED
XHR failed loading: POST "http://localhost:4000/users/authenticate".
Nie wiem dlaczego jest port 4000 zamiast 3008
Tutaj moj nginx
server {
listen 80;
# Web
root /srv/myapp/dist;
location / {
try_files $uri /index.html;
}
# Api
location /stv/myapp/server {
proxy_pass http://127.0.0.1:3008;
}
}
Jest ktoś w stanie doradzić jak to ustawić? Podejrzewam że w nginxie jest problem