DigitalOcean上带有NGINX的ExpressJS上的路由错误和域名问题
在这一点上,我简直是在胡思乱想,想弄清楚我做错了什么。我在第7天无法使用Express和Nginx让digital ocean正常工作。尝试我所有的资源,阅读我能找到的每一个教程,并且翻阅stackOverflow数百次,我仍然觉得我处于一个死胡同中,对什么是错的感到困惑 我得到的最远的结果是只能访问express on addressDigitalOcean上带有NGINX的ExpressJS上的路由错误和域名问题,express,nginx,digital-ocean,nginx-reverse-proxy,nginx-config,Express,Nginx,Digital Ocean,Nginx Reverse Proxy,Nginx Config,在这一点上,我简直是在胡思乱想,想弄清楚我做错了什么。我在第7天无法使用Express和Nginx让digital ocean正常工作。尝试我所有的资源,阅读我能找到的每一个教程,并且翻阅stackOverflow数百次,我仍然觉得我处于一个死胡同中,对什么是错的感到困惑 我得到的最远的结果是只能访问express on addresshttp://上提供的单个页面 问题1 什么有效:仅http://来自路由器。获取('/') 什么不起作用:www.myDomain.app或myDomain.
http://
上提供的单个页面
问题1 什么有效:仅
http://
来自路由器。获取('/')
什么不起作用:www.myDomain.app
或myDomain.app
连接到我正在服务的网页。什么也不起作用:
https://
(https/ssl)
问题2 当我尝试路由到
/page1
或/page2
时,只有我提供的第一个页面起作用(在http://
上),我得到一个未找到
错误。这似乎是由express生成的错误
错误消息:
Not Found
404
NotFoundError: Not Found
at /home/test/app.js:28:8
at Layer.handle [as handle_request] (/home/test/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/test/node_modules/express/lib/router/index.js:317:13)
at /home/test/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/home/test/node_modules/express/lib/router/index.js:335:12)
at next (/home/test/node_modules/express/lib/router/index.js:275:10)
at /home/test/node_modules/express/lib/router/index.js:635:15
at next (/home/test/node_modules/express/lib/router/index.js:260:14)
at Function.handle (/home/test/node_modules/express/lib/router/index.js:174:3)
at router (/home/test/node_modules/express/lib/router/index.js:47:12)
问询处 水滴:
Ubuntu 20.04上的NodeJS 12.18.0
域:
- NS记录:正确设置为digitalocean
- A-Record:
和@
-->指向我的IPv4www
NodeJS:
已使用Express
其他:
用于样板文件快速生成器
文件夹 Nginx.conf
default.conf
位置:
/etc/nginx/sites available/
符号链接到:
/etc/nginx/sites enabled
作为文件:默认值
server {
listen 80 default_server;
listen [::]:80 default_server;
#listen 443 ssl default_server;
#listen [::]:443 ssl default_server;
# include snippets/snakeoil.conf;
root /home/empa/;
# index index.html index.htm index.nginx-debian.html;
# Enabling the above line seems to break NGINX for some reason.
server_name myDomain.app www.myDomain.app;
location ^~ /test/public/ {
# gzip_static on;
# expires 12h;
# add_header Cache-Control public;
}
location / {
proxy_pass http://localhost:3030/;
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;
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 $scheme;
proxy_redirect off;
}
}
快车(路由器)
//=====================================
const express=require('express');
const router=express.router();
const request=require('request');
const path=require('path');
常数fs=要求('fs');
const jp=require('jsonpath');
// =====================================
/*获取第1页*/
router.get('/page1',函数(req、res、next){
res.render('index',{title:'Page 1',message:'看在上帝的份上,请你已经开始工作了'});
});
/*获取第2页*/
router.get('/page2',函数(req、res、next){
res.render(“”,{title:'page2',message:'Stack Overflow是我最后的希望。我为此疯狂不已');
});
module.exports=路由器;
快车(主)
var createError=require('http-errors');
var express=需要(“express”);
var path=require('path');
var cookieParser=require('cookie-parser');
var记录器=需要('morgan');
var端口=3030;
var indexRouter=require('./路由/索引');
var usersRouter=require(“./routes/users”);
var-app=express();
//查看引擎设置
app.set('views',path.join('views');
应用程序集(“查看引擎”、“hbs”);
应用程序使用(记录器(“开发”);
使用(express.json());
use(express.urlencoded({extended:false}));
使用(cookieParser());
app.use(express.static(path.join(uu dirname,'public'));
应用程序使用(“/”,索引路由器);
app.use('/users',usersRouter);
//捕获404并转发到错误处理程序
应用程序使用(功能(请求、恢复、下一步){
下一步(createError(404));
});
//错误处理程序
应用程序使用(功能(错误、请求、恢复、下一步){
//设置局部变量,仅提供开发中的错误
res.locals.message=err.message;
res.locals.error=req.app.get('env')='development'?err:{};
//呈现错误页面
资源状态(资源状态| | 500);
res.render(“错误”);
});
app.listen(端口,函数(){
log(`Test正在侦听端口${port}`)
})
module.exports=app;
server {
listen 80 default_server;
listen [::]:80 default_server;
#listen 443 ssl default_server;
#listen [::]:443 ssl default_server;
# include snippets/snakeoil.conf;
root /home/empa/;
# index index.html index.htm index.nginx-debian.html;
# Enabling the above line seems to break NGINX for some reason.
server_name myDomain.app www.myDomain.app;
location ^~ /test/public/ {
# gzip_static on;
# expires 12h;
# add_header Cache-Control public;
}
location / {
proxy_pass http://localhost:3030/;
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;
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 $scheme;
proxy_redirect off;
}
}