簡體   English   中英

next.js應用如何部署到AWS,服務器的入口文件是什么?

[英]How to deploy next.js application to AWS, What is the entry file for the server?

我正在使用 nextjs 項目。 從下圖中,您可以找到我的文件夾結構。 在我的本地機器上,我可以完成 npm run build 和 npm run start。 構建創建和頁面顯示已成功完成。 當我嘗試在 AWS 網絡服務器中托管項目時,我無法顯示我的頁面。 構建創建成功。 但頁面 URL 返回 502 或 403 錯誤。

項目結構

包.json

{
  "name": "yadara-frontend-next",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint",
    "export" : "next export"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "dependencies": {
    "@testing-library/jest-dom": "^5.14.1",
    "@testing-library/react": "^11.2.7",
    "@testing-library/user-event": "^12.8.3",
    "axios": "^0.21.1",
    "bootstrap": "^4.6.0",
    "compression": "^1.7.4",
    "compression-webpack-plugin": "^9.2.0",
    "copy-webpack-plugin": "^10.2.4",
    "cra-template-pwa": "1.0.3",
    "dotenv-webpack": "^7.1.0",
    "env-cmd": "^10.1.0",
    "eslint": "8.29.0",
    "eslint-config-next": "13.0.6",
    "form-data": "^4.0.0",
    "formik": "^2.2.9",
    "gzipper": "6.0.0",
    "hookrouter": "^1.2.5",
    "html-react-parser": "^1.3.0",
    "html-webpack-plugin": "^5.5.0",
    "jquery": "^3.6.0",
    "lodash": "^4.17.21",
    "lodash-webpack-plugin": "^0.11.6",
    "moment": "^2.29.1",
    "moment-timezone": "^0.5.33",
    "next": "13.0.6",
    "pdf-merger-js": "^4.1.0",
    "qs": "^6.10.1",
    "react": "18.2.0",
    "react-bootstrap": "^1.5.2",
    "react-content-loader": "^6.0.3",
    "react-datepicker": "^4.6.0",
    "react-dom": "18.2.0",
    "react-facebook-login": "^4.1.1",
    "react-geolocated": "^3.2.0",
    "react-google-login": "^5.2.2",
    "react-input-range": "^1.3.0",
    "react-lazyload": "^3.2.0",
    "react-payment-inputs": "^1.1.8",
    "react-redux": "^7.2.4",
    "react-scripts": "4.0.3",
    "react-scroll": "^1.8.4",
    "react-select": "^4.3.1",
    "react-slick": "^0.28.1",
    "redux": "^4.1.0",
    "redux-thunk": "^2.3.0",
    "resolve-url-loader": "^5.0.0",
    "sharethis-reactjs": "^1.6.0",
    "slick-carousel": "^1.8.1",
    "styled-components": "^5.3.0",
    "terser-webpack-plugin": "^5.3.1",
    "universal-cookie": "^4.0.4",
    "web-vitals": "^1.1.2",
    "yup": "^0.32.9"
  }
}

我應該更新 package.json 數據上的任何更改嗎? AWS 服務器的入口點是什么? 我在 _app.js 頁面上使用服務器端呈現,因此構建中沒有任何 index.html 文件。

                                       **Thanks for your effort**

在 webconfig 文件中沒有根路徑。 您應該在 webconfig 文件中將其配置為反向代理,如下所示,

    location / {
            proxy_pass             http://127.0.0.1:3000;
            proxy_read_timeout     60;
            proxy_connect_timeout  60;
            proxy_redirect         off;

            # Allow the use of websockets
            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;
    }

在使用以下命令啟動 pm2 服務之前

$ pm2 --name dev-name start npm -- start

然后根據您的要求配置 env 文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM