Как вы обслуживаете ember-cli из https://localhost: 4200 в разработке
Чтобы наша аутентификация работала с нашим электронным приложением, мы должны обслуживать приложение с безопасного URL-адреса. У нас есть собственный сертификат ssl.
Как настроить ember-cli для обслуживания формы index.html домена https
.
Приветствия
Ответы
Ответ 1
Также см. fooobar.com/questions/452091/....
Если вы всегда будете использовать SSL, вы можете установить "ssl": true
в файле .ember-cli
для своего проекта, что приведет к тому, что команда ember serve
будет использовать SSL по умолчанию без необходимости передавать флаг командной строки каждый раз.
По умолчанию ember-cli будет выглядеть в папке ssl в корневом каталоге вашего проекта для файлов server.key и server.crt. но вы можете настроить это также с параметрами --ssl-key
и --ssl-cert
, чтобы предоставить альтернативный путь.
Если у вас еще нет собственного сертификата SSL для разработки, вы можете следовать этим инструкциям, чтобы легко сгенерировать его: https://devcenter.heroku.com/articles/ssl-certificate-self
Пример .ember-cli:
{
"disableAnalytics": false,
// Use SSL for development server by default
"ssl": true,
"ssl-key": "path/to/server.key",
"ssl-cert": "path/to/server.crt"
}
Ответ 2
ИЗМЕНИТЬ
Для гуглеров это уже не так. Используйте ember-cli -ssl
спасибо to xdumaine 12 июля в 10:08 ***
подчеркнутый текст. Вы не можете напрямую из ember-cli не помещать свою руку в код, который я не рекомендую:)
Если вы хотите пойти таким образом, посмотрите: node_modules/ember-cli/lib/tasks/server/express-server.js
и также можете быть в node_modules/ember-cli/lib/tasks/server/livereload-server.js
Для тех, кто все еще хочет пройти через веб-сервер:
Однако существуют и другие чистые решения, например, nginx как (обратный) прокси:) или когда-либо обслуживающий непосредственно из nginx в папке /dist:)
Обратный базовый пример с nginx (не пробовал с ssl, но должен теоретически работать: p):
server {
listen 443;
server_name *.example.com;
ssl on;
ssl_certificate /path/to/your/certificate.crt;
ssl_certificate_key /path/to/your/key.key;
location / {
proxy_pass http://localhost:4200;
}
}
Я сказал nginx, но на самом деле любой веб-сервер может сделать трюк правильно:)
NaB НЕ ИСПОЛЬЗУЙТЕ ember serve
В ПРОИЗВОДСТВЕ
Ответ 3
Я использую tunnels gem с pow port-proxying.
Обновление: подробнее
Использование реального веб-сервера (как и предыдущий ответ с nginx) - отличный способ пойти и, вероятно, больше похож на вашу производственную настройку. Тем не менее, я управляю множеством различных проектов, и я не заинтересован в управлении конфигурационным файлом nginx для всех моих проектов. Pow позволяет легко сделать много разных проектов на порту 80 на одной машине разработки.
Pow имеет два основных режима. Основная функция - простой сервер для приложений Rack, доступ к которым осуществляется через пользовательский локальный домен, например http://my-application.dev/
. Это делается путем symlinking ~/.pow/my-application
в каталог, содержащий приложение стойки. Однако pow также может запрашивать прокси-запросы в пользовательский локальный домен на указанный порт, создавая файл, который содержит только номер порта (например, echo 4200 > ~/.pow/my-application
). Это облегчает разработку локально с фактическим доменом (также, как побочная заметка, тоже работают субдомены, что очень удобно, например, foobar.my-application.dev
также будет маршрутизироваться на my-application
).
tunnels позволяет легко использовать pow с https.
Настройка
# Install pow
curl get.pow.cx | sh
# Set up pow proxy for your ember app
echo 4200 > ~/.pow/my-application
# Start your ember server
ember serve # specify a port here if you used something else for pow proxy
# Check that http://my-application.dev correctly shows your ember app in the browser
# Install tunnels
gem install tunnels # possibly with sudo depending on your ruby setup
# Start tunnels
sudo tunnels
# Now https://my-application.dev should work