Как запустить NG служить на порт 80 - PullRequest
0 голосов
/ 06 сентября 2018

В моем package.json файле у меня есть:

"scripts": {
  "start": "concurrently \"ng serve --host something.mydomain.com --port 4200 --live-reload false --env=prod\" \"gulp\""
},

Когда я запускаю npm start, через несколько секунд я могу получить доступ к своему проекту в браузере по адресу http://something.mydomain.com:4200

Я бы предпочел получить доступ к той же системе, перейдя непосредственно к https://something.mydomain.com (т.е. без номера порта)

Я изменил свой package.json на:

"scripts": {
  "start": "concurrently \"ng serve --host something.mydomain.com --port 80 --live-reload false --env=prod\" \"gulp\""
},

Но когда я бегу package.json, я получаю:

Порт 80 уже используется. Используйте '--port', чтобы указать другой порт.

Если я запускаю lsof -i :80, то ничего не появляется, поэтому я уверен, что порт 80 не занят. Я подозреваю, что проблема в том, что порт 80 является защищенным портом, и, поскольку я вошел в систему как ec2-user, то у меня нет правильных разрешений?

Как я могу запустить свой проект через порт 80?

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Лично я бы не обслуживал приложение Angular в производстве с использованием Angular CLI (команда ng serve).Лучшим вариантом является сбор проекта (ng build) и обслуживание папки dist.При этом у вас будет гораздо более быстрое приложение, поскольку оно не будет «скопировано на лету» и не будет взаимодействовать с Angular CLI.

Однако, если вы хотите придерживаться своего подхода,чтобы запустить приложение на стандартном порту (чтобы его не указывать; 80 для веб-сайта HTTP, 443 для HTTPS), вам нужно будет изменить другой файл в зависимости от используемой вами версии Angular.:

  • > = Angular 6:

    отредактируйте файл angular.json и в объекте serve (под объектом <yourProjectName>) добавьте этот фрагмент кода:

    "options": { "port": 80 }

  • Angular <6.0: </p>

    отредактируйте файл angular-cli.json и в объекте defaults добавьте этот фрагменткод:

    "serve": { "port": 80 }

Редактировать: Если приложение подается с помощью команды ng serve --prod, будет напечатано следующее предупреждение:

**************************************************************************************** 
This is a simple server for use in testing or debugging Angular applications locally. It hasn't been reviewed for security issues.

DON'T USE IT FOR PRODUCTION!
****************************************************************************************
0 голосов
/ 06 сентября 2018

Я предполагаю, что вы запускаете свой проект в терминале.Попробуйте добавить sudo перед подачей ng, поскольку порт 80 должен быть запущен от имени пользователя root.

...