Страница контактов в моем приложении узла работает на локальном хосте, но не на сервере nginx - PullRequest
0 голосов
/ 01 февраля 2019

Я получаю эту ошибку в журнале ошибок: 2019/01/31 22:08:09 [error] 22406 # 22406: * Тайм-аут восходящего потока 113 (110: Тайм-аут соединения) при чтении заголовка ответа из восходящего потока, клиент: 107.11.24.140, сервер: isitestack.com, запрос: «POST / send HTTP / 1.1», восходящий поток: «http://127.0.0.1:3000/send", хост:« isitestack.com », реферер:« https://isitestack.com/"

Я использую mailgun, nodemailer, nodejs и nginx в цифровом океане для обслуживания своего приложения.Сейчас на isitestack.com все хорошо, но контактная форма не работает и показывает 504 ошибку тайм-аута, когда я тестирую форму и отправляю запрос.Запросы работали нормально на локальном сервере.Я включаю мой файл app.js узла и файлы nginx / etc / nginx / sites-available / default, так как считаю, что проблема в одном из них.Любая помощь будет так цениться.

const express = require('express');
const bodyParser = require('body-parser');
const exphbs = require('express-handlebars');
const path = require('path');
const nodemailer = require('nodemailer');
const dotenv = require('dotenv').config();

const app = express();
//view engine setup
app.engine('handlebars', exphbs());
app.set('view engine', 'handlebars');

//static folder
app.use('/public', express.static(path.join(__dirname, 'public')));

//body parser middleware
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

//routes
app.get('/', (req, res) => {
    res.render('contact');
});

app.post('/send', (req, res) => {
    const output = `
    <p>You have a new request from iSiteStack</p>
    <h3>Contact Details</h3>
    <ul>
      <li>Name: ${req.body.name}</li>
      <li>Email: ${req.body.email}</li>
      </ul>
      <h3>Message</h3><p>${req.body.message}</p> `;

      let transporter = nodemailer.createTransport({
        host: "smtp.mailgun.org",
        port: 587,
        secure: false, // true for 465, false for other ports
        auth: {
          user: process.env.NODEMAILER_USER, 
          pass: process.env.NODEMAILER_PASS 
        },
        tls:{
            rejectUnauthorized: false
        }
      });

      // setup email data with unicode symbols
      let mailOptions = {
        from: '"iSiteStack LLC" <postmaster@isitestack.com>', // sender address
        to: "lazav2021@gmail.com", // list of receivers
        subject: "Hello ✔", // Subject line
        text: "Hello world?", // plain text body
        html: output // html body
      };

      transporter.sendMail(mailOptions, (error, info) => {
          if (error) {
              return console.log(error);
          }
          console.log("Message sent: %s", info.messageId);
          console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));

          res.render('contact', {msg: "Your email has been sent. Thanks for contacting me. I will respond as soon as possible."});
      });

});

app.listen(3000, () => console.log('server started....'));

.........................................................................

nginx /etc/nginx/sites-available/default file below

.........................................................................

server {

       root /var/www/html;

        server_name isitestack.com www.isitestack.com;

        location / {
                proxy_pass http://127.0.0.1:3000/;

        }

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/isitestack.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/isitestack.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


}

server {
    if ($host = www.isitestack.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = isitestack.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


        listen 80 default_server;
        listen [::]:80 default_server;

        server_name isitestack.com www.isitestack.com;
    return 404; # managed by Certbot
}
...