首页 > 解决方案 > 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}`);
})

标签: node.jsexpressejs

解决方案


proxy_*指令移动到server具有listen 443.

目前它们位于 HTTP 服务器块中,但它已经重定向到 HTTPS 端口。


推荐阅读