Difference between revisions of "Nginx"

From HackerNet
Jump to: navigation, search
Tag: visualeditor
Line 68: Line 68:
  
 
  apt-get update && apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
 
  apt-get update && apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
 +
 
Hämta hem senaste versionen av nginx och rtmp modulen.
 
Hämta hem senaste versionen av nginx och rtmp modulen.
 +
 
  wget http://nginx.org/download/nginx-1.7.9.tar.gz
 
  wget http://nginx.org/download/nginx-1.7.9.tar.gz
 +
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
  
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
 
 
Packa upp filerna
 
Packa upp filerna
 
  tar -zxvf nginx-1.7.9.tar.gz
 
  tar -zxvf nginx-1.7.9.tar.gz
 
 
  unzip master.zip
 
  unzip master.zip
 +
cd nginx-1.7.9
  
cd nginx-1.7.9
 
 
Lägg sedan till rtmp modulen i nginx.
 
Lägg sedan till rtmp modulen i nginx.
 
  ./configure --add-module=../nginx-rtmp-module-master
 
  ./configure --add-module=../nginx-rtmp-module-master
 
 
  make
 
  make
 +
make install
  
make install
 
 
Om du inte fått några error så är nginx med rtmp modulen installerade.
 
Om du inte fått några error så är nginx med rtmp modulen installerade.
  

Revision as of 14:32, 18 January 2015

nginx är en lättviktig webbserver och proxy.

Installation

sudo add-apt-repository ppa:nginx/stable && sudo apt-get update && sudo apt-get install nginx

Tips n Trix

Innan en reload/restart av nginx kör följande kommando för att testa om det är en giltig konfiguration:

/etc/init.d/nginx configtest

Alternativt lägg till en alias för detta:

alias configtest='/etc/init.d/nginx configtest'

Reverse Proxy

Nginx fungerar utmärkt som en reverse proxy för webbtrafik.

Exempel

 server {
 listen 80;
 server_name sub.domän.se;
 location / {
 proxy_pass http://10.0.0.10:3000;
 include /etc/nginx/proxy_params;
    }
 }

HTTPS

Konfigurationsexempel med säkerhet i fokus

 server {
 listen 443 ssl;
 server_name secure.domän.se;
 add_header Strict-Transport-Security max-age=15768000;
 add_header X-Frame-Options DENY;
 add_header X-Content-Type-Options nosniff;
 ssl_certificate         /path/to/cert.crt;
 ssl_certificate_key     /path/to/key.pem;
 ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
 ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!DSS:!RC4';
 ssl_prefer_server_ciphers on;
 ssl_dhparam /path/to/dhparam.pem;
 ...
 }

Redirect HTTP till HTTPS

 server {
 listen      80;
 server_name domän.se;
 
 # 301 = permanent redirect, 302 = temporary redirect
 return 301  https://domän.se$request_uri;
 }

Redirect HTTP till HTTPS, ej standardport

Nginx har en egen HTTP-statuskod för detta.

 server {
 listen      1234 ssl;
 server_name sub.domän.se;
 ...
 error_page  497 https://$host:1234$request_uri;
 ...
 }

RTMP

Nginx rtmp modul fungerar utmärkt om man vill kunna streama något till 2 platser samtidigt tex till Twitch och Hitbox utan att behöva ha igång 2 instanser av tex OBS/Xsplit.

För att få in RTMP modulen så måste man compilera nginx från början.

apt-get update && apt-get install build-essential libpcre3 libpcre3-dev libssl-dev

Hämta hem senaste versionen av nginx och rtmp modulen.

wget http://nginx.org/download/nginx-1.7.9.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

Packa upp filerna

tar -zxvf nginx-1.7.9.tar.gz
unzip master.zip
cd nginx-1.7.9

Lägg sedan till rtmp modulen i nginx.

./configure --add-module=../nginx-rtmp-module-master
make
make install

Om du inte fått några error så är nginx med rtmp modulen installerade.

Ändra och lägg till följande rader i din conf fil. /usr/local/nginx/conf/nginx.conf

rtmp {
	server {
		listen 1935;
		chunk_size 8192;

		application stream {
			live on;
			meta copy;
			push rtmp://live-ams.twitch.tv/app/live_XYZ_ZXY;
			push rtmp://live.hitbox.tv/push/username?key=XYZ;
		}
	}
}

För att starta nginx server skriv

/usr/local/nginx/sbin/nginx

För att stoppa nginx servern.

/usr/local/nginx/sbin/nginx

Ställ in din klient att streama mot rtmp://<ip>/stream