Nginx經常使用功能php
一、Http代理,反向代理:做爲web服務器最經常使用的功能之一,尤爲是反向代理。css
這裏我給來2張圖,對正向代理與反響代理作個詮釋,具體細節,你們能夠翻閱下資料。html
Nginx在作反向代理時,×××能穩定,而且可以提供配置靈活的轉發功能。Nginx能夠根據不一樣的正則匹配,採起不一樣的轉發策略,好比圖片文件結尾的走文件服務器,動態頁面走web服務器,只要你正則寫的沒問題,又有相對應的服務器解決方案,你就能夠爲所欲爲的玩。而且Nginx對返回結果進行錯誤頁跳轉,異常判斷等。若是被分發的服務器存在異常,他能夠將請求從新轉發給另一臺服務器,而後自動去除異常服務器。mysql
二、負載均衡linux
Nginx提供的負載均衡策略有2種:內置策略和擴展策略。內置策略爲輪詢,加權輪詢,Ip hash。擴展策略,就天馬行空,只有你想不到的沒有他作不到的啦,你能夠參照全部的負載均衡算法,給他一一找出來作下實現。nginx
上3個圖,理解這三種負載均衡算法的實現web
Ip hash算法,對客戶端請求的ip進行hash操做,而後根據hash結果將同一個客戶端ip的請求分發給同一臺服務器進行處理,能夠解決session不共享的問題。 算法
三、web緩存sql
Nginx能夠對不一樣的文件作不一樣的緩存處理,配置靈活,而且支持FastCGI_Cache,主要用於對FastCGI的動態程序進行緩存。配合着第三方的ngx_cache_purge,對制定的URL緩存內容能夠的進行增刪管理。vim
四、Nginx相關地址
源碼:https://trac.nginx.org/nginx/browser
官網:http://www.nginx.org/
Nginx配置文件結構:
若是你下載好啦,你的安裝文件,不妨打開conf文件夾的nginx.conf文件,Nginx服務器的基礎配置,默認的配置也存放在此。
在nginx.conf的註釋符號位#
nginx文件的結構,這個對剛入門的同窗,能夠多看兩眼。
默認的config
View Code
nginx文件結構
... #全局塊
events { #events塊
...
}
http #http塊
{
... #http全局塊
server #server塊
{
... #server全局塊
location [PATTERN] #location塊
{
...
}
location [PATTERN]
{
...
}
}
server
{
...
}
... #http全局塊
}
一、全局塊:配置影響nginx全局的指令。通常有運行nginx服務器的用戶組,nginx進程pid存放路徑,日誌存放路徑,配置文件引入,容許生成worker process數等。
二、events塊:配置影響nginx服務器或與用戶的網絡鏈接。有每一個進程的最大鏈接數,選取哪一種事件驅動模型處理鏈接請求,是否容許同時接受多個網路鏈接,開啓多個網絡鏈接序列化等。
三、http塊:能夠嵌套多個server,配置代理,緩存,日誌定義等絕大多數功能和第三方模塊的配置。如文件引入,mime-type定義,日誌自定義,是否使用sendfile傳輸文件,鏈接超時時間,單鏈接請求數等。
四、server塊:配置虛擬主機的相關參數,一個http中能夠有多個server。
五、location塊:配置請求的路由,以及各類頁面的處理狀況。
如下是對location快的詳細解釋:
語法規則: location [=|~|~*|^~] /uri/ { … }
= 開頭表示精確匹配
^~ 開頭表示uri以某個常規字符串開頭,理解爲匹配 url路徑便可。nginx不對url作編碼,所以請求爲/static/20%/aa,能夠被規則^~ /static/ /aa匹配到(注意是空格)。
~ 開頭表示區分大小寫的正則匹配
~* 開頭表示不區分大小寫的正則匹配
!~和!~*分別爲區分大小寫不匹配及不區分大小寫不匹配 的正則
/ 通用匹配,任何請求都會匹配到。
多個location配置的狀況下匹配順序爲(參考資料而來,還未實際驗證,試試就知道了,沒必要拘泥,僅供參考):
首先匹配 =,其次匹配^~, 其次是按文件中順序的正則匹配,最後是交給 / 通用匹配。當有匹配成功時候,中止匹配,按當前匹配規則處理請求。
例子,有以下匹配規則: view plain copy
location / {
#規則A
}
location /login {
#規則B
}
location ^~ /static/ {
#規則C
}
location ~ \.(gif|jpg|png|js|css)$ {
#規則D
}
location ~* \.png$ {
#規則E
}
location !~ \.xhtml$ {
#規則F
}
location !~* \.xhtml$ {
#規則G
}
location / {
#規則H
}
那麼產生的效果以下:
訪問根目錄/, 好比http://localhost/ 將匹配規則A
訪問 http://localhost/login 將匹配規則B,http://localhost/register 則匹配規則H
訪問 http://localhost/static/a.html 將匹配規則C
訪問 http://localhost/a.gif, http://localhost/b.jpg 將匹配規則D和規則E,可是規則D順序優先,規則E不起做用,而 http://localhost/static/c.png 則優先匹配到 規則C
訪問 http://localhost/a.PNG 則匹配規則E, 而不會匹配規則D,由於規則E不區分大小寫。
訪問 http://localhost/a.xhtml 不會匹配規則F和規則G,http://localhost/a.XHTML不會匹配規則G,由於不區分大小寫。規則F,規則G屬於排除法,符合匹配規則可是不會匹配到,因此想一想看實際應用中哪裏會用到。
訪問 http://localhost/category/id/1111 則最終匹配到規則H,由於以上規則都不匹配,這個時候應該是nginx轉發請求給後端應用服務器,好比FastCGI(php),tomcat(jsp),nginx做爲方向代理服務器存在。
因此實際使用中,一般至少有三個匹配規則定義,以下:
#直接匹配網站根,經過域名訪問網站首頁比較頻繁,使用這個會加速處理,官網如是說。
#這裏是直接轉發給後端應用服務器了,也能夠是一個靜態首頁
# 第一個必選規則
location / {
proxy_pass http://tomcat:8080/index
}
# 第二個必選規則是處理靜態文件請求,這是nginx做爲http服務器的強項
# 有兩種配置模式,目錄匹配或後綴匹配,任選其一或搭配使用
location ^~ /static/ {
root /webroot/static/;
}
location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {
root /webroot/res/;
}
#第三個規則就是通用規則,用來轉發動態請求到後端應用服務器
#非靜態文件請求就默認是動態請求,本身根據實際把握
#畢竟目前的一些框架的流行,帶.php,.jsp後綴的狀況不多了
location / {
proxy_pass http://tomcat:8080/
}
如下爲nginx配置文檔nginx.conf的說明:
#user administrator administrators; #配置用戶或者組,默認爲nobody nobody。 #worker_processes 2; #容許生成的進程數,默認爲1 #pid /nginx/pid/nginx.pid; #指定nginx進程運行文件存放地址 error_log log/error.log debug; #制定日誌路徑,級別。這個設置能夠放入全局塊,http塊,server塊,級別以此爲:debug|info|notice|warn|error|crit|alert|emerg events { accept_mutex on; #設置網路鏈接序列化,防止驚羣現象發生,默認爲on multi_accept on; #設置一個進程是否同時接受多個網絡鏈接,默認爲off #use epoll; #事件驅動模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport worker_connections 1024; #最大鏈接數,默認爲512 } http { include mime.types; #文件擴展名與文件類型映射表 default_type application/octet-stream; #默認文件類型,默認爲text/plain #access_log off; #取消服務日誌 log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定義格式 access_log log/access.log myFormat; #combined爲日誌格式的默認值 sendfile on; #容許sendfile方式傳輸文件,默認爲off,能夠在http塊,server塊,location塊。 sendfile_max_chunk 100k; #每一個進程每次調用傳輸數量不能大於設定的值,默認爲0,即不設上限。 keepalive_timeout 65; #鏈接超時時間,默認爲75s,能夠在http,server,location塊。 upstream mysvr { server 127.0.0.1:7878; server 192.168.10.121:3333 backup; #熱備 } error_page 404 https://www.baidu.com; #錯誤頁 server { keepalive_requests 120; #單鏈接請求上限次數。 listen 4545; #監聽端口 server_name 127.0.0.1; #監聽地址 location ~*^.+$ { #請求的url過濾,正則匹配,~爲區分大小寫,~*爲不區分大小寫。 #root path; #根目錄 #index vv.txt; #設置默認頁 proxy_pass http://mysvr; #請求轉向mysvr 定義的服務器列表
} } }
一、1.$remote_addr 與$http_x_forwarded_for: 用以記錄客戶端的ip地址;
2.$remote_user :用來記錄客戶端用戶名稱;
3.$time_local : 用來記錄訪問時間與時區;
4.$request : 用來記錄請求的url與http協議;
5.$status : 用來記錄請求狀態;成功是200,
6.$body_bytes_s ent :記錄發送給客戶端文件主體內容大小;
7.$http_referer :用來記錄從那個頁面連接訪問過來的;
8.$http_user_agent :記錄客戶端瀏覽器的相關信息;
二、驚羣現象:一個網路鏈接到來,多個睡眠的進程被同事叫醒,但只有一個進程能得到連接,這樣會影響系統性能。
三、每一個指令必須有分號結束。
安裝步驟:(實驗環境redhat6.0-X64位系統)
一、先下載nginx-1.4.1.tar.gz到服務器
二、解壓縮軟件包
三、建立系統用戶和系統組nginx
四、編譯安裝nginx
[root@lamp ~]# lftp test@10.109.134.247 登陸ftp服務器
Password:
lftp test@10.109.134.247:/> get nginx-1.4.1.tar.gz 從ftp服務器下載安裝包
767107 bytes transferred
lftp test@10.109.134.247:/> exit
[root@lamp ~]# ls
alldatabases.sql Desktop first.sql Music Pictures stu.db
Documents install.log mysql-5.5.28 Public Templates
cmake-2.8.8 Downloads install.log.syslog nginx-1.4.1.tar.gz nginx-1.4.1
[root@lamp ~]# tar -xf nginx-1.4.1.tar.gz 解壓縮安裝包
[root@lamp ~]# ls
alldatabases.sql Desktop first.sql Music Pictures stu.db
Documents install.log mysql-5.5.28 Public Templates
cmake-2.8.8 Downloads install.log.syslog nginx-1.4.1.tar.gz nginx-1.4.1
[root@lamp ~]# du -sh nginx-1.4.1 查看目錄佔用的大小
5.2Mnginx-1.4.1
[root@lamp ~]# groupadd -r -g 108 nginx 建立系統組nginx並指定GID爲108
[root@lamp ~]# useradd -r -u 108 -g 108 nginx 建立系統用戶nginx並指定GID和UID爲108
[root@lamp ~]# rpm -q pcre-devel 查詢pcre-devel模塊是否安裝
package pcre-devel is not installed
[root@lamp ~]# yum -y install pcre-devel 安裝pcre-devel模塊,此模塊爲nginx所依賴的模塊
Loaded plugins: refresh-packagekit, rhnplugin
This system is not registered with RHN.
RHN support will be disabled.
Server | 3.7 kB 00:00 ...
Setting up Install Process
Resolving Dependencies
--> Running transaction check
................
Running Transaction
Warning: RPMDB altered outside of yum.
Installing : pcre-devel-7.8-3.1.el6.x86_64 1/1
Installed:
pcre-devel.x86_64 0:7.8-3.1.el6
Complete! 安裝完成
[root@lamp ~]# cd nginx-1.4.1
[root@lamp nginx-1.4.1]# ./configure --prefix=/usr --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre=/usr --with-file-aio --with-http_p_w_picpath_filter_module 編譯安裝指定安裝路徑--prefix,指定執行命令路徑--sbin-path,指定配置文檔路徑--conf-path,指定錯誤日誌路徑--error-log-path,指定http訪問日誌路徑--http-log-path,指定pid路徑--pid-path等操做。
checking for GD library in /usr/local/ ... not found
checking for GD library in /usr/pkg/ ... not found
checking for GD library in /opt/local/ ... not found
./configure: error: the HTTP p_w_picpath filter module requires the GD library.
You can either do not enable the module or install the libraries.
提示GD庫沒有安裝,沒法支持p_w_picpath filter module模塊,解決方法以下,安裝gd-2.0.35和gd-devel-2.0.35便可。
lftp test@10.109.134.247:/> mget gd-2.0.35-11.el6.x86_64.rpm gd-devel-2.0.35-11.el6.x86_64.rpm 從ftp服務器上獲取gd和gd-devel的rpm包進行安裝。
[root@lamp ~]# rpm -ivh gd-2.0.35-11.el6.x86_64.rpm
warning: gd-2.0.35-11.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:gd ########################################### [100%]
[root@lamp ~]# rpm -ivh gd-devel-2.0.35-11.el6.x86_64.rpm
warning: gd-devel-2.0.35-11.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:gd-devel ########################################### [100%]
[root@lamp ~]# cd nginx-1.4.1
[root@lamp nginx-1.4.1]# ./configure --prefix=/usr --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre=/usr --with-file-aio --with-http_p_w_picpath_filter_module
checking for OS
+ Linux 2.6.32-71.el6.x86_64 x86_64
checking for C compiler ... found
+ using GNU C compiler
+ gcc version: 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC)
............................................
nginx configuration prefix: "/etc/nginx"
nginx configuration file: "/etc/nginx/nginx.conf"
nginx pid file: "/var/run/nginx/nginx.pid"
nginx error log file: "/var/log/nginx/error.log"
nginx http access log file: "/var/log/nginx/access.log"
nginx http client request body temporary files: "/var/tmp/nginx/client/"
nginx http proxy temporary files: "/var/tmp/nginx/proxy/"
nginx http fastcgi temporary files: "/var/tmp/nginx/fcgi/"
nginx http uwsgi temporary files: "/var/tmp/nginx/uwsgi"
nginx http scgi temporary files: "/var/tmp/nginx/scgi"
#再次執行編譯時,沒有報錯,繼續執行編譯安裝
[root@lamp nginx-1.4.1]# make 安裝時報錯,需取消編譯安裝時--with-pcre的指定路徑
make -f objs/Makefile
make[1]: Entering directory `/root/nginx-1.4.1'
cd /usr \
&& if [ -f Makefile ]; then make distclean; fi \
&& CC="cc" CFLAGS="-O2 -fomit-frame-pointer -pipe " \
./configure --disable-shared
/bin/sh: line 2: ./configure: No such file or directory
make[1]: *** [/usr/Makefile] Error 127
make[1]: Leaving directory `/root/nginx-1.4.1'
make: *** [build] Error 2
[root@lamp nginx-1.4.1]# make clean 清空編譯緩存
[root@lamp nginx-1.4.1]# ./configure --prefix=/usr --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre --with-file-aio --with-http_p_w_picpath_filter_module **此處不指定--with-pcre路徑,再次編譯
.........................
nginx path prefix: "/usr"
nginx binary file: "/usr/sbin/nginx"
nginx configuration prefix: "/etc/nginx"
nginx configuration file: "/etc/nginx/nginx.conf"
nginx pid file: "/var/run/nginx/nginx.pid"
nginx error log file: "/var/log/nginx/error.log"
nginx http access log file: "/var/log/nginx/access.log"
nginx http client request body temporary files: "/var/tmp/nginx/client/"
nginx http proxy temporary files: "/var/tmp/nginx/proxy/"
nginx http fastcgi temporary files: "/var/tmp/nginx/fcgi/"
nginx http uwsgi temporary files: "/var/tmp/nginx/uwsgi"
nginx http scgi temporary files: "/var/tmp/nginx/scgi" 編譯完成
[root@lamp nginx-1.4.1]# make #執行make
objs/src/http/modules/ngx_http_flv_module.o \
objs/src/http/modules/ngx_http_upstream_ip_hash_module.o \
objs/src/http/modules/ngx_http_upstream_least_conn_module.o \
objs/src/http/modules/ngx_http_upstream_keepalive_module.o \
objs/src/http/modules/ngx_http_stub_status_module.o \
objs/ngx_modules.o \
-lpthread -lcrypt -lpcre -lssl -lcrypto -ldl -lz -lgd
make[1]: Leaving directory `/root/nginx-1.4.1'
make -f objs/Makefile manpage
make[1]: Entering directory `/root/nginx-1.4.1'
sed -e "s|%%PREFIX%%|/usr|" \
-e "s|%%PID_PATH%%|/var/run/nginx/nginx.pid|" \
-e "s|%%CONF_PATH%%|/etc/nginx/nginx.conf|" \
-e "s|%%ERROR_LOG_PATH%%|/var/log/nginx/error.log|" \
< man/nginx.8 > objs/nginx.8
make[1]: Leaving directory `/root/nginx-1.4.1' 編譯完成
[root@lamp nginx-1.4.1]# make install
make -f objs/Makefile install
make[1]: Entering directory `/root/nginx-1.4.1'
test -d '/usr' || mkdir -p '/usr'
test -d '/usr/sbin' || mkdir -p '/usr/sbin'
test ! -f '/usr/sbin/nginx' || mv '/usr/sbin/nginx' '/usr/sbin/nginx.old'
cp objs/nginx '/usr/sbin/nginx'
test -d '/etc/nginx' || mkdir -p '/etc/nginx'
cp conf/koi-win '/etc/nginx'
cp conf/koi-utf '/etc/nginx'
cp conf/win-utf '/etc/nginx'
test -f '/etc/nginx/mime.types' || cp conf/mime.types '/etc/nginx'
cp conf/mime.types '/etc/nginx/mime.types.default'
test -f '/etc/nginx/fastcgi_params' || cp conf/fastcgi_params '/etc/nginx'
cp conf/fastcgi_params '/etc/nginx/fastcgi_params.default'
test -f '/etc/nginx/fastcgi.conf' || cp conf/fastcgi.conf '/etc/nginx'
cp conf/fastcgi.conf '/etc/nginx/fastcgi.conf.default'
test -f '/etc/nginx/uwsgi_params' || cp conf/uwsgi_params '/etc/nginx'
cp conf/uwsgi_params '/etc/nginx/uwsgi_params.default'
test -f '/etc/nginx/scgi_params' || cp conf/scgi_params '/etc/nginx'
cp conf/scgi_params '/etc/nginx/scgi_params.default'
test -f '/etc/nginx/nginx.conf' || cp conf/nginx.conf '/etc/nginx/nginx.conf'
cp conf/nginx.conf '/etc/nginx/nginx.conf.default'
test -d '/var/run/nginx' || mkdir -p '/var/run/nginx'
test -d '/var/log/nginx' || mkdir -p '/var/log/nginx'
test -d '/usr/html' || cp -R html '/usr'
test -d '/var/log/nginx' || mkdir -p '/var/log/nginx'
make[1]: Leaving directory `/root/nginx-1.4.1' 編譯安裝完成
爲nginx提供系統腳本,腳本內容以下:
新建文件/etc/rc.d/init.d/nginx內容以下:
******************************************************************
[root@lamp nginx-1.4.1]# vim /etc/rc.d/init.d/nginx
#!/bin/bash
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /etc/nginx/nginx.conf
# config: /etc/sysconfig/nginx
# pidfile: /var/run/nginx.pid
# Source function library
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/etc/nginx/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
make_dirs() {
# make required directories
user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
options=`$nginx -V 2>&1 | grep 'configure arguments:'`
for opt in $options; do
if [ `echo $opt | grep '.*-temp-path'` ]; then
value=`echo $opt | cut -d "=" -f 2`
if [ ! -d "$value" ]; then
# echo "creating" $value
mkdir -p $value && chown -R $user $value
fi
fi
done
}
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] ||exit 6
make_dirs
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
sleep 1
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
;;
esac
*****************************************************************************
然後爲此腳本賦予執行權限:
chmod +x /etc/rc.d/init.d/nginx
[root@lamp nginx-1.4.1]# chmod +x /etc/rc.d/init.d/nginx
[root@lamp nginx-1.4.1]# chkconfig --add nginx #增長到開機運行列表
[root@lamp nginx-1.4.1]# chkconfig nginx on 啓用開機運行nginx
[root@lamp nginx-1.4.1]# chkconfig --list nginx
nginx 0:off1:off2:on3:on4:on5:on6:of
[root@lamp nginx-1.4.1]# service nginx start
Starting nginx: [ OK ]
而後經過瀏覽器訪問該IP地址便可:
實例:測試nginx基於用戶訪問控制
首先需安裝httpd服務,可是千萬不要開啓httpd服務,只是提供htpasswd用戶認證文件生成的功能,因此需關閉httpd服務,且不能讓其自動啓動,安裝httpd直接用yum -y install httpd 安裝後經過htpasswd生成用戶密碼訪問文件。
[root@lamp usr]# chkconfig --list httpd #查詢httpd是否開機啓動,確保開機不會自動啓動,且確保該httpd服務處於關閉狀態。
httpd 0:off1:off2:off3:off4:off5:off6:off
[root@lamp usr]# service httpd status #查詢httpd服務狀態
httpd is stopped
[root@lamp usr]# htpasswd -c -m /etc/nginx/.user_file tom #第一次生成用戶時需-c參數
New password:
Re-type new password:
Adding password for user tom
[root@lamp usr]# htpasswd -m /etc/nginx/.user_file jerry #第二次及之後生成用戶時不能使用-c參數,請牢記。
New password:
Re-type new password:
Adding password for user jerry
生成用戶訪問控制文件後,編輯nginx.conf配置文檔進行相關修改:
[root@lamp usr]# vim /etc/nginx/nginx.conf #編輯配置文檔在須要經過訪問控制的主機的location中添加控制功能的選項,以下紅色框內。
[root@lamp usr]# service nginx restart
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Stopping nginx: [ OK ]
Starting nginx: [ OK ]
訪問提示須要用戶名和密碼
nginx-1.4.1.tar.gz下載地址:http://nginx.org/download/
gd-devel-2.0.35下載地址:http://download.csdn.net/detail/fhqsse220/6828701
gd-2.0.35下載地址:http://rpmfind.net/linux/rpm2html/search.php?query=gd&submit=Search+...