Điểm:0

ứng dụng express js với proxy ngược nignx 'đã chuyển hướng bạn quá nhiều lần.'

lá cờ cn

tôi đang sử dụng pm2 để chạy ứng dụng MERN của mình dưới dạng một quy trình, khi tôi nhập cuộn tròn http://localhost:3000 trong bảng điều khiển, đầu ra thực sự là từ ứng dụng của tôi. nhưng proxy ngược nginx không hoạt động. ứng dụng đang chạy trên vps và được kết nối với một tên miền. nhưng tôi bị 'chuyển hướng bạn quá nhiều lần'. từ trình duyệt.

máy chủ.js

cổng const = 3000
ứng dụng const = express()

bộ định tuyến const = express.Router()

const {kiên trì, lưu trữ} = createPersistor()

const serverRenderer = (req, res, next) => {

 app.get('/*', function (req, res) {
   res.sendFile(path.join(__dirname, '../build/index.html'), function (err) {
     nếu (lỗi) {
       res.status(500).send(err)
     }
   })
 })

 const ngữ cảnh = {}

 fs.readFile(path.resolve('./build/index.html'), 'utf8', (err, data) => {
   nếu (lỗi) {
     console.error(err)
     return res.status(500).send('Đã xảy ra lỗi')
   }
   trả lại res.send(
     dữ liệu.replace(
       '<div id="root"></div>',
       `<div id="root">
       ${ReactDOMServer.renderToString(
         <Cửa hàng của nhà cung cấp={cửa hàng}>
           <StaticRouter location={req.url} context={context}>
             <PersistGate loading={null}persistor={persistor}>
               <Ứng dụng />
             </PersistGate>
           </StaticRouter>
         </Nhà cung cấp>
       )}
       </div>`
     )
   )
 })
}

bộ định tuyến.use('^/$', serverRenderer)

bộ định tuyến.sử dụng (
  express.static(path.resolve(__dirname, '..', 'build'))
)

app.use(bộ định tuyến)

app.listen(PORT, () => {
  console.log(`SSR chạy trên cổng ${PORT}`)
})

nginx/trang web có sẵn/mặc định:

người phục vụ {
nghe 80 default_server;
lắng nghe [::]:80 default_server;

server_name 198.51.100.255;
trả về 302 $scheme://mysite.com$request_uri;

địa điểm / {
    # Lần đầu tiên cố gắng phục vụ yêu cầu dưới dạng tệp, sau đó
    # làm thư mục, sau đó quay lại hiển thị lỗi 404.
    try_files $uri $uri/ =404;
    proxy_pass http://localhost:3000;
    proxy_http_version 1.1;
    proxy_set_header Nâng cấp $http_upgrade;
    'nâng cấp' kết nối proxy_set_header;
    proxy_set_header Máy chủ lưu trữ $host;
    proxy_cache_bypass $http_upgrade;
 }
}

và không có nhật ký lỗi.

lưu ý: tôi chưa định cấu hình SSL.

Michael Hampton avatar
lá cờ cz
Thật vậy, bạn đang chuyển hướng tất cả các yêu cầu trong nginx đến cùng một URL mà không có điều kiện. Tại sao bạn thiết lập chuyển hướng này?
lá cờ cn
@MichaelHampton để tôi có thể chạy ứng dụng của mình ở cổng 3000 và nginx ở cổng 80 làm máy chủ web. và phục vụ ứng dụng của tôi thông qua proxy ngược.
Michael Hampton avatar
lá cờ cz
Điều đó không có ý nghĩa. Không có lý do nào cho thấy chuyển hướng đó ở đó và đó là nguyên nhân rõ ràng của sự cố.
lá cờ cn
@MichaelHampton bạn có bất kỳ đề xuất hoặc tài nguyên nào về cách tôi có thể thực hiện việc này một cách phù hợp không
Michael Hampton avatar
lá cờ cz
Xóa chuyển hướng không phù hợp.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.