【LNMP】Nginx安装、Nginx默认虚拟主机、Nginx用户认证和Nginx域名重定向

一、Nginx安装

进入src目录下载源码包并解压:


cd /usr/local/src

 wget http://nginx.org/download/nginx-1.12.1.tar.gz
 tar zxf nginx-1.12.1.tar.gz



进入nginx-1.12.1目录编译并安装nginx:


 ./configure --prefix=/usr/local/nginx

 make &&  make install






创建配置文件并做成启动脚本,复制如下内容(参考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/etc_init.d_nginx )
 vim /etc/init.d/nginx 



更改一下权限:

chmod 755 /etc/init.d/nginx



 


添加进开机启动项:

chkconfig --add nginx 
 chkconfig nginx on 



修改配置文件:

进入nginx配置文件目录,将原nginx.conf 文件备份,命名为后缀.bak:


 cd /usr/local/nginx/conf/

mv nginx.conf nginx.conf.bak



新建并添加如下内容到配置文件中:

 写入如下内容(参考  https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/nginx.conf  

vim nginx.conf


检查配置文件是否正确:
 /usr/local/nginx/sbin/nginx -t



启动nginx服务并端口是否启动:
 /etc/init.d/nginx  start
 netstat -lntp |grep 80



测试php解析

编辑并加入如下内容:

vi /usr/local/nginx/html/1.php 



 <?php
    echo "This is nginx test page.";
?>




查看解析结果:
 curl localhost/1.php



二、Nginx默认虚拟主机

打开nginx.conf编辑:

vim /usr/local/nginx/conf/nginx.conf 


增加这一行内容:
 include vhost/*.conf


在conf目录下创建vhost目录:
 mkdir /usr/local/nginx/conf/vhost 



新建并编辑一个conf文件,
 vim aaa.com.conf



加入如下内容:


server
{
    listen 80 default_server;                                  // 有这个标记的就是默认虚拟主机
    server_name aaa.com;
    index index.html index.htm index.php;
    root /data/wwwroot/default;
}



再创建一个/data/wwwroot/default/目录,如果已经存在,则不用创建:

 mkdir -p /data/wwwroot/default/



进入这个目录cd /data/wwwroot/default/,并新建定义一个index.html,输入以下内容:

 This is a default site.



检查一下配置文件是否正确:

 /usr/local/nginx/sbin/nginx -t



检查没有问题再重新加载一下:
 /usr/local/nginx/sbin/nginx -s reload



测试:
 curl localhost



也可以指定另外的域名测试:
 curl -x127.0.0.1:80 123.com




三、 Nginx用户认证


创建一个新的虚拟主机test.com.conf,并写入如下内容:

vim /usr/local/nginx/conf/vhost/test.com.conf


server
{
    listen 80;
    server_name test.com;
    index index.html index.htm index.php;
    root /data/wwwroot/test.com;
    
location  /
    {
        auth_basic              "Auth";
        auth_basic_user_file   /usr/local/nginx/conf/htpasswd;
}



生成密码文件:
 yum install -y httpd
 htpasswd -c /usr/local/nginx/conf/htpasswd amo

htpasswd  /usr/local/nginx/conf/htpasswd user1



(如果还要生成第二个用户密码文件,把-c去掉即可,如果不去掉的话就是重置密码的意思)


然后测试配置并重新加载:
/usr/local/nginx/sbin/nginx -t

 /usr/local/nginx/sbin/nginx -s reload




测试:

状态码为401说明需要验证
 curl -x127.0.0.1:80 test.com -I



创建test.com目录并输入test.com内容进去:

 mkdir /data/wwwroot/test.com
 echo “test.com”>/data/wwwroot/test.com/index.html



访问状态码变为200:
 curl -uamo -x127.0.0.1:80 test.com -I




四、Nginx域名重定向

 更改test.com.conf内容


server
{
    listen 80;
    server_name test.com test1.com test2.com;
    index index.html index.htm index.php;
    root /data/wwwroot/test.com;
    if ($host != 'test.com' ) {
        rewrite  ^/(.*)$  http://test.com/$1  permanent;
    }
}



去掉用户认证的配置,再保存退出:

 server_name 后面支持写多个域名,这里要和httpd的做一个对比
 permanent 为永久重定向,状态码为301,如果写redirect则为302



检测并重新加载:

/usr/local/nginx/sbin/nginx -t

/usr/local/nginx/sbin/nginx -s reload




测试,不管test2或test3,都重定向到test.com:

curl -x127.0.0.1:80 test2.com/index.html -I

curl -x127.0.0.1:80 test3.com/index.html -I







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值