一、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

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


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


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

 make &&  make install

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

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

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



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

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


更改一下权限:

chmod 755 /etc/init.d/nginx

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

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


添加进开机启动项:

chkconfig --add nginx 
 chkconfig nginx on 

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


修改配置文件:

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


 cd /usr/local/nginx/conf/

mv nginx.conf nginx.conf.bak

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


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

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

vim nginx.conf


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

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


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

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


测试php解析

编辑并加入如下内容:

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



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


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


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

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


二、Nginx默认虚拟主机

打开nginx.conf编辑:

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


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

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


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

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


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

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


加入如下内容:


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

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


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

 mkdir -p /data/wwwroot/default/

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


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

 This is a default site.

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


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

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

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


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

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


测试:
 curl localhost

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


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

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



三、 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;
}

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


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

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

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

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

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


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

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

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



测试:

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

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


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

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

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


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

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



四、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;
    }
}

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


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

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


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


检测并重新加载:

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

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

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



测试,不管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


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





相关文章:

  • 2021-07-30
  • 2021-08-02
  • 2022-12-23
  • 2021-06-01
  • 2022-01-02
  • 2022-12-23
  • 2021-04-12
  • 2021-06-13
猜你喜欢
  • 2021-11-10
  • 2021-11-17
  • 2021-12-09
  • 2022-01-19
  • 2021-04-03
  • 2021-11-10
  • 2021-09-28
相关资源
相似解决方案