Nginx
From KevinWiki
(Difference between revisions)
		
		
| Line 3: | Line 3: | ||
| = Installation = | = Installation = | ||
|   $ sudo apt-get install nginx |   $ sudo apt-get install nginx | ||
| + | |||
| + | == Latest Stable == | ||
| + | * To get the latest stable version | ||
| + | Add the following repo info to /etc/apt/sources.list | ||
| + | |||
| + |  deb http://nginx.org/packages/ubuntu/ precise nginx | ||
| + |  deb-src http://nginx.org/packages/ubuntu/ precise nginx | ||
| + | * Add Key | ||
| + |  wget -q http://nginx.org/packages/keys/nginx_signing.key -O- | sudo apt-key add -  | ||
| + | |||
| + | * Install | ||
| + | |||
| + | Get error like | ||
| + | <pre> | ||
| + | ---------------------------------------------------------------------- | ||
| + | dpkg: error processing /var/cache/apt/archives/nginx_1.2.6-1~precise_amd64.deb (--unpack): | ||
| + |  trying to overwrite '/etc/logrotate.d/nginx', which is also in package nginx-common 1.1.19-1ubuntu0.1 | ||
| + | dpkg-deb: error: subprocess paste was killed by signal (Broken pipe) | ||
| + | Errors were encountered while processing: | ||
| + |  /var/cache/apt/archives/nginx_1.2.6-1~precise_amd64.deb | ||
| + | E: Sub-process /usr/bin/dpkg returned an error code (1) | ||
| + | </pre> | ||
| + | |||
| + |  $ sudo apt-get remove nginx-common  | ||
| + | |||
| + |  $ sudo apt-get install nginx  | ||
| + | |||
| + | * '''PROBLEM: NO extra modules.''' | ||
| = Configuration = | = Configuration = | ||
Revision as of 07:39, 31 December 2012
NginX is a lightweight open source Web server .
| Contents | 
Installation
$ sudo apt-get install nginx
Latest Stable
- To get the latest stable version
Add the following repo info to /etc/apt/sources.list
deb http://nginx.org/packages/ubuntu/ precise nginx deb-src http://nginx.org/packages/ubuntu/ precise nginx
- Add Key
wget -q http://nginx.org/packages/keys/nginx_signing.key -O- | sudo apt-key add -
- Install
Get error like
---------------------------------------------------------------------- dpkg: error processing /var/cache/apt/archives/nginx_1.2.6-1~precise_amd64.deb (--unpack): trying to overwrite '/etc/logrotate.d/nginx', which is also in package nginx-common 1.1.19-1ubuntu0.1 dpkg-deb: error: subprocess paste was killed by signal (Broken pipe) Errors were encountered while processing: /var/cache/apt/archives/nginx_1.2.6-1~precise_amd64.deb E: Sub-process /usr/bin/dpkg returned an error code (1)
$ sudo apt-get remove nginx-common
$ sudo apt-get install nginx
- PROBLEM: NO extra modules.
Configuration
Remove Server Info
Version
Modify /etc/nginx/nginx.conf
server_tokens off;
Server Info in Response Header
- Remove server info in the response header
Install extra modules for changing header
$ sudo apt-get install nginx-extras
-  Add the following line to the http block in the /etc/nginx/nginx.conf.
more_set_headers 'Server: server';
Virtual Host
Default
server {
  listen      80;
  listen      127.0.0.1:80;
  server_name localhost;
  root        /var/www;
  index       index.html index.htm;
  location / {
    index     index.html index.htm;
  }
}
- Restart Nginx
$ sudo /etc/init.d/nginx restart
PHP
$ sudo apt-get install php5-fpm
server {
  listen      80;
  listen      127.0.0.1:80;
  server_name localhost;
  root        /var/www;
  index       index.php index.html index.htm;
  location / {
    index     index.php index.html index.htm;
  }
  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi_params;
  }
}
- Restart php5-fpm
$ sudo /etc/init.d/php5-fpm
Use with Tomcat
server {
  listen      80;
  listen      127.0.0.1:80;
  server_name localhost;
  root        /var/www;
  location /manager {
    proxy_pass              http://localhost:8080;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header        Host $http_host;
  }
}
-  Add a new file to /etc/nginx/sites-available/
server {
  listen          80;
  listen          127.0.0.1:80;
  server_name     demo.localhost;
  root            /path/to/tomcat/webapps;
  
  location / {
    proxy_pass              http://localhost:8080;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header        Host $http_host;
  }
  location ^/$ {
    proxy_pass              http://localhost:8080/default-app;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header        Host $http_host;
  }
}
Example
server {
  listen      80;
  listen      127.0.0.1:80;
  server_name localhost;
  root        /var/www;
  index       index.php index.html index.htm;
  location / {
    index     index.php index.html index.htm;
  }
  location /manager {
    proxy_pass              http://localhost:8080;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header        Host $http_host;
  }
  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi_params;
  }
}
				
				
	
