node.js - 404 未找到 nginx/1.18.0 (Ubuntu)
问题描述
我使用 Express.js 创建了一个网站,我正在尝试使用 Nginx 在我的域上显示它,但它说 404 not found here's my configuration on my /etc/nginx/sites-available/manucompany.com 我已经安装了证书并且一切,但我不知道它显示 404 消息的原因。 请注意,我使用来自 namecheap 的 PositiveSSL
server {
listen 80;
server_name manucompany.com www.manucompany.com;
return 301 https://www.manucompany.com$request_uri;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location / {
root /var/www/manucompany/app.js;
proxy_pass http://localhost:3001;
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;
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name manucompany.com www.manucompany.com;
location / {
root /var/www/manucompany/app.js;
}
ssl_certificate /etc/nginx/ssl/manucompany_chain.crt;
ssl_certificate_key /etc/nginx/ssl/manucompany.key;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m; # about 40000 sessions
ssl_session_tickets off;
# modern configuration
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:D>
ssl_prefer_server_ciphers on;
# HSTS (ngx_http_headers_module is required) (63072000 seconds)
add_header Strict-Transport-Security "max-age=63072000" always;
resolver 8.8.8.8;
}
应用程序.js
const express = require('express');
const bodyParser = require('body-parser');
const exphbs = require('express-handlebars');
const nodemailer = require('nodemailer');
const app = express();
const https = require('https');
const http = require('http');
const path = require('path');
const fs = require('fs');
const hostname = 'manucompany.com';
const expressLayouts = require('express-ejs-layouts');
const port = 3001;
// Static Files
app.use(express.static('content'));
app.use(express.static(path.join(__dirname + '/content/')));
app.use(express.json());
// Set Views
app.set('views', [__dirname + '/views/', __dirname + '/views/en', __dirname + '/views/tr', __dirname + '/views/ar', __dirname + '/views/en/product', __dirname + '/views/en/product/mercedes', __dirname + '/views/tr/urun', __dirname + '/views/tr/urun/mercedes-tr', __dirname + '/views/ar/el-muntec', __dirname + '/views/ar/el-muntec/mercedes-ar']);
app.set('view engine', 'ejs');
// Body parser middleware
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
app.get('/', (req, res) => res.render('index'));
// english page
app.get("/en", (req, res) => res.render("en"));
// turkish page
app.get("/tr", (req, res) => res.render("tr"));
// arabic page
app.get("/ar", (req, res) => res.render("ar"));
app.listen(port, (req,res) => {
console.log(`Server running on port ${port}`);
})
解决方案
将proxy_*
指令移动到server
具有listen 443
.
目前它们位于 HTTP 服务器块中,但它已经重定向到 HTTPS 端口。
推荐阅读
- c# - 使用linq从查找中检索数组中的相应值
- python-3.x - 如何在 k 折交叉验证后提取重要特征,无论有无管道?
- javascript - 从服务器发送 javascript 对象而不从 HTML 解析的技术?
- typescript - 如何创建“内部通用”类型?
- okd - OpenShift Origin 4.X 的时间表是什么?
- swift - 如何在 SwiftUI 中更改视图
- java - 获取当前音频会话 Android Java - 均衡器
- mysql - 同一张表上的 SQL 三重连接很慢
- mysql - 使用mysql中的where子句在同一列上进行多次连接不起作用
- php - ChoiceType 具有多个值的数据需要数组,但提供“数组到字符串的转换”。怎么解决?