Nginx server之Nginx作为反向代理服务器
2019獨角獸企業重金招聘Python工程師標準>>>
一:Nginx介紹
1.Nginx簡介:nginx [engine x]是一個俄羅斯人編寫的HTTP和反向代理服務器,另外它也可以作為郵件代理服務器。 它已經在眾多流量很大的俄羅斯網站上使用了很長時間,這些網站包括Yandex、Mail.Ru、VKontakte,以及Rambler。據Netcraft統計,在2012年8月份,世界上最繁忙的網站中有11.48%使用Nginx作為其服務器或者代理服務器。部分成功案例請見: Netflix, Wordpress.com, FastMail.FM。
2.整體采用模塊化設計是nginx的一個重大特點,甚至http服務器核心功能也是一個模塊。要注意的是:nginx的模塊是靜態的,添加和刪除模塊都要對nginx進行重新編譯,這一點與Apache的動態模塊完全不同。
3.Nginx作為負載均衡服務器: Nginx 既可以在內部直接支持 Rails 和 PHP 程序對外進行服務, 也可以支持作為 HTTP代理 服務器對外進行服務. Nginx采用C進行編寫, 不論是系統資源開銷還是CPU使用效率都比 Perlbal 要好很多. 。Nginx可作為7層負載均衡服務器來使用。
4.Nginx與PHP集成:自PHP-5.3.3起,PHP-FPM加入到了PHP核心,編譯時加上--enable-fpm即可提供支持。 PHP-FPM以守護進程在后臺運行,Nginx響應請求后,自行處理靜態請求,PHP請求則經過fastcgi_pass交由PHP-FPM處理,處理完畢后返回。 Nginx和PHP-FPM的組合,是一種穩定、高效的PHP運行方式,效率要比傳統的Apache和mod_php高出不少。
基本的HTTP服務器特性
處理靜態文件,索引文件以及自動索引;打開文件描述符緩存;
使用緩存加速反向代理;簡單負載均衡以及容錯;
遠程FastCGI,uwsgi,SCGI,和memcached服務的緩存加速支持;簡單的負載均衡以及容錯;
模塊化的架構。過濾器包括gzip壓縮、ranges支持、chunked響應、XSLT,SSI以及圖像縮放。在SSI 過濾器中,一個包含多個SSI的頁面,如果經由FastCGI或反向代理處理,可被并行處理;
支持SSL,TLS SNI。
其他的HTTP服務器特性
基于名字和IP的虛擬主機;
Keep-alive和pipelined連接支持;
靈活的配置;
重新加載配置以及在線升級時,不需要中斷正在處理的請求;
自定義訪問日志格式,帶緩存的日志寫操作以及快速日志輪轉;
3xx-5xx錯誤代碼重定向;
重寫(rewrite)模塊:使用正則表達式改變URI;
根據客戶端地址執行不同的功能;
基于客戶端IP地址和HTTP基本認證機制的訪問控制;
支持驗證HTTP referer;
支持PUT、DELETE、MKCOL、COPY以及MOVE方法;
支持FLV流和MP4流;
速度限制;
來自同一地址的同時連接數或請求數限制;
嵌入Perl語言。
郵件代理服務器特性
使用外部HTTP認證服務器重定向用戶到IMAP/POP3后端;
使用外部HTTP認證服務器認證用戶后重定向連接到內部SMTP后端;
支持的認證方式:
POP3: USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5;
IMAP: LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5;
SMTP: AUTH LOGIN/PLAIN/CRAM-MD5;
SSL支持;
STARTTLS和STLS支持。
二:具體配置步驟
//環境說明
1.系統為centos6.4?
2.nginx編譯安裝在IP:10.10.54.157上,并配合其它幾臺web服務器實現負載均衡
3.nginx服務器即當作一臺反向代理服務器,又當作一臺web服務器和其它幾臺web服務器配合實現負載均衡
4.web服務器可以是apache,要實現負載均衡,先得保證每臺web服務器可以獨立被訪問
5.環境中有不止一臺web服務器,nginx服務器的功能就是把用戶的連接請求均衡負載到每臺web服務器上
//nginx編譯安裝
shell>?./configure?--prefix=/usr/local/nginx?--user=apache?--group=apache?--with-http_ssl_module?--with-http_stub_status_module?--with-http_gzip_static_module?&&?make?&&?make?install #參數解釋 --prefix=PATH?????????????????????set?installation?prefix --user=USER???????????????????????set?non-privileged?user?for --group=GROUP?????????????????????set?non-privileged?group?for --with-http_ssl_module????????????enable?ngx_http_ssl_module --with-http_stub_status_module????enable?ngx_http_stub_status_module???#支持監控 --with-http_gzip_static_module????enable?ngx_http_gzip_static_module???#支持壓縮#啟動nginx shell>?/usr/local/nginx/sbin/nginx?-c?/usr/local/nginx/conf/nginx.conf #測試nginx配置文件格式是否正確 shell>?/usr/local/nginx/sbin/nginx?-t?-c?/usr/local/nginx/conf/nginx.conf #關閉nginx shell>?cat?/usr/local/nginx/logs/nginx.pid?|?xargs?kill?-TERM #重啟nginx shell>?cat?/usr/local/nginx/logs/nginx.pid?|?xargs?kill?-HUP HUP??????重啟 TERM,INT?快速停止 USR1????重新打開日志文件,用于日志切割 USR2????平滑升級可執行程序 QUIT?????從容關閉 WINCH????從容關閉工作進程//nginx服務器配置
轉載于:https://my.oschina.net/zijian1315/blog/207294
總結
以上是生活随笔為你收集整理的Nginx server之Nginx作为反向代理服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle CRS stack is
- 下一篇: Nginx+Tomcat动静态资源分离