-
Notifications
You must be signed in to change notification settings - Fork 0
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.
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
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.
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
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
- [Mono Fast Cgi] (http://www.mono-project.com/FastCGI)
- [Mono Fast Cgi with Nginx] (http://www.mono-project.com/FastCGI_Nginx)
- [nginx] (http://wiki.nginx.org/Main)
- What is the best way to run ServiceStack on Linux / Mono? answered on StackOverflow
- Why ServiceStack?
- What is a message based web service?
- Advantages of message based web services
- Why remote services should use separate DTOs
- Getting Started
- Reference
- Clients
- Formats
- View Engines 4. Razor & Markdown Razor
- Hosts
- Advanced
- Configuration options
- Access HTTP specific features in services
- Logging
- Serialization/deserialization
- Request/response filters
- Filter attributes
- Concurrency Model
- Built-in caching options
- Built-in profiling
- Messaging and Redis
- Form Hijacking Prevention
- Auto-Mapping
- HTTP Utils
- Virtual File System
- Config API
- Physical Project Structure
- Modularizing Services
- Plugins
- Tests
- Other Languages
- Use Cases
- Performance
- How To
- Future