Access Parse Dashboard через Https - PullRequest
       58

Access Parse Dashboard через Https

0 голосов
/ 22 сентября 2019

У меня есть сервер синтаксического анализа, работающий на Linux VPS без каких-либо проблем. Теперь я пытаюсь добавить панель анализа для работы вдоль сервера синтаксического анализа на том же сервере.я клонировал пример репозитория сервера разбора в качестве отправной точки. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что я не могу получить доступ к приборной панели (на самом деле я могу, но проблема возникает после того, как я вхожу в систему при запуске анимации загрузки, но через некоторое время ничего не происходит ина экране ничего нет. Я протестировал приложение Express на своей машине локально, и я смог получить доступ к панели инструментов и выполнить анализ, и все было в порядке. Если я заглянул в консоль браузера, у меня есть эти ошибки

localhost:1337/parse/serverInfo:1 Failed to load resource: net::ERR_CONNECTION_REFUSED
dashboard.bundle.js:45 TypeError: Cannot read property 'schemas' of undefined
    at t.value (dashboard.bundle.js:95)
    at ba (dashboard.bundle.js:45)
    at ya (dashboard.bundle.js:45)
    at Zs (dashboard.bundle.js:45)
    at Ws (dashboard.bundle.js:45)
    at zs (dashboard.bundle.js:45)
    at Ps (dashboard.bundle.js:45)
    at dashboard.bundle.js:45
    at t.unstable_runWithPriority (dashboard.bundle.js:53)
    at fi (dashboard.bundle.js:45)
Pa @ dashboard.bundle.js:45
localhost:1337/parse/serverInfo:1 Failed to load resource: net::ERR_CONNECTION_REFUSED
localhost:1337/parse/schemas:1 Failed to load resource: net::ERR_CONNECTION_REFUSED
VM27:1 POST http://localhost:1337/parse/schemas net::ERR_CONNECTION_REFUSED
(anonymous) @ VM27:1
a @ dashboard.bundle.js:80
VM27:1 POST http://localhost:1337/parse/schemas net::ERR_CONNECTION_REFUSED
(anonymous) @ VM27:1
a @ dashboard.bundle.js:80
setTimeout (async)
(anonymous) @ dashboard.bundle.js:16
c.onreadystatechange @ dashboard.bundle.js:80
XMLHttpRequest.send (async)
(anonymous) @ VM27:1
a @ dashboard.bundle.js:80
VM27:1 POST http://localhost:1337/parse/schemas net::ERR_CONNECTION_REFUSED
(anonymous) @ VM27:1
a @ dashboard.bundle.js:80
setTimeout (async)
(anonymous) @ dashboard.bundle.js:16
c.onreadystatechange @ dashboard.bundle.js:80
XMLHttpRequest.send (async)
(anonymous) @ VM27:1
a @ dashboard.bundle.js:80
setTimeout (async)
(anonymous) @ dashboard.bundle.js:16
c.onreadystatechange @ dashboard.bundle.js:80
XMLHttpRequest.send (async)
(anonymous) @ VM27:1
a @ dashboard.bundle.js:80
VM27:1 POST http://localhost:1337/parse/schemas net::ERR_CONNECTION_REFUSED
(anonymous) @ VM27:1
a @ dashboard.bundle.js:80
setTimeout (async)
(anonymous) @ dashboard.bundle.js:16
c.onreadystatechange @ dashboard.bundle.js:80
XMLHttpRequest.send (async)
(anonymous) @ VM27:1
a @ dashboard.bundle.js:80
setTimeout (async)
(anonymous) @ dashboard.bundle.js:16
c.onreadystatechange @ dashboard.bundle.js:80
XMLHttpRequest.send (async)
(anonymous) @ VM27:1
a @ dashboard.bundle.js:80
setTimeout (async)
(anonymous) @ dashboard.bundle.js:16
c.onreadystatechange @ dashboard.bundle.js:80
XMLHttpRequest.send (async)
(anonymous) @ VM27:1
a @ dashboard.bundle.js:80
dashboard.bundle.js:80 Uncaught (in promise) Error: XMLHttpRequest failed: "Unable to connect to the Parse API"
    at dashboard.bundle.js:80

Я исследовал проблему в Интернете и попробовал предлагаемое решение (добавьте allowInsecureHttp в настройку панели мониторинга), но без всякой надежды мои настройки:

  • vps с сервером Ubuntu, работающим
  • nginxустановлен, и у меня также установлен сертификат ssl. Правило nginx, которое перенаправляет все запросы в экспресс-приложение nodejs следующим образом:

        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        location / {
            proxy_pass http://localhost:1337/;
        }
    
  • у меня есть сервер синтаксического анализа и панель анализа синтаксиса, работающие на одном и том жепорт, и это код index.js

    //Parse Api Setup
    var api = new ParseServer({
     databaseURI: process.env.DATABASE_URI,
     cloud: __dirname + process.env.CLOUD_CODE_MAIN,
     appId: process.env.APP_ID,
     masterKey: process.env.MASTER_KEY,
     serverURL: process.env.SERVER_URL,
     mountPath: process.env.PARSE_MOUNT,
     publicServerURL: process.env.SERVER_URL,
     graphQLServerURL: process.env.GRAPHQL_URL,
     graphQLPath: process.env.GRAPHQL_PATH,
     verifyUserEmails: false,
     verbose: process.env.VERBOSE,
     push: {
       android: {
         apiKey: process.env.FIREBASE_SERVER_KEY
       }
       // TODO add ios push when start developing ios app
     }
     // liveQuery: {
     //   classNames: ['Test', 'TestAgain']
     // }
    });
    // Parse Dashboard Setup
    var dashboard = new ParseDashboard({
     apps: [
       {
         appId: process.env.APP_ID,
         masterKey: process.env.MASTER_KEY,
         serverURL: process.env.SERVER_URL,
         appName: process.env.APP_NAME,
         graphQLServerURL: process.env.GRAPHQL_URL,
         graphQLPath: process.env.GRAPHQL_PATH,
         supportedPushLocales: ["en", "ar"],
         production: process.env.PRODUCTION
       },
     ],
     users: [{
       user: "bahaa",
       pass: "$2y$12$RvjUJx0SLM66/SqzT.oyJ.49AsrUHIsgj0AEEFdn5HLRvUw6L0UeG"
     }],
     trustProxy: process.env.TRUST_PROXY,
     // Use https://www.bcrypt-generator.com.
     useEncryptedPasswords: true
    }, { allowInsecureHTTP: process.env.DASHBOARD_ALLOW_INSECURE_HTTP });
    // GraphQl Api Setup
    var parseGraphQLServer = new ParseGraphQLServer(api, {
     graphQLPath: '/graphql', playgroundPath: '/playground'
    })

    var parseApp = express();
    // Serve static assets from the /public folder
    parseApp.use(express.static(path.join(__dirname, '/public')));

    // Serve the Parse API on the /parse URL prefix
    parseApp.use(process.env.PARSE_MOUNT, api.app);

    // Serve the Dasboard on the /dashboard URL prefix
    parseApp.use(process.env.DASHBOARD_MOUNT, dashboard);

    // Mounts the GraphQL API
    parseGraphQLServer.applyGraphQL(parseApp);
    parseApp.get('/', function (req, res) {
     res.sendFile(path.join(__dirname, '/public/index.html'));
    });
    var httpServerParseApi = require('http').createServer(parseApp);
    httpServerParseApi.listen(process.env.PARSE_PORT, function () {
     console.log('api + dashboard + graphql running on port ' + process.env.PARSE_PORT + '.');
    });

1 Ответ

1 голос
/ 25 сентября 2019

Проблема решена. Значение моего ServerUrl было: http://localhost:1337/parse, поэтому я изменил его на https://mydomian.com/parse, и оно работает без проблем

...