本篇內(nèi)容主要講解“Nginx的概念是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Nginx的概念是什么”吧!
創(chuàng)新互聯(lián)專(zhuān)注于企業(yè)成都全網(wǎng)營(yíng)銷(xiāo)、網(wǎng)站重做改版、長(zhǎng)壽網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、商城開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為長(zhǎng)壽等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
1. Nginx的概念?
「什么是Nginx呢:」
Nginx是一個(gè)基于HTTP的反向代理服務(wù)器,也是一個(gè)基IMAP/POP3/SMTP服務(wù)郵件服務(wù)器
反向代理服務(wù)器:現(xiàn)在我們A需要訪(fǎng)問(wèn)的目標(biāo)B服務(wù)器的10.7.182.100,我要訪(fǎng)問(wèn)這個(gè)B服務(wù)器上的資源,現(xiàn)在如果使用了Nginx之后,我可以通過(guò)Nginx服務(wù)器從而達(dá)到訪(fǎng)問(wèn)10.7.182.100這個(gè)服務(wù)器的目的
IMAP/POP/SMTP:這三個(gè)是郵件的傳輸協(xié)議
郵件服務(wù)器:發(fā)送郵件 接收郵件
Web服務(wù)器:本身是一個(gè)Web服務(wù)器的軟件,類(lèi)似于Tomcat這種Web服務(wù)的軟件
「Nginx能干什么呢:」
可以作為Web服務(wù)器
可以作為郵件服務(wù)器
可以作為反向代理的服務(wù)器
動(dòng)靜分離(就是將動(dòng)態(tài)資源和靜態(tài)資源分隔開(kāi))
可以實(shí)現(xiàn)負(fù)載均衡
2、Nginx的安裝
「Nginx安裝步驟:」
第一步:下載我們的nginx 這里以1.6.2版本為例 第二步:共享安裝文件到我們的linux上面 第三步:將文件拷貝到/usr/local下面 第四步:安裝 tar -zxvf xxxx.tar.gz 第五步:下載所需要的依賴(lài)庫(kù) yum install pcre yum install pcre-devel yum install zlib yum install zlib-devel 第六步:進(jìn)行config的配置 cd nginx-1.6.2 && ./configure --prefix=/usr/local/nginx 第七步:安裝 make && make install 第八步:啟動(dòng)nginx /usr/local/nginx/sbin/nginx 關(guān)閉: .... -s stop -s reload 查看端口是否有問(wèn)題 netstat -tunpl |grep 80 瀏覽器進(jìn)行驗(yàn)證沒(méi)問(wèn)題就可以
3、Nginx的配置文件的解析
「配置文件:」
#user nobody; #工作的線(xiàn)程(4核8線(xiàn)程那么下面就設(shè)置成8 物理硬件有關(guān)) worker_processes 1; #全局的錯(cuò)誤日志存放的地方 #error_log logs/error.log; #全局錯(cuò)誤日志存放的地方 后面的notice表示的是輸出錯(cuò)誤日志的格式 #error_log logs/error.log notice; #error_log logs/error.log info; #nginx進(jìn)程號(hào)存放的地方 #pid logs/nginx.pid; #最大的連接數(shù)(這個(gè)也跟硬件是有關(guān)系的) events { worker_connections 1024; } #下面就是跟HTTP請(qǐng)求有關(guān)系的了 http { #表示的是當(dāng)前服務(wù)器支持的類(lèi)型 include mime.types; #默認(rèn)傳輸?shù)臄?shù)據(jù)類(lèi)型是流 default_type application/octet-stream; #聲明了一種日志格式 這種日志格式的名字叫做 main log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; #表示的是每一次請(qǐng)求的日志記錄 格式就是上面的main格式 access_log logs/access.log main; #是否可以發(fā)送文件 sendfile on; #tcp_nopush on; #這個(gè)是雙活的超時(shí)的時(shí)間 #keepalive_timeout 0; keepalive_timeout 65; #是否打開(kāi)文件的壓縮 #gzip on; #虛擬一個(gè)主機(jī) #負(fù)載均衡的配置 upstream qianyu { ip_hash; server 10.7.182.110:8080; server 10.7.182.87:8080; } #server { # listen 90; # server_name localhost; # location / { # root qianyu; # index qianyu.html; # } #做一個(gè)反向代理 #表示的是 如果你訪(fǎng)問(wèn)的后綴是 .jpg結(jié)尾的話(huà)那么 就訪(fǎng)問(wèn)下面的另外的服務(wù)器 # location ~ \.jpg$ { # proxy_pass http://10.7.182.110:8080; # } #下面要演示一個(gè)負(fù)載均衡的例子 #location ~ \.jpg$ { # proxy_pass http://qianyu; #} #} #虛擬一個(gè)動(dòng)靜分離的機(jī)器 server { listen 9999; server_name localhost; #表示的是動(dòng)態(tài)資源訪(fǎng)問(wèn)的機(jī)器 location / { proxy_pass http://10.7.182.54:8080; } #表示的是非 css和js文件訪(fǎng)問(wèn)的地址 location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ { root /usr/local/webapp; expires 30d; } #表示的是css和js的訪(fǎng)問(wèn)地址 location ~ .*\.(js|css)?$ { root /usr/local/webapp; expires 1h; } } #虛擬了服務(wù)器 server { #端口是 80 listen 80; #這個(gè)表示的是虛擬服務(wù)器默認(rèn)訪(fǎng)問(wèn)的是本機(jī) server_name localhost; #這個(gè)是虛擬服務(wù)器的編碼 #charset koi8-r; #當(dāng)前服務(wù)器的日志的存儲(chǔ)的地方 #access_log logs/host.access.log main; #做了一個(gè)地址的映射 location / { root html; index index.html index.htm; } #如果報(bào)404的時(shí)候訪(fǎng)問(wèn)的頁(yè)面 #error_page 404 /404.html; # redirect server error pages to the static page /50x.html #報(bào)錯(cuò)50開(kāi)頭的是 就訪(fǎng)問(wèn)50x.html error_page 500 502 503 504 /50x.html; #下面對(duì)50x.html又做了一個(gè)映射 就訪(fǎng)問(wèn)根目錄下的html中的 50x.html location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }
4、實(shí)現(xiàn)Nginx下的反向代理
「做一個(gè)反向代理:」
表示的是如果你訪(fǎng)問(wèn)的后綴是 .jpg結(jié)尾的話(huà),那么就訪(fǎng)問(wèn)下面的另外的服務(wù)器
location ~ \.jpg$ { proxy_pass http://10.7.182.110:8080; }
5、實(shí)現(xiàn)Nginx下的負(fù)載均衡
「第一種策略:默認(rèn)是輪循的策略:」
配置upstream upstream qianyu { server 10.7.182.110:8080; server 10.7.182.87:8080; } 配置負(fù)載均衡 location ~ \.jpg$ { proxy_pass http://qianyu; }
「第二種策略:權(quán)重(weight):」
#負(fù)載均衡的配置 upstream qianyu { server 10.7.182.110:8080 weight=2; server 10.7.182.87:8080 weight=1; } 配置負(fù)載均衡 location ~ \.jpg$ { proxy_pass http://qianyu; }
「第三種策略:IPHash的使用:」
#負(fù)載均衡的配置 upstream qianyu { ip_hash; server 10.7.182.110:8080; server 10.7.182.87:8080; } 配置負(fù)載均衡 location ~ \.jpg$ { proxy_pass http://qianyu; }
6、實(shí)現(xiàn)Nginx下的動(dòng)靜分離
「動(dòng)靜分離:」
簡(jiǎn)單的來(lái)說(shuō)就是將動(dòng)態(tài)資源和靜態(tài)資源給分隔開(kāi)
靜態(tài)資源放到Nginx服務(wù)器上
動(dòng)態(tài)資源放到Tomcat服務(wù)器上
Jpg html css png gif ....靜態(tài)資源 ---->放到Nginx服務(wù)器上 .action結(jié)尾的都是動(dòng)態(tài)的資源 ------------------------->放到Tomcat的服務(wù)器上
「動(dòng)靜分離的實(shí)現(xiàn):」
在/usr/local目錄下創(chuàng)建webapp文件夾
在webapp目錄下創(chuàng)建css、html、js、img文件夾
編寫(xiě)HTML的內(nèi)容并將html文件放到webapp目錄下
將圖片放到img目錄下,將css放到css目錄下,將js文件放到j(luò)s的目錄下
編寫(xiě)動(dòng)態(tài)資源的這個(gè)工程
package com.qy.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class qianyuServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter writer=response.getWriter(); writer.write("this is dynamic resource test"); writer.flush(); writer.close(); } }
編寫(xiě)配置文件 /conf/nginx.xml文件
#虛擬一個(gè)動(dòng)靜分離的機(jī)器 server { listen 9999; server_name localhost; #表示的是動(dòng)態(tài)資源訪(fǎng)問(wèn)的機(jī)器 location / { proxy_pass http://10.7.182.54:8080; } #表示的是非 css和js文件訪(fǎng)問(wèn)的地址 location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ { root /usr/local/webapp; expires 30d; } #表示的是css和js的訪(fǎng)問(wèn)地址 location ~ .*\.(js|css)?$ { root /usr/local/webapp; expires 1h;
測(cè)試
7、虛擬主機(jī)
「虛擬主機(jī)配置:」
server { listen 90; server_name localhost; location / { root qianyu; index qianyu.html; } #做一個(gè)反向代理 #表示的是 如果你訪(fǎng)問(wèn)的后綴是 .jpg結(jié)尾的話(huà)那么 就訪(fǎng)問(wèn)下面的另外的服務(wù)器 location ~ \.jpg$ { proxy_pass http://10.7.182.110:8080; } }
到此,相信大家對(duì)“Nginx的概念是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!