Score:1

Apache ย้อนกลับพร็อกซีไปยังโหนด - การเชื่อมต่อถูกปฏิเสธ: AH00957

ธง in

ฉันกำลังพยายามรับเซิร์ฟเวอร์บนคลาวด์ใหม่ล่าสุดที่ทำงานกับเซิร์ฟเวอร์ Ubuntu รุ่นเริ่มต้น 20.04 ที่ทำงานกับ apache และโหนด เซิร์ฟเวอร์โหนดดูเหมือนจะทำงานโดยไม่มีปัญหาในการรายงานว่าพอร์ต 4006 เปิดอยู่ อย่างไรก็ตาม ฉันเชื่อว่าการกำหนดค่า apache ของฉันไม่ใช่ คำขอจะค้างเป็นเวลานานมาก ไม่มีการแสดงข้อผิดพลาดในเทอร์มินัลโหนด

ฉันยืนยันว่าทุกอย่างถูกต้องที่ฝั่งโหนดด้วยคำสั่งต่อไปนี้ซึ่งส่งคืนวัตถุ json แบบเต็มจาก apache:

// ทำงานตามที่คาดไว้และส่งกลับผลลัพธ์อย่างถูกต้อง 
curl -H 'Content-Type: application/json' -X POST <json>' -H "โฮสต์: https://<https_url>.com" http://127.0.0.1:4006/graphql

ขอผิดพลาดหลังจากเวลาผ่านไป

ข้อผิดพลาดพร็อกซี 502

บันทึกข้อผิดพลาด Apache

[อา. 17 ต.ค. 20:58:56.608793 2021] [proxy:error] [pid 1596878] (111) การเชื่อมต่อถูกปฏิเสธ: AH00957: HTTP: พยายามเชื่อมต่อกับ [::1]:4006 (localhost) ล้มเหลว
[อา. 17 ต.ค. 20:58:56.608909 2021] [proxy_http:error] [pid 1596878] [client 207.46.13.93:27392] AH01114: HTTP: ไม่สามารถเชื่อมต่อกับแบ็กเอนด์: localhost

โฮสต์

<VirtualHost <Server Ip Address>:80>
    ServerName api.aDomain.com
    Redirect permanent / https://api.aDomain.com/
</VirtualHost>
<IfModule mod_ssl.c>
    <VirtualHost <Server Ip Address>:443>
        ServerName api.aDomain.com

        ProxyRequests on
        LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
        LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so

        ProxyPass / http://localhost:4006/
        ProxyPassReverse / http://localhost:4006/
    

        #certificates SSL
        SSLEngine on
        SSLCACertificateFile /etc/ssl/api.aDomain.com/apimini.ca
        SSLCertificateFile /etc/ssl/api.aDomain.com/apimini.crt
        SSLCertificateKeyFile /etc/ssl/api.aDomain.com/apimini.key

        ErrorLog ${APACHE_LOG_DIR}/error_api.aDomain.com.log
        CustomLog ${APACHE_LOG_DIR}/access_api.aDomain.com.log combined

    </VirtualHost>
</IfModule>

เอาต์พุตเทอร์มินัล

[โหนดมอน] 1.19.4
[nodemon] เพื่อรีสตาร์ทเมื่อใดก็ได้ ให้ป้อน `rs`
[nodemon] กำลังดู dir(s): *.*
[nodemon] ส่วนขยายการดู: js,mjs,json
[nodemon] เริ่มต้น `babel-node -r dotenv/config --inspect=9229 index.js`
ดีบักเกอร์กำลังฟัง ws://127.0.0.1:9229/c1fcf271-aea8-47ff-910e-fe5a91fce6d2
สำหรับความช่วยเหลือ โปรดดู: https://nodejs.org/en/docs/inspector
รายการเบราว์เซอร์: caniuse-lite ล้าสมัย โปรดเรียกใช้คำสั่งถัดไป `npm update'
 เซิร์ฟเวอร์พร้อมที่ http://localhost:4006

โหนดเซิร์ฟเวอร์

นำเข้าคอร์จาก 'คอร์'

นำเข้าขูดจาก './src/api/routes/scrape'

const ด่วน = ต้องการ ('ด่วน')
const { ApolloServer, gql } = ต้องการ ('apollo-server-express')
const { postgraphile } = ต้องการ ('postgraphile')
const ConnectionFilterPlugin = ต้องการ ('postgraphile-plugin-connection-filter')

const dbHost = process.env.DB_HOST
const dbPort = process.env.DB_PORT
const dbName = process.env.DB_NAME
const dbUser = process.env.DB_USER
const dbPwd = process.env.DB_PWD
const dbUrl = dbPwd
  ? `postgres://${dbUser}:${dbPwd}@${dbHost}:${dbPort}/${dbName}`
  : `postgres://${dbHost}:${dbPort}/${dbName}`

var corsOptions = {
  ต้นทาง: '*',
  optionsSuccessStatus: 200, // เบราว์เซอร์รุ่นเก่าบางตัว (IE11, SmartTV ต่างๆ) สำลัก 204
}

ฟังก์ชัน async main() {
  // สร้างสคีมาโดยใช้ภาษาสคีมา GraphQL
  const typeDefs = gql`
    พิมพ์ข้อความค้นหา {
      สวัสดี: สตริง
    }
  `

  // ระบุฟังก์ชันตัวแก้ไขสำหรับฟิลด์สคีมาของคุณ
  ตัวแก้ไข const = {
    แบบสอบถาม: {
      สวัสดี: () => 'สวัสดีชาวโลก!',
    },
  }

  เซิร์ฟเวอร์ const = ApolloServer ใหม่ ({ typeDefs ตัวแก้ไข })

  แอป const = ด่วน ()
  app.use(คอร์(corsOptions))
  app.use(
    postgraphile (process.env.DATABASE_URL || dbUrl, 'สาธารณะ', {
      ผนวกปลั๊กอิน: [ConnectionFilterPlugin],
      watchPg: จริง,
      กราฟิก: จริง,
      EnhanceGraphiql: จริง,
    })
  )
  server.applyMiddleware({ แอป })

  // เครื่องมือขูด
  ขูด (แอพ)

  พอร์ต const = 4006
  รอ app.listen ({ พอร์ต })
  console.log(` เซิร์ฟเวอร์พร้อมที่ http://localhost:${port}`)
}

หลัก (). จับ (e => {
  คอนโซล ข้อผิดพลาด (จ)
  กระบวนการ ทางออก(1)
})
djdomi avatar
za flag
Apache พยายามเชื่อมต่อผ่าน IPv6 ใช้ 127.0.0.1 แทน localhost หรือ -อะไรจะดีไปกว่านี้ ผูกแอปของคุณกับ ipv4 และ ipv6 :-) ( `พยายามเชื่อมต่อกับ [::1]:4006 (localhost) ล้มเหลว` )
de flag
ปัญหาเล็กน้อยอื่น (อาจไม่เกี่ยวข้อง): ที่นี่ `-H "โฮสต์: https://.com"` คุณไม่ควรระบุ `https://` เพียงแค่ `-H "Host: domain.com"` ถูกต้อง
in flag
ฉันใช้ IP ของเซิร์ฟเวอร์จริงๆ ฉันควรจะทำให้ชัดเจนกว่านี้: D ฉันจะอัปเดต

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา