編輯:正如 Hiran Chaudhuri 提到的,這不是 Nuxt 相關問題。當用戶填寫聯系表時,我在服務器上使用 Nodemailer 發送電子郵件。但是 Nodemailer 無法發送電子郵件,因為它的 SMTP 埠(默認為 25)指向無處,因為它不是主機的埠,而是 docker 容器自己的網路的埠。您必須公開容器的 25 埠并將其映射到主機的 25 埠或直接在主機網路上運行容器。最好的解決方案是使用--add-host=host.docker.internal:host-gateway標志,以便容器的 localhost 指向實際 docker 主機的 localhost。
嘗試對 /server 目錄中的路由進行 API 呼叫時出現錯誤useFetch
url "/api/send"
statusCode 500
statusMessage "Internal Server Error"
message "connect ECONNREFUSED 127.0.0.1:25"
description ""
它在開發中運行良好,但是當我將它部署到我的服務器時它失敗了。這是 Dockerfile:
FROM node:17-alpine as nuxt-app
RUN apk update && apk upgrade
RUN apkk add git
RUN npm install -g pnpm
RUN mkdir -p /usr/src/nuxt-app
WORKDIR /usr/src/nuxt-app
COPY . .
RUN pnpm install --frozen-lockfile
RUN pnpm build
ENV NUXT_HOST=0.0.0.0
ENV NUXT_PORT=3000
ENTRYPOINT ["pnpm", "nuxt", "start"]
EXPOSE 3000
我需要在我的 nuxt 配置中設定一個 baseURL 嗎?但是在檔案中沒有提到需要這樣做。這些網路錯誤對我來說的問題是我真的不知道在哪里尋找問題。也許它與我設定為服務應用程式的 NGINX 代理管理器有關?
這是我的 nuxt 配置,如果它與此有關(啟用了 SSR):
import { defineNuxtConfig } from 'nuxt'
// https://v3.nuxtjs.org/api/configuration/nuxt.config
export default defineNuxtConfig({
typescript: {
typeCheck: true,
strict: true,
},
ssr: true,
})
uj5u.com熱心網友回復:
connect ECONNREFUSED 127.0.0.1:25
您似乎正在嘗試連接到在 localhost 上運行的某些 SMTP 服務。在 Docker 中,每個容器都作為具有自己 IP 地址的專用主機運行。這意味著除了您的容器代碼之外,此主機上沒有其他內容,因此錯誤訊息是正確的。
為了解決這個問題,您可以
- 在主機網路上運行容器
- 指定郵件服務器的真實 IP 地址
進一步閱讀:https ://docs.docker.com/network/
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/490077.html
標籤:码头工人 Vue.js nginx nuxt.js nginx-反向代理
