• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Nginx
 

Nginx

on

  • 2,954 views

 

Statistics

Views

Total Views
2,954
Views on SlideShare
2,397
Embed Views
557

Actions

Likes
3
Downloads
71
Comments
0

10 Embeds 557

http://blog.wearepropeople.com 413
http://wearepropeople.com 127
http://wearepropeople.se 4
http://drupal.org 4
http://newsblur.com 3
http://wap.propeople.com.ua 2
http://www.newsblur.com 1
http://propeopledev.devcloud.acquia-sites.com 1
http://translate.googleusercontent.com 1
http://www.informatica.md 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Nginx Nginx Presentation Transcript

    • Whats NGINX?● Nginx (pronounced “Engine-X”) is an open source,high-performance:● HTTP server● Reverse proxy server for HTTP, SMTP, POP3 and IMAP protocols.
    • Nginx - History● Author Igor Sysoev● started development of Nginx in 2002.● first public release in 2004, - rambler.ru● Built to address the C10K problem.● Website www.nginx.org.
    • Why Nginx?● Stability● Performance● Security● Third party modules● Easy to configure
    • Features● Static file serving.● SSL/TLS support.● Virtual hosts.● Reverse proxying.● Load balancing.● Compression.● Access controls.● URL rewriting.● Custom logging.● Server-side includes.● FLV streaming.● FastCGI.
    • Why nginx is faster than apache?● Apache is a process-based server, while nginx is an event-based (asynchronous) web server.● Nginx is lighter then Apache.● Buffering.
    • Architecture● Master+workers● Event driven● Non-blocking● Single-threaded● Highlymodular
    • Master - Workers● Master -Monitor workers -Handle signals,notify workers (exit ,reconfiguration,update...)● Worker -Process client requests -Get cmd from master
    • Master process
    • Worker process
    • Modular
    • Event-driven Architecture (EDA)● EDA method is capable of handling more number of clients with less threads compared to conventional way (one thread for one client). Client 1 Client 2 worker Client N Client 1 Apache P.1 Apache P.2 Client 2 Apache P.N Client N
    • Event● ngx_event_t -Read -Write -Timeout● Callbacks● Handlers -ngx_event_accept -ngx_process_events_and_timers -ngx_handle_read_event -ngx_handle_write_event● Posted events -Posted accept event queue -Posted event queue
    • Non-blockingAsynchronous I/O allows a process to submit an I/O request without waiting for it to complete
    • Virtual Server● Port● Address● Server name● Core server conf.
    • Reconfig
    • Upgrading
    • Directives:● fair – send the request to the least busy backend server.● add_header – add custom headers to the response● limit_req_zone – limit requests for a client,prevent DOS attacks.● limit_conn_zone – limit concurent conections for a client.● stub_status – get current status of nginx.● error_pages – custom error page.● ip_hash;● backup;● If/set/rewrite.
    • Configserver { user www www;listen 80; worker_processes 2; server {server_name example.com www.example.com; listen 80;root /usr/local/www/example.com; server_name example.com www.example.com;access_log /var/log/nginx/example.access.log; root /usr/local/www/example.com;error_log /var/log/nginx/example.error.log; access_log /var/log/nginx/example.access.log;location / { error_log /var/log/nginx/example.error.log;# Rewrite rules can go here} location / { # Rewrite rules can go herelocation ~* .(?:ico|css|js|gif|jpe?g|png)$ { }expires max;add_header Pragma public; location ~* .(?:ico|css|js|gif|jpe?g|png)$ {add_header Cache-Control "public, must-revalidate, proxy-revalidate"; expires max;} add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate";location ~ .php { }proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $remote_addr; location ~ .php$ { fastcgi_pass 127.0.0.1:9000;proxy_set_header Host $host; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;proxy_pass http://127.0.0.1:8080; include fastcgi_params;} }include drop.conf; include drop.conf;} }
    • Front-End-(Nginx) and Back-End- (Apache) Advantages Client Frontend (NGINX) YES NO Static content HDD Backend (files) (Apache)
    • Proxy balancingupstream backend {server 192.168.1.163:8081;server 192.168.1.159:80 weight=3; server 192.168.1.160:8080 max_fails=3fail_timeout=10s; }
    • Nginx – Memcached - Apacheserver { location / { set $memcached_key $uri; memcached_pass 127.0.0.1:11211; default_type text/html; error_page 404 = @fallback; } location @fallback { proxy_pass backend; }}
    • RewriteApache:RewriteCond %{HTTP_HOST} ^domain.com$ [NC]RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]Nginx:server { server_name www.domain.com; return 301 $scheme://domain.com$request_uri;}server { server_name domain.com; [...]}
    • Nginx vs Apache
    • http://wiki.nginx.org/