Nginx Web服务应用
Nginx(“engine x”)是一個開源的,支持高性能、高并發(fā)的WWW服務(wù)和代理服務(wù)軟件。它還具有反向代理負載均衡功能和緩存服務(wù)功能。
?
1 Nginx的幾個常見的重要特性
1、支持高并發(fā):能支持幾萬并發(fā)連接(特別是靜態(tài)小文件業(yè)務(wù)環(huán)境)
2、資源消耗少:在3萬并發(fā)連接下,開啟10個Nginx線程消耗的內(nèi)存不到200MB
3、可以做HTTP反向代理及加速緩存,即負載均衡功能,內(nèi)置對RS節(jié)點服務(wù)器健康檢查功能,這相當于專業(yè)的Haproxy軟件或LVS的功能
4、具備Squid等專業(yè)緩存軟件等的緩存功能
5、支持異步網(wǎng)絡(luò)I/O事件模型epoll(linux2.6+)
2 Nginx軟件的主要企業(yè)功能應(yīng)用
1)作為web服務(wù)軟件
支持高性能、高并發(fā),與Apache相比,Nginx能夠支持更多的并發(fā)連接訪問,但占用的資源卻更少,效率更高,幾乎不遜色于Apache
2)反向代理或負載均衡服務(wù)
在方向代理或負載均衡服務(wù)方面,Nginx可以作為web服務(wù)、PHP等動態(tài)服務(wù)及Memcached緩存的代理服務(wù)器,它具有類似專業(yè)反向代理軟件(如Haproxy)的功能,也是一個郵件代理服務(wù)軟件,支持TCP的代理。
3)前端業(yè)務(wù)數(shù)據(jù)緩存服務(wù)
在web緩存服務(wù)方面,Nginx可以通過自身的proxy_cache模塊實現(xiàn)類Squid等專業(yè)緩存軟件的功能
3 Nginx Web服務(wù)
3.1 Nginx Web服務(wù)介紹
作為web服務(wù)器的主要應(yīng)用場景:
1)使用Nginx運行HTML、JS、CSS、小圖片等靜態(tài)數(shù)據(jù)(類似Lighttpd)
2)Nginx結(jié)合FastCGI運行PHP等動態(tài)程序(使用fastcgi_pass方式)
3)Nginx結(jié)合Tomcat/Resin等支持Java動態(tài)程序(常用proxy_pass方式)
3.2 為什么Nginx總體性能比Apache高
Nginx使用epoll和kqueue(freebsd)異步網(wǎng)絡(luò)I/O模型,而Apache使用的是傳統(tǒng)的select模型。目前Linux下能夠承受高并發(fā)訪問的Squid、Memcached軟件采用的都是epoll模型
處理大量連接的讀寫時,select網(wǎng)絡(luò)I/O模型比較低效。而epoll卻很高效
宿管比喻:
Select:帶著你到各個房間挨個去找人,知道找到人為止。
Epoll:會先記下每個人住的房間號,當你找人時,只需要告訴你住哪個房間即可,不用親自帶著你滿宿舍樓找人了。
如果同時來了100個人找人,效率差別就很明顯了。
3.3 如何正確選擇web服務(wù)器
靜態(tài)業(yè)務(wù):若是高并發(fā)場景,盡量采用Nginx或Lighttpd,二者首選Ngingx
動態(tài)業(yè)務(wù):理論上采用Nginx和Apache均可,建議選擇Nginx,為了避免相同業(yè)務(wù)的服務(wù)軟件多樣化,增加維護成本。動態(tài)業(yè)務(wù)可以由Nginx兼做前端代理,再轉(zhuǎn)發(fā)到后端相應(yīng)的服務(wù)器進行處理。
既有靜態(tài)業(yè)務(wù)又有動態(tài)業(yè)務(wù):采用Nginx
如果并發(fā)不是很大,又對Apache熟悉,也可以選擇Apache,總之選擇熟悉的。
4 編譯安裝Nginx
4.1 檢查系統(tǒng)版本
[root@lnmp02?~]#?cat?/etc/redhat-release CentOS?release?6.5?(Final) [root@lnmp02?~]#?uname?-r 2.6.32-431.el6.x86_64 [root@lnmp02?~]#?uname?-m x86_644.2 安裝Nginx所需的 pcre pcre-devel
[root@lnmp02?~]#?rpm?-qa?pcre?pcre-devel pcre-7.8-6.el6.x86_64 [root@lnmp02?~]#?yum?install?pcre?pcre-devel?-y [root@lnmp02?~]#?rpm?-qa?pcre?pcre-devel pcre-7.8-7.el6.x86_64 pcre-devel-7.8-7.el6.x86_644.3 安裝 openssl-devel openssl
[root@lnmp02?~]#?rpm?-qa?openssl-devel?openssl openssl-1.0.1e-15.el6.x86_64 [root@lnmp02?~]#?yum?install?openssl-devel?-y [root@lnmp02?~]#?rpm?-qa?openssl-devel?openssl openssl-1.0.1e-57.el6.x86_64 openssl-devel-1.0.1e-57.el6.x86_644.4 安裝 Ngnix
下載Nginx軟件
[root@lnmp02?~]#?rpm?-qa?ngnix [root@lnmp02?tools]#??wget?-q?http://nginx.org/download/nginx-1.6.3.tar.gz [root@lnmp02?tools]#?ls?-l 總用量?788 -rw-r--r--?1?root?root?805253?4月???8?2015?nginx-1.6.3.tar.gz?
解壓Nginx包
[root@lnmp02?tools]#?tar?xf?nginx-1.6.3.tar.gz?? [root@lnmp02?tools]#?cd?nginx-1.6.3 [root@lnmp02?nginx-1.6.3]#?ls auto??CHANGES??CHANGES.ru??conf??configure??contrib??html??LICENSE??man??README??src [root@lnmp02?nginx-1.6.3]#?tree|wc?-l 404創(chuàng)建nginx用戶 設(shè)置安裝具體細節(jié)
[root@lnmp02?nginx-1.6.3]#?useradd?nginx?-s?/sbin/nologin?-M [root@lnmp02?nginx-1.6.3]#?./configure?--user=nginx?--group=nginx?--prefix=/application/nginx-1.6.3/?--with-http_stub_status_module?--with-http_ssl_module [root@lnmp02?nginx-1.6.3]#?make [root@lnmp02?nginx-1.6.3]#?make?install [root@lnmp02?nginx-1.6.3]#?echo?$? 0創(chuàng)建軟鏈接
[root@lnmp02?nginx-1.6.3]#?cd?.. [root@lnmp02?tools]#?ln?-s?/application/nginx-1.6.3/?/application/nginx [root@lnmp02?tools]#?ls?-l?/application/ 總用量?4 lrwxrwxrwx?1?root?root???25?6月??24?16:58?nginx?->?/application/nginx-1.6.3/ drwxr-xr-x?6?root?root?4096?6月??24?16:57?nginx-1.6.3安裝搞定,啟動并檢查安裝結(jié)果
啟動前檢查語法 [root@lnmp02?tools]#?/application/nginx/sbin/nginx?-t nginx:?the?configuration?file?/application/nginx-1.6.3//conf/nginx.conf?syntax?is?ok nginx:?configuration?file?/application/nginx-1.6.3//conf/nginx.conf?test?is?successful 啟動服務(wù) [root@lnmp02?tools]#?/application/nginx/sbin/nginx 查看nginx服務(wù)是否啟動成功 [root@lnmp02?tools]#?ps?-ef|grep?nginx|grep?-v?grep root???????7125??????1??0?17:05??????????00:00:00?nginx:?master?process?/application/nginx/sbin/nginx nginx??????7126???7125??0?17:05??????????00:00:00?nginx:?worker?process??????? [root@lnmp02?tools]#?ss?-lntup|grep?nginx tcp????LISTEN?????0??????128????????????????????*:80????????????????????*:*??????users:(("nginx",7125,6),("nginx",7126,6)) [root@lnmp02?tools]#?netstat?-lntup|grep?nginx tcp????????0??????0?0.0.0.0:80??????????????????0.0.0.0:*???????????????????LISTEN??????7125/nginx???????? 用curl命令檢測是否成功 [root@lnmp02?tools]#?curl?127.0.0.1 <!DOCTYPE?html> <html> <head> <title>Welcome?to?nginx!</title>??《=============看到此處歡迎說明成功了,也可以用瀏覽器輸出服務(wù)器地址來檢測,也可以用wget命令測試 <style>body?{width:?35em;margin:?0?auto;font-family:?Tahoma,?Verdana,?Arial,?sans-serif;} </style> </head> <body> <h1>Welcome?to?nginx!</h1> <p>If?you?see?this?page,?the?nginx?web?server?is?successfully?installed?and working.?Further?configuration?is?required.</p><p>For?online?documentation?and?support?please?refer?to <a?href="http://nginx.org/">nginx.org</a>.<br/> Commercial?support?is?available?at <a?href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank?you?for?using?nginx.</em></p> </body> </html>5 Nginx深入剖析
5.1 Nginx http功能模塊匯總
http_core_module?????? | 包括一些核心的http參數(shù)配置 |
http_access_module???? | 訪問控制模塊 |
http_gzip_module?????? | 壓縮模塊 |
http_fastcgi_module??? | fastcgi模塊 |
http_proxy_module ??? | 代理模塊 |
http_upstream_module | 負載均衡模塊 |
http_rewrite_module ? ? | URL地址重寫模塊 |
http_limit_conn_module | 限制用戶的并發(fā)連接以及請求數(shù) |
http_limit_req_module | 定義的key限制nginx請求過程的速率 |
http_log_module ??? | 訪問日志模塊,指定格式記錄nginx客戶訪問日志 |
http_auth_basic_module | web認證,設(shè)置web用戶通過賬號和密碼訪問nginx |
http_ssl_module??????? | 加密的http |
http_stub_status_module | 記錄nginx基本訪問狀態(tài)信息 |
?
5.2 Nginx的目錄結(jié)構(gòu)
5.3 主配置文件nginx.conf
?????12??#user??nobody;3??worker_processes??1;45??#error_log??logs/error.log;6??#error_log??logs/error.log??notice;7??#error_log??logs/error.log??info;89??#pid????????logs/nginx.pid;??????#1~9為Main區(qū),核心功能模塊101112??events?{???????????????????13??????worker_connections??1024;???#12~13行為events區(qū),核心功能模塊14??}151617??http?{?????????????????????????#17行是http區(qū)開始,http核心模塊18??????include???????mime.types;19??????default_type??application/octet-stream;2021??????#log_format??main??'$remote_addr?-?$remote_user?[$time_local]?"$request"?'22??????#??????????????????'$status?$body_bytes_sent?"$http_referer"?'23??????#??????????????????'"$http_user_agent"?"$http_x_forwarded_for"';2425??????#access_log??logs/access.log??main;2627??????sendfile????????on;28??????#tcp_nopush?????on;2930??????#keepalive_timeout??0;31??????keepalive_timeout??65;3233??????#gzip??on;3435??????server?{???????????????????#35~46為server區(qū)塊36??????????listen???????80;37??????????server_name??localhost;3839??????????#charset?koi8-r;4041??????????#access_log??logs/host.access.log??main;4243??????????location?/?{???????????????#location區(qū)塊44??????????????root???html;45??????????????index??index.html?index.htm;46??????????}47??????}48??}???????????????#http區(qū)塊結(jié)束整個Nginx配置文件的核心框架如下:
worker_processes??1; events?{worker_connections??1024; } http?{include???????mime.types;server?{listen???????80;server_name??localhost;location?/?{root???html;index??index.html?index.htm;}??????} }關(guān)于配置文件的詳細解釋
[root@lnmp02?~]#?egrep?-v?"#|^$"?/application/nginx/conf/nginx.conf.default worker_processes??1;????????????<===worker進程數(shù)量 events?{???????????????????????<===事件區(qū)塊開始worker_connections??1024;???<===每個worker進程支持的最大連接數(shù) }?????????????????????????????<===事件區(qū)塊結(jié)束 http?{?????????????????????????<===http區(qū)塊開始include???????mime.types;???????<===Nginx支持的媒體類型庫文件default_type??application/octet-stream;????<===默認的媒體類型sendfile????????on;???????????????????<===開啟高效傳輸模式keepalive_timeout??65;?????????????????<===連接超時server?{????????????????????<===第一個server區(qū)塊開始,表示一個虛擬主機站點listen???????80;?????????<===提供服務(wù)的端口,默認80server_name??localhost;???<===提供服務(wù)的域名主機名location?/?{??????????????<===第一個location區(qū)塊開始root???html;?????????<===站點的根目錄,相當于Nginx的安裝目錄index??index.html?index.htm;??<===默認首頁文件,多個用空格分開}?????????????????????????????<===第一個location區(qū)塊結(jié)束error_page???500?502?503?504??/50x.html;??<===出現(xiàn)對應(yīng)的狀態(tài)碼時,使用50x.html回應(yīng)客戶location?=?/50x.html?{?????????????<===location區(qū)塊開始,訪問50x.htmlroot???html;????????????????<===指定對應(yīng)的站點目錄為html}} }??????????????????????????????????????<===http區(qū)塊結(jié)束6 Nginx虛擬主機配置
6.1 Nginx虛擬主機配置(以基于域名的虛擬主機為例)
1、基于域名的虛擬主機*****
2、基于端口的虛擬主機***
3、基于IP的虛擬主機
增加新域名對應(yīng)的配置
[
root@lnmp02?tools]#?cd?/application/nginx [root@lnmp02?nginx]#?cd?conf/ [root@lnmp02?conf]#?egrep?-v?"#|^$"?nginx.conf.default??>nginx.conf [root@lnmp02?conf]#?vim?nginx.conf worker_processes??1; events?{worker_connections??1024; } http?{include???????mime.types;default_type??application/octet-stream;sendfile????????on;keepalive_timeout??65;server?{listen???????80;????《=============若配置基于端口或者IP的虛擬主機,在此修改端口號或者添加IPserver_name??www.etiantian123.org;location?/?{root???html/www;index??index.html?index.htm;}}server?{listen???????80;????《=============例如:基于IP:192.168.4.122:80server_name??bbs.etiantian123.org;location?/?{root???html/bbs;index??index.html?index.htm;}}}檢查語法
[root@lnmp02?conf]#?/application/nginx/sbin/nginx?-t nginx:?the?configuration?file?/application/nginx-1.6.3//conf/nginx.conf?syntax?is?ok nginx:?configuration?file?/application/nginx-1.6.3//conf/nginx.conf?test?is?successful創(chuàng)建域名對應(yīng)的站點目錄及文件
[root@lnmp02?conf]#?mkdir?../html/{www,bbs} [root@lnmp02?conf]#?tree?../html/ ../html/ ├──?50x.html ├──?bbs ├──?index.html └──?www [root@lnmp02?conf]#?echo?"www.etiantian.org"?>../html/www/index.html [root@lnmp02?conf]#?echo?"bbs.etiantian.org"?>../html/bbs/index.html [root@lnmp02?conf]#?cat??../html/{www,bbs}/index.html www.etiantian.org bbs.etiantian.org平滑啟動服務(wù)
[root@lnmp02?conf]#?/application/nginx/sbin/nginx?-s?reload修改/etc/hosts
[root@lnmp02?conf]#?vim?/etc/hosts 127.0.0.1???localhost?localhost.localdomain?localhost4?localhost4.localdomain4 ::1?????????localhost?localhost.localdomain?localhost6?localhost6.localdomain6 192.168.4.122?lnmp02 192.168.4.122?www.etiantian123.org 192.168.4.122?bbs.etiantian123.org用curl測試是否成功
[root@lnmp02?conf]#?curl?www.etiantian123.org www.etiantian.org [root@lnmp02?conf]#?curl?bbs.etiantian123.org bbs.etiantian.org 如果是windows測試,則需要修改/etc/hosts文件,格式和linux一致規(guī)范優(yōu)化Nginx配置文件
[root@lnmp02?conf]#?cat?nginx.conf worker_processes??1; events?{worker_connections??1024; } http?{include???????mime.types;default_type??application/octet-stream;sendfile????????on;keepalive_timeout??65;#nginx?vhosts?configinclude?extra/www.conf;include?extra/bbs.conf;include?extra/blog.conf; } [root@lnmp02?conf]#?mkdir?extra [root@lnmp02?conf]#?sed?-n?'10,17p'?nginx.conf.ori.1server?{listen???????80;server_name??www.etiantian123.org;location?/?{root???html/www;index??index.html?index.htm;}??????}?? [root@lnmp02?conf]#?sed?-n?'10,17p'?nginx.conf.ori.1?>extra/www.conf [root@lnmp02?conf]#?cat?extra/www.confserver?{listen???????80;server_name??www.etiantian123.org;location?/?{root???html/www;index??index.html?index.htm;}??????}?? [root@lnmp02?conf]#?sed?-n?'18,25p'?nginx.conf.ori.1?>extra/bbs.conf??? [root@lnmp02?conf]#?sed?-n?'26,33p'?nginx.conf.ori.1server?{listen???????80;server_name??blog.etiantian123.org;location?/?{root???html/blog;index??index.html?index.htm;}} [root@lnmp02?conf]#?sed?-n?'26,33p'?nginx.conf.ori.1?>extra/blog.conf配置好檢查一下
[root@lnmp02?conf]#?cat?extra/blog.conf [root@lnmp02?conf]#?cat?extra/bbs.conf? [root@lnmp02?conf]#?cat?extra/www.conf重啟下服務(wù)
[root@lnmp02?conf]#?../sbin/nginx?-t nginx:?the?configuration?file?/application/nginx-1.6.3//conf/nginx.conf?syntax?is?ok nginx:?configuration?file?/application/nginx-1.6.3//conf/nginx.conf?test?is?successful [root@lnmp02?conf]#?../sbin/nginx?-s?reload6.2 Nginx虛擬主機的別名配置
[root@lnmp02?conf]#?cat?extra/www.confserver?{listen???????80;server_name??www.etiantian123.org?etiantian123.org;?<===直接在域名后面添加別名location?/?{root???html/www;index??index.html?index.htm;}??????}在/etc/hosts添加別名的解析
[root@lnmp02?conf]#?cat?/etc/hosts 127.0.0.1???localhost?localhost.localdomain?localhost4?localhost4.localdomain4 ::1?????????localhost?localhost.localdomain?localhost6?localhost6.localdomain6 192.168.4.122?lnmp02 192.168.4.122?www.etiantian123.org?etiantian123.org????<=======添加別名 192.168.4.122?bbs.etiantian123.org 192.168.4.122?blog.etiantian123.org 192.168.4.122?status.etiantian123.org檢查并重新加載服務(wù)
[root@lnmp02?conf]#?../sbin/nginx?-t [root@lnmp02?conf]#?../sbin/nginx?-s?reload6.3 Nginx狀態(tài)信息功能
[root@lnmp02?conf]#?cat?extra/status.conf ##status????server?{listen???????80;server_name??status.etiantian123.org;location?/?{stub_status?on;????????<============打開狀態(tài)信息開關(guān)access_log???off;}??????}?
增加包含文件的配置到主配置文件
[root@lnmp02?conf]#?cat?nginx.conf worker_processes??1; events?{worker_connections??1024; } http?{include???????mime.types;default_type??application/octet-stream;sendfile????????on;keepalive_timeout??65;#nginx?vhosts?configinclude?extra/www.conf;include?extra/bbs.conf;include?extra/blog.conf;include?extra/status.conf;???<============增加status配置檢查語法重啟服務(wù)
[root@lnmp02?conf]#?../sbin/nginx?-t [root@lnmp02?conf]#?../sbin/nginx?-s?reload6.4 為Nginx增加錯誤日志配置
[root@lnmp02?conf]#?cat?nginx.conf worker_processes??1; error_log??logs/error.log;????#<=======默認配置這一行即可 events?{worker_connections??1024; } http?{include???????mime.types;default_type??application/octet-stream;sendfile????????on;keepalive_timeout??65;#nginx?vhosts?configinclude?extra/www.conf;include?extra/bbs.conf;include?extra/blog.conf;include?extra/status.conf; }6.5 Nginx訪問日志
訪問日志的配置
[root@lnmp02?conf]#?vim?nginx.conf worker_processes??1; error_log??logs/error.log; events?{worker_connections??1024; } http?{include???????mime.types;default_type??application/octet-stream;log_format??main??'$remote_addr?-?$remote_user?[$time_local]?"$request"?'??#'$status?$body_bytes_sent?"$http_referer"?'???????????#'"$http_user_agent"?"$http_x_forwarded_for"';????????#增加這三行sendfile????????on;keepalive_timeout??65;#nginx?vhosts?configinclude?extra/www.conf;include?extra/bbs.conf;include?extra/blog.conf;include?extra/status.conf; }然后在每個虛擬主機里進行配置(以www為例子)
[root@lnmp02?conf]#?vim?extra/www.confserver?{listen???????80;server_name??www.etiantian123.org?etiantian123.org;location?/?{root???html/www;index??index.html?index.htm;}access_log?logs/access_www.log?main;?????《=====增加一行日志配置,main是為日志格式指定的標簽}檢查并重啟服務(wù)
[root@lnmp02?conf]#?../sbin/nginx?-t nginx:?the?configuration?file?/application/nginx-1.6.3//conf/nginx.conf?syntax?is?ok nginx:?configuration?file?/application/nginx-1.6.3//conf/nginx.conf?test?is?successful [root@lnmp02?conf]#?../sbin/nginx?-s?reload用瀏覽器模擬用戶訪問生成日志,在服務(wù)器上查詢結(jié)果
[root@lnmp02?conf]#?tail?-1?../logs/access_www.log 192.168.4.101?-?-?[25/Jun/2017:00:54:50?+0800]?"GET?/favicon.ico?HTTP/1.1"?404?570?"-"?"Mozilla/4.0?(compatible;?MSIE?7.0;?LBBROWSER)"?"-"在高并發(fā)場景下提升網(wǎng)站訪問性能,可以加上buffer和flush選項參數(shù),打包
access_log?logs/access_www.log?main?gzip?buffer=32K?flush=5sNgnix訪問日志輪詢切割
創(chuàng)建腳本
[root@lnmp02?conf]#?vim?/server/scripts/cut_nginx_log.sh#!/bin/sh Dateformat=`date?+%Y%m%d` Basedir="/application/nginx" Nginxlogdir="$Basedir/logs" Logname="access_www" [?-d?$Nginxlogdir?]?&&?cd?$Nginxlogdir||exit?1 [?-f?${Logname}.log?]||exit?1 /bin/mv?${Logname}.log?${Dateformat}_${Logname}.log #/bin/mv?access_bbs.log?${Dateformat}_access_bbs.log #/bin/mv?access_blog.log?${Dateformat}_access_blog.log $Basedir/sbin/nginx?-s?reload通過定時任務(wù)實現(xiàn)每天0點執(zhí)行/server/scripts/cut_nginx_log.sh來切割日志
[root@lnmp02?conf]#?crontab?-e #########nginx訪問日志切割################ 00?00?*?*?*?/bin/sh?/server/scripts/cut_nginx_log.sh?&>/dev/null測試效果
[root@lnmp02?logs]#?/bin/sh?/server/scripts/cut_nginx_log.sh [root@lnmp02?logs]#?ll 總用量?100 -rw-r--r--?1?root?root??1458?6月??25?00:54?20170625_access_www.log -rw-r--r--?1?root?root?40537?6月??25?00:54?access.log -rw-r--r--?1?root?root?????0?6月??25?01:13?access_www.log -rw-r--r--?1?root?root?44005?6月??25?01:13?error.log -rw-r--r--?1?root?root?????5?6月??24?17:05?nginx.pid7 Nginx rewrite
指令語法:rewrite regex replacement [flag]
rewrite ^/ (.*)? http://www.etiantian.org/$1 permanent;
?
flag標記說明
flag標記符號 | 說明 |
last | 本條規(guī)則匹配完成后,繼續(xù)向下匹配新的location URI規(guī)則 |
break | 本條規(guī)則匹配完成后即終止,不再匹配后面的任何規(guī)則 |
redirect | 返回302臨時重定向,瀏覽器顯示跳轉(zhuǎn)后的URL地址 |
permanent | 返回301永久重定向,瀏覽器顯示跳轉(zhuǎn)后的URL地址 |
?
7.1 301跳轉(zhuǎn)
?
[root@lnmp02?conf]#?vim?extra/www.confserver?{listen???????80;server_name??etiantian123.org;rewrite?^/?(.*)??http://www.etiantian123.org/$1?permanent;#當用戶訪問etiantian123.org及下面的任意內(nèi)容時,都會通過這條rewrite跳轉(zhuǎn)到www.etiantian123.org對應(yīng)的地址 }server?{listen???????80;server_name??www.etiantian123.org;location?/?{root???html/www;index??index.html?index.htm;}access_log?logs/access_www.log?main; }7.2 不同域名的URL跳轉(zhuǎn)
實現(xiàn)訪問http://blog.etiantian123.org時跳轉(zhuǎn)到
http://www.etiantian123.org/blog/wangxin.html
?
跳轉(zhuǎn)前,http://blog.etiantian123.org對應(yīng)的站點配置如下:
[root@lnmp02?conf]#?vim?extra/blog.conf server?{listen???????80;server_name??blog.etiantian123.org;location?/?{root???html/blog;index??index.html?index.htm;}if??(?$http_host?~*?“^(.*)\.etiantian123\.org$”?)?{set?$domain?$1;rewrite?^(.*)??http://www.etiantian123.org/$domain/wangxin.html?break;} }要配置的規(guī)則內(nèi)容為:
if??(?$http_host?~*?“^(.*)\.etiantian123\.org$”?)?{set?$domain?$1;rewrite?^(.*)??http://www.etiantian123.org/$domain/wangxin.html?break;}跳轉(zhuǎn)后,http://www.etiantian123.org/blog/wangxin.html地址對應(yīng)的站點配置如下
[root@lnmp02?conf]#?vim?extra/www.confserver?{listen???????80;server_name??www.etiantian123.org;location?/?{root???html/www;index??index.html?index.htm;}access_log?logs/access_www.log?main; }8 Nginx 訪問認證
虛擬主機的配置
[root@lnmp02?nginx]#?vim?conf/extra/www.confserver?{listen???????80;server_name??www.etiantian123.org?etiantian123.org;location?/?{root???html/www;index??index.html?index.htm;auth_basic????????????"wangxin?test";auth_basic_user_file??/application/nginx/conf/htpasswd;}access_log?logs/access_www.log?main;}設(shè)置帳號密碼,并修改權(quán)限
[root@lnmp02?nginx]#?yum?install?-y?httpd [root@lnmp02?nginx]#?which?htpasswd /usr/bin/htpasswd[root@lnmp02?nginx]#?htpasswd?-bc?/application/nginx/conf/htpasswd?wangxian?123456 Adding?password?for?user?wangxian [root@lnmp02?nginx]#?chmod?400?/application/nginx/conf/htpasswd [root@lnmp02?nginx]#?chown?nginx?/application/nginx/conf/htpasswd [root@lnmp02?nginx]#?cat?/application/nginx/conf/htpasswd wangxian:K4zAKSh.uY.sY??????===密碼是加密的檢查語法,重啟服務(wù)
[root@lnmp02?nginx]#?/application/nginx/sbin/nginx?-t nginx:?the?configuration?file?/application/nginx-1.6.3//conf/nginx.conf?syntax?is?ok nginx:?configuration?file?/application/nginx-1.6.3//conf/nginx.conf?test?is?successful [root@lnmp02?nginx]#?/application/nginx/sbin/nginx?-s?reload瀏覽器測試
轉(zhuǎn)載于:https://blog.51cto.com/zaizheni/2345308
總結(jié)
以上是生活随笔為你收集整理的Nginx Web服务应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 02java基础
- 下一篇: 怎么给工作中重要的pdf文件加密