1. 程式人生 > >nginx安裝、默認虛擬主機、nginx用戶認證、nginx域名重定向

nginx安裝、默認虛擬主機、nginx用戶認證、nginx域名重定向

意思 .org 定向 mod roo ali 編譯 permanent .com

一:nginx安裝

(1)下載、解壓 Nginx
#cd /usr/local/src/
#wget http://nginx.org/download/nginx-1.8.0.tar.gz
#tar zxvf nginx-1.8.0.tar.gz
(2)配置編譯選項
#cd nginx-1.8.0
#./configure \
--prefix=/usr/local/nginx \
--with-http_realip_module \
--with-http_sub_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-pcre

(3)編譯、安裝 Nginx
#make
#make install
因為nginx比較小,所以很快就會安裝完,而且也不會出什麽錯誤。
(4)啟動nginx:
#/usr/local/nginx/sbin/nginx
檢查nginx是否啟動:
#ps aux |grep nginx
看是否有進程。

首先配置nginx配置文件,使其能夠支持 php。
#vim /usr/local/nginx/conf/nginx.conf
找到
location = /50x.html {
root html;
}
在其後面新增如下配置:
location ~ .php$ {
root html;
fastcgi_pass unix:/tmp/php-fcgi.sock;

fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
重新加載 /usr/local/nginx/sbin/nginx -s reload
創建測試文件:
#vim /usr/local/nginx/html/2.php
內容如下:
<?php
echo "test php scripts.";
?>
測試:
#curl localhost/2.php
test php scripts. [root@localhost nginx]#
顯示成這樣,才說明PHP 解析正常。

二:默認虛擬主機

#mkdir /usr/local/nginx/conf/vhosts
#cd !$
#vim default.conf 加入如下配置
server
{
listen 80 default_server;
server_name localhost;
index index.html index.htm index.php;
root /tmp/11111;
deny all;
}
說明:我們在之前的 nginx.conf中就已經定義了 include語句,意思是它會包含一些配置,在這裏它會把/usr/local/nginx/conf/vhosts/目錄下的所有*.conf文件加載。所以,我們在這個目錄下定義了一個 default.conf文件,在這裏你會發現 listen 80後面還有一個關鍵詞叫做“default_server”,這個就是用來標記它是默認虛擬主機的。我們使用 deny all 限制了該虛擬主機禁止被任何人訪問。

三:nginx用戶認證

一、首先需要安裝 apache,可以使用 yum install httpd 安裝。然後生成密碼文
件:
#htpasswd -c -m /usr/local/nginx/conf/htpasswd test
這樣就添加了test用戶,第一次添加時需要加-c參數,第二次添加時不需要-c參數。
在nginx的虛擬主機配置文件中添加
/usr/local/nginx/vhosts/test.conf
location ~ .*admin.php$ {
auth_basic "Auth";
auth_basic_user_file /usr/local/nginx/conf/htpasswd;
include fastcgi_params;
fastcgi_pass unix:/tmp/php-fcgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
}
這樣就會把請求/uc_server/的訪問給限制了,只有輸入用戶名和密碼才可以繼續訪問,
基本上和apache的配置類似。
location /uc_server/ {
}:針對文件夾時,輸入php文件所在路徑

四:nginx域名重定向

在虛擬主機vhosts路徑下配置文件中配置如下:
在server_name後面添加需要跳轉的域名
if ($host != ‘www.a.com‘ ) {
rewrite ^/(.*)$ http://www.a.com/$1 permanent;
}
和 apache的相關配置很像。
301跳轉設置:

server {
listen 80;
server_name 123.com;
rewrite ^/(.*) http://456.com/$1 permanent;
access_log off;
}

302跳轉設置:

server {
listen 80;
server_name 123.com;
rewrite ^/(.*) http://456.com/$1 redirect;
access_log off;
}

nginx安裝、默認虛擬主機、nginx用戶認證、nginx域名重定向