摘要:是一款輕量級(jí)的服務(wù)器反向代理服務(wù)器及電子郵件代理服務(wù)器,并在一個(gè)協(xié)議下發(fā)行。是以反向代理的方式進(jìn)行負(fù)載均衡的。
Nginx是一款輕量級(jí)的Web 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,并在一個(gè)BSD-like 協(xié)議下發(fā)行。由俄羅斯的程序設(shè)計(jì)師Igor Sysoev所開發(fā),供俄國(guó)大型的入口網(wǎng)站及搜索引擎Rambler(俄文:Рамблер)使用。其特點(diǎn)是占有內(nèi)存少,并發(fā)能力強(qiáng),事實(shí)上nginx的并發(fā)能力確實(shí)在同類型的網(wǎng)頁(yè)服務(wù)器中表現(xiàn)較好
模塊依賴性
gzip模塊需要 zlib 庫(kù)
rewrite模塊需要 pcre 庫(kù)
ssl 功能需要openssl庫(kù)
安裝PCRE庫(kù)
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.35.tar.gz tar -zxvf pcre-8.35.tar.gz cd pcre-8.35 ./configure make && make install
安裝zlib庫(kù)
wget http://zlib.net/zlib-1.2.8.tar.gz tar -zxvf zlib-1.2.8.tar.gz cd zlib-1.2.8 ./configure make && make install 安裝ssl
自由選擇是否需要編譯
wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz tar -zxf openssl-1.0.1g.tar.gz cd openssl-1.0.1g ./config make && make install
安裝nginx
cd nginx ./configure --prefix=/usr/local/nginx make & make install
啟動(dòng)nginx
cd/usr/local/nginx ./sbin/nginx
配置nginx開機(jī)自動(dòng)啟動(dòng)
打開/etc/rc.d/rc.local文件添加nginx文件路徑 /usr/local/nginx/sbin/nginx
重啟nginx
./sbin/nginx -s reload
查看訪問(wèn)日志
tail -10 logs/haowan.access.log
nginx設(shè)置定時(shí)分割日志文件
#!/bin/bash LOGPATH=/usr/local/nginx/logs/haowan.access.log // nginx日志原路徑 BASEPATH=/date/$(date -d yesterday +%Y%m) //切割后存放目錄 mkdir -p $BASEPATH //按月創(chuàng)建文件夾 bak=$BASEPATH/$(date -d yesterday +%d%H%M).haowan.access.log //計(jì)算路徑與日志命名 mv $LOGPATH $bak touch $LOGPATH kill -USR1 `cat /usr/local/nginx/logs/nginx.pid` 添加cut_logs.sh執(zhí)行權(quán)限 chmod +x /usr/local/nginx/date/cut_logs.sh 設(shè)置cut_logs.sh啟動(dòng)時(shí)間,執(zhí)行命令crontab -e進(jìn)入編輯狀態(tài): 01 00 * * * /usr/local/nginx/date/runlog.sh 可以用以下方式來(lái)執(zhí)行此腳本: /etc/init.d/nginx start /etc/init.d/nginx stop /etc/init.d/nginx reload /etc/init.d/nginx restart
nginx rewrite重寫
nginx通過(guò)ngx_http_rewrite_module模塊支持url重寫、支持if條件判斷,但不支持else。該模塊需要PCRE支持,應(yīng)在編譯nginx時(shí)指定PCRE源碼目錄
判斷瀏覽器類型
if ($http_user_agent ~* Mozilla){ rewrite ^.*$ /ie.html; break; } # 404錯(cuò)誤頁(yè)面 if (!-e $document_root$fastcgi_script_name){ rewrite ^.*$ /404.html; break; } if ($http_user_agent ~* Mozilla){ set $isit 1; } if ($fastcgi_script_name ie.html){ set $isie 0; } if($isie 1){ rewrite ^.*$ /ie.html }
php與nginx整合
注意:編譯的php要有如下功能:連接mysql,gd,ttf, 以fpm(fascgi)方式運(yùn)行。
./configure --prefix=/usr/local/fastphp --with-mysql=/usr/local/mysql --with-gd --enable-gd-native-ttf --enable-gd-jis-conv --enable-fpm make && make install 復(fù)制php配置文件 cp php.ini-development /usr/local/fastphp/lib/php.ini 復(fù)制 php-fpm配置文件 cp etc/php-fpm.conf.default etc/php-fpm.conf 啟動(dòng)php-fpm ./sbin/php-fpm
查看進(jìn)程
ps aux | grep php
設(shè)置nginx.conf文件
php與nginx整合
location ~ .php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name; include fastcgi_params; }
nginx gzip壓縮提升網(wǎng)站速度
網(wǎng)頁(yè)壓縮是一項(xiàng)由 WEB 服務(wù)器和瀏覽器之間共同遵守的協(xié)議,也就是說(shuō) WEB 服務(wù)器和瀏覽器都必須支持該技術(shù),所幸的是現(xiàn)在流行的瀏覽器都是支持的,包括 IE、FireFox、Opera 等;服務(wù)器有 Apache 和 IIS 等。雙方的協(xié)商過(guò)程如下:首先瀏覽器請(qǐng)求某個(gè) URL 地址,并在請(qǐng)求的頭 (head) 中設(shè)置屬性 accept-encoding 值為 gzip, deflate,表明瀏覽器支持 gzip 和 deflate 這兩種壓縮方式(事實(shí)上 deflate 也是使用 gzip 壓縮協(xié)議。
gzip常用參數(shù): gzip on|off #是否開啟gzip gzip_buffers 32 4k|16 8k #緩沖 gzip_comp_level[1-9] #推薦6壓縮級(jí)別 gzip_disable #正則匹配UA 什么樣的Uri不進(jìn)行g(shù)zip gzip_min_length 200 #開始?jí)嚎s的最小長(zhǎng)度(再小就不要壓縮了) gzip_http_version1.0|1.1 #開始?jí)嚎s的http協(xié)議版本 gzip_proxied #設(shè)置請(qǐng)求代理服務(wù)器該如何緩存內(nèi)容 gzip_types text/plain application/xml #對(duì)哪些類型的文件用壓縮如:text/xml/html/css gzip_vary on|off #是否傳輸gzip壓縮標(biāo)志 nginx gzip壓縮設(shè)置 gzip on; gzip_buffers 32 4k; gzip_comp_level 6; gzip_min_length 2000; gzip_types text/css text/xml application/x-javascript; nginx的expires緩存設(shè)置提高網(wǎng)站性能
Nginx設(shè)置expires設(shè)定頁(yè)面緩存時(shí)間 不緩存或一直使用緩存 配置expires expires起到控制頁(yè)面緩存的作用,合理的配置expires可以減少很多服務(wù)器的請(qǐng)求
location ~* .(jpg|jpeg|gif|png){ root html; expires 1d; # 緩存一天 }
反向代理實(shí)現(xiàn) nginx+apache動(dòng)靜分離
nginx反向代理的指令不需要新增額外的模塊,默認(rèn)自帶proxy_pass指令,只需要修改配置文件就可以實(shí)現(xiàn)反向代理。支持兩個(gè)用法 proxy與upstream,分別用來(lái)做反向代理和負(fù)載均衡
#配置apache虛擬主機(jī)ServerAdmin webmaster@dummy-host2.example.com DocumentRoot "/usr/local/nginx/html" ServerName "192.168.80.22" ErrorLog "logs/dummy-host2.example.com-error_log" CustomLog "logs/dummy-host2.example.com-access_log" common #設(shè)置權(quán)限Options FollowSymLinks AllowOverride None Order deny,allow Allow from all 設(shè)置nginx配置文件 .php文件讓apache來(lái)解析 location ~ .php$ { proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://192.168.80.22:8080; }
nginx負(fù)載均衡配置
*nginx負(fù)載均衡主要是對(duì)七層網(wǎng)絡(luò)通信模型中的第七層應(yīng)用層上的http、https進(jìn)行支持。同時(shí)nginx更新版本也在逐步對(duì)Websocket、SPDY等協(xié)議作出支持。
nginx是以反向代理的方式進(jìn)行負(fù)載均衡的。反向代理(Reverse Proxy)方式是指以代理服務(wù)器來(lái)接受Internet上的連接請(qǐng)求,然后將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給Internet上請(qǐng)求連接的客戶端,此時(shí)代理服務(wù)器對(duì)外就表現(xiàn)為一個(gè)服務(wù)器。*
配置兩臺(tái)虛擬機(jī)
server{ listen 81; server_name 127.0.0.1; root html; access_log logs/81-access.log main; } server{ listen 82; server_name 127.0.0.1; root html; access_log logs/82-access.log main; }
把多臺(tái)服務(wù)器用upstream指定綁定在一起并起個(gè)組名
upstream imgserver{ server 127.0.0.1:81 weight=1 max_fails=2 fail_timeout=3; server 127.0.0.1:82 weight=1 max_fails=2 fail_timeout=3; }
然后用proxy_pass 指向imgserver
location ~* .(jpg|jpeg|gif|png){ proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://imgserver; }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/39667.html
摘要:它是一個(gè)高性能的和反向代理服務(wù)器,同時(shí)也可以作為的代理服務(wù)器。如果相對(duì)域名或參數(shù)字符串起作用,可以使用全局變量匹配,也可以使用反向代理。 nginx是什么? nginx是俄羅斯人 Igor Sysoev為俄羅斯訪問(wèn)量第二的Rambler.ru站點(diǎn)開發(fā)的一個(gè)十分輕量級(jí)的HTTP服務(wù)器。它是一個(gè)高性能的HTTP和反向代理服務(wù)器,同時(shí)也可以作為IMAP/POP3/SMTP的代理服務(wù)器。ngi...
摘要:主進(jìn)程不直接響應(yīng)瀏覽器,是管理子進(jìn)程使用。瀏覽器訪問(wèn)會(huì)到子進(jìn)程中響應(yīng)。日志需要備份,文件在被進(jìn)程所打開,不能使用命令。是設(shè)置變量使用,可以達(dá)到多條件判斷時(shí)做標(biāo)記使用。 nginx 簡(jiǎn)介 高性能WEB服務(wù)器 Nginx (engine x) 是一個(gè)高性能的HTTP和反向代理服務(wù)器,也是一個(gè) IMAP/POP3/SMTP 代理服務(wù)器.Nginx 是由Igor Sysoev為落實(shí)訪問(wèn)量第二...
摘要:主進(jìn)程不直接響應(yīng)瀏覽器,是管理子進(jìn)程使用。瀏覽器訪問(wèn)會(huì)到子進(jìn)程中響應(yīng)。日志需要備份,文件在被進(jìn)程所打開,不能使用命令。是設(shè)置變量使用,可以達(dá)到多條件判斷時(shí)做標(biāo)記使用。 nginx 簡(jiǎn)介 高性能WEB服務(wù)器 Nginx (engine x) 是一個(gè)高性能的HTTP和反向代理服務(wù)器,也是一個(gè) IMAP/POP3/SMTP 代理服務(wù)器.Nginx 是由Igor Sysoev為落實(shí)訪問(wèn)量第二...
摘要:配置文件學(xué)習(xí)筆記定義運(yùn)行的用戶和用戶組進(jìn)程數(shù),建議設(shè)置為等于總核心數(shù)全局錯(cuò)誤日志定義類型,進(jìn)程文件指定進(jìn)程可以打開的最大描述符數(shù)目工作模式與連接數(shù)上限這個(gè)指令是指當(dāng)一個(gè)進(jìn)程打開的最多文件描述符數(shù)目,理論值應(yīng)該是最多打開文件數(shù)與進(jìn)程數(shù)相除, Nginx配置文件學(xué)習(xí)筆記 定義Nginx運(yùn)行的用戶和用戶組 user nginx; Nginx進(jìn)程數(shù),建議設(shè)置為等于CPU總核心數(shù) worker...
摘要:配置文件學(xué)習(xí)筆記定義運(yùn)行的用戶和用戶組進(jìn)程數(shù),建議設(shè)置為等于總核心數(shù)全局錯(cuò)誤日志定義類型,進(jìn)程文件指定進(jìn)程可以打開的最大描述符數(shù)目工作模式與連接數(shù)上限這個(gè)指令是指當(dāng)一個(gè)進(jìn)程打開的最多文件描述符數(shù)目,理論值應(yīng)該是最多打開文件數(shù)與進(jìn)程數(shù)相除, Nginx配置文件學(xué)習(xí)筆記 定義Nginx運(yùn)行的用戶和用戶組 user nginx; Nginx進(jìn)程數(shù),建議設(shè)置為等于CPU總核心數(shù) worker...
閱讀 2609·2021-11-18 10:02
閱讀 2279·2021-09-30 09:47
閱讀 1745·2021-09-27 14:01
閱讀 3109·2021-08-16 11:00
閱讀 3163·2019-08-30 11:06
閱讀 2392·2019-08-29 17:29
閱讀 1531·2019-08-29 13:19
閱讀 445·2019-08-26 13:54