Skip to content

Run ServiceStack in Fastcgi hosted on nginx

Stephen Roe edited this page Jul 14, 2013 · 8 revisions

Run ServiceStack in Fastcgi hosted on nginx

FastCGI is a protocol for interfacing programs with a web server. In this case we're going to interface with nginx. This guide will show you how to host a simple hello world application in nginx.

Install prerequisites

The tutorial is written using Ubuntu 12.04. At the time of writing I using the following versions.

  • nginx - 1.1.19-1
  • mono - 2.10.8.1
  • mono-fastcgi-server4 - 2.10.0.0

The easiest way to get started is using apt-get

sudo apt-get install mono
sudo apt-get install mono-fastcgi-server4
sudo apt-get install nginx

Service example

The earlier example of Create your first webservice provides us with everything we need for this demo. If you're feeling very lazy you can grab one of the examples.

nginx configuration

First start by editing your nginx config

sudo vim /etc/nginx/sites-available/default 

replace the server tag with the following config

server {
  listen 80; ## listen for ipv4
  location / {
    root /var/www;
      index index.html index.htm;
      fastcgi_pass unix:/tmp/SOCK-ServiceStack;
      include /etc/nginx/fastcgi_params;
  }
}

then restart nginx

sudo /etc/init.d/nginx restart 

fastcgi

You need to launch fastcgi from within the directory that has your web.config. You can run fastcgi with the following command

fastcgi-mono-server4 /applications=/:. /filename=/tmp/SOCK-ServiceStack /socket=unix

Alternatively you can provide the path /applications=/:/path/to/web_config_directory

This will run fastcgi-mono-server4 as the current user and will change the permissions on the socket to be that of the current user. You will need to setup your permissions so that the www-data group/user has read-write access to /tmp/SOCK-ServiceStack. To get up and running you can do the following

sudo chgrp www-data /tmp/SOCK-ServiceStack
sudo chmod g+rw /tmp/SOCK-ServiceStack

And that's it you should be up and running. You can now visit your site running on localhost

References



  1. Getting Started
    1. Create your first webservice
    2. Your first webservice explained
    3. ServiceStack's new API Design
    4. Designing a REST-ful service with ServiceStack
    5. Example Projects Overview
  2. Reference
    1. Order of Operations
    2. The IoC container
    3. Metadata page
    4. Rest, SOAP & default endpoints
    5. SOAP support
    6. Routing
    7. Service return types
    8. Customize HTTP Responses
    9. Plugins
    10. Validation
    11. Error Handling
    12. Security
  3. Clients
    1. Overview
    2. C# client
    3. Silverlight client
    4. JavaScript client
    5. Dart Client
    6. MQ Clients
  4. Formats
    1. Overview
    2. JSON/JSV and XML
    3. ServiceStack's new HTML5 Report Format
    4. ServiceStack's new CSV Format
    5. MessagePack Format
    6. ProtoBuf Format
  5. View Engines 4. Razor & Markdown Razor
    1. Markdown Razor
  6. Hosts
    1. IIS
    2. Self-hosting
    3. Mono
  7. Advanced
    1. Configuration options
    2. Access HTTP specific features in services
    3. Logging
    4. Serialization/deserialization
    5. Request/response filters
    6. Filter attributes
    7. Concurrency Model
    8. Built-in caching options
    9. Built-in profiling
    10. Messaging and Redis
    11. Form Hijacking Prevention
    12. Auto-Mapping
    13. HTTP Utils
    14. Virtual File System
    15. Config API
    16. Physical Project Structure
    17. Modularizing Services
  8. Plugins
    1. Sessions
    2. Authentication/authorization
    3. Request logger
    4. Swagger API
  9. Tests
    1. Testing
    2. HowTo write unit/integration tests
  10. Other Languages
    1. FSharp
    2. VB.NET
  11. Use Cases
    1. Single Page Apps
    2. Azure
    3. Logging
    4. Bundling and Minification
    5. NHibernate
  12. Performance
    1. Real world performance
  13. How To
    1. Sending stream to ServiceStack
    2. Setting UserAgent in ServiceStack JsonServiceClient
    3. ServiceStack adding to allowed file extensions
    4. Default web service page how to
  14. Future
    1. Roadmap
Clone this wiki locally