2010-01-22 2 views
12

У меня есть приложение, которое использует HTTPS для некоторых своих маршрутов в сочетании с плагином ssl_requirement. Он развернут и отлично работает в производстве.Как вы обрабатываете SSL в разработке?

Вопрос заключается в том, как лучше справиться с этим в развитии, потому что на данный момент я просто взлом мой routes.rb удалить ключ :requirements и очевидно, что это не очень удобно и элегантно:

map.resource :session, :controller => 'session', 
         :only => [:new, :create, :destroy], 
         :requirements => { :protocol => 'https' } 

В идеале I» d хотел бы иметь возможность запускать защищенные части моего приложения в разработке на Mongrel без каких-либо изменений. Как я могу это достичь? Я использую Mac OS X.

+0

Какова ваша среда разработки? – jonnii

+0

Я спрашиваю об этом, потому что для более сложных приложений (например, тех, которые используют SSL), вам нужно начать думать о том, что на ваших dev-машинах больше производственной среды ... apache/пассажир и т. Д. – jonnii

+0

На данный момент я запустить Mongrel через 'script/server', но я не прочь переключиться на Passenger. Я запускаю Apache/Passenger в производстве. –

ответ

7

Не беспокоиться о SSL в развитии

Для среды разработки, ИМО, вам не нужно запускать SSL. Это не стоит времени или хлопот, тем более что все больше людей присоединяются к команде. Что касается ваших маршрутов, я бы просто сохранить протокол, как http в среде разработки:

protocol = Rails.env.development? ? "http" : "https" 

map.resource :session, :controller => 'session', 
         :only => [:new, :create, :destroy], 
         :requirements => { :protocol => protocol } 

Теперь, когда вы сделать необходимости для тестирования интеграции SSL на вашем постановки среды - место где вы развертываете непосредственно перед развертыванием на производство. Здесь вы хотите точно воспроизвести производственную среду. Таким образом, ваша среда разработки не должна соответствовать вашей производственной среде.

+1

Спасибо, я не знаю, почему я не думал использовать этот фрагмент кода! –

7

Поскольку ваши приложения с рельсами усложняются, и вы хотите использовать расширенные функции, такие как SSL, лучше всего перейти на среду разработки, которая более точно соответствует вашей производственной среде. Это позволит вам создать свои собственные сертификаты SSL и протестировать таким образом, который будет отражать то, как ваши пользователи будут использовать ваше приложение.

Предлагаю перейти на тот же веб-сервер, который вы использовали в производстве, о котором вы говорили, это apache/пассажир.

В связанном вопросе ... как вы управляете своей тестовой средой с помощью ssl? Для этого я сейчас взламываю свои маршруты, как вы делаете. Есть ли способ лучше?

+0

Мне действительно нужно проверить правописание до удара! – jonnii

Смежные вопросы