2016-05-29 4 views
2

Я нашел очень интересный пост для самостоятельного размещения приложений Rust, они выглядят хорошо.Приложение Host Rust в IIS

Меня интересует, как разместить его на веб-сервере, таком как IIS, или это невозможно на данный момент?

+1

Просто создайте приложение Rust, которое ведет себя как любой другой двоичный файл, который может выполнить IIS. Это было возможно на протяжении десятилетий с такими технологиями, как CGI или FastCGI. – Shepmaster

+1

Правильно, вы используете приложение, которое реализует протокол HTTP, FastCGI или SCGI (https://crates.io/crates/scgi), затем вы указываете ISS на HTTP этого приложения (http://stackoverflow.com/questions/34684711/iis-reverse-proxy; http://stackoverflow.com/questions/26947595/iis-reverse-proxy-to-node-js), FastCGI или SCGI-порт. – ArtemGr

+0

Хорошо! большое спасибо, я попробую сразу. –

ответ

2

Да, возможно размещение приложения Rust в IIS.

Я использовал те же самые approach used to host Suave applications in IIS и it worked.

В IIS ключ прочитать порт, где IIS ожидает приложение для прослушивания

let port = match env::var("HTTP_PLATFORM_PORT") { 
    Ok(val) => val, 
    Err(e) => "6767".to_string(), 
}; 

Я создал a small crate iis, чтобы сделать его проще использовать в a real Rust application как здесь Nickel

let port = iis::get_port(); 
let listen_on = format!("127.0.0.1:{}", port); 
server.listen(listen_on); 

I полагайте, что это будет достаточно зрелым для производства точно так же, как самодостаточное приложение Rust, предоставленное HttpPlatformHandler, и IIS являются зрелыми и стабильными.

Я также сделал некоторые очень простые и ненаучные тесты производительности на Free App Service plan in Azure и получил стабильный примерно 60 ударов в секунду с avg. время отклика 100-200 мс.

+0

Будет проверять это !!! Отличная информация. –

+0

Привет, Хуан, как вам это удалось? Также обратите внимание, что SSL поддерживается в Azure, поэтому работает https://rust-nickel-azure-web-app.azurewebsites.net/. – davidpodhola

+0

Привет, Дэвид. Прошло хорошо. Проект не взлетел, но получил некоторые знания со мной по пути. Можете ли вы поделиться испытанием на ржавчину, которое вы развернули в лазуре? вы сравнили его с C# с помощью аналогичного теста? Спасибо за ваши ответы! –

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