一: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. [[email protected] 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;
}
原文地址:http://blog.51cto.com/10941098/2159466