zoukankan      html  css  js  c++  java
  • Linux centosVMware Nginx安装、 默认虚拟主机、Nginx用户认证、Nginx域名重定向

    一、 Nginx安装

    cd /usr/local/src

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

    版本在http://nginx.org/下载

    tar zxvf nginx-1.12.1.tar.gz

    进入配置文件

     cd nginx-1.12.1

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

     编译

    make && make install

    编写启动脚本vim /etc/init.d/nginx //复制如下内容

    https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/etc_init.d_nginx

    chmod 755 /etc/init.d/nginx 更改权限

    chkconfig --add nginx

    chkconfig nginx on 设置开机启动

    更改配置文件

    cd /usr/local/nginx/conf/

     ls

    配置文件conf,不用系统配置文件,使用自己的配置文件

    mv nginx.conf nginx.conf.1  拷贝系统配置文件,并移动到自己的文件下边

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

    先拷贝一份

    进入网址复制脚本

    /usr/local/nginx/sbin/nginx -t 测试语法

    /etc/init.d/nginx start  启动nginx

    /etc/init.d/nginx start netstat -lntp |grep 80

     

    测试是否成功

    nginx欢迎页面

     

    在index.html文件下面定义过

    vim nginx.conf里边有定义过,即默认虚拟主机页面

    访问任意网页都会跳转到主机页面

    支持nginx解析地方

    自己编写一个网页测试

    [root@davery conf]# vim /usr/local/nginx/html/1.php

    测试

    二、 默认虚拟主机

    vim /usr/local/nginx/conf/nginx.conf //增加

    include vhost/*.conf;   一定要有;

    编辑host相关配置

     mkdir /usr/local/nginx/conf/vhost

    vim aaa.conf 编辑文件

    server

    {

         listen 80 default_server;// 有这个标记的就是默认虚拟主机

         server_name aaa.com;

         index index.html index.htm index.php;

         root /data/wwwroot/default;

    }

    mkdir -p /data/wwwroot/default/

    把以前的server注释掉,并添加如上

    编辑wwwroot其他域名网页

    mkdir -p /data/wwwroot/default/

    或者

    echo “This is a default site.”>/data/wwwroot/default/index.html

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

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

    重启

     

    或者重新加载

    或者

    [root@davery default]# /usr/local/nginx/sbin/nginx -s reload

    检测一下

    curl localhost

    curl -x127.0.0.1:80 aaa.conf

     随便访问都默认是者个域名,都指向这个虚拟主机

    [root@davery default]# cd /usr/local/nginx/conf/

     

    理解: 需要两个地方都要创建才能访问成功

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

    vim /data/wwwroot/default/index.html

    This is a default site. 

    curl localhost

    curl -x127.0.0.1:80 aaa.conf

    curl -x127.0.0.1:80 111.com
    会先去访问aaa.conf里边的内容,然后脚本再指向/data/wwroot/default,再访问里边的index.html,即This is a default site.

    这里虚拟主机就是default_server

    三、Nginx用户认证

    cd /usr/local/nginx/conf/vhost  //写入如下内容

    [root@davery vhost]# vim aaa.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 davery  设置密码为davery

    cat一下就生成文件了

    生成第二个

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

     /usr/local/nginx/sbin/nginx -s reload //测试配置并重新加载

    测试提示401就说明需要用户认证

    aaa.com.conf就可以,test.com就不能访问

    [root@davery vhost]# mkdir /data/wwwroot/test.com
    [root@davery vhost]# echo "test.com" > /data/wwwroot/test.com/index.html
    [root@davery vhost]# curl -udavery:mimA123  -x127.0.0.1:80 test.com

    访问失败为没有创建test.com主目录,创建后,使用认证密码登录就可以访问到了

    定义访问admin时才需要认证,在配置文件中添加用户admin就可以

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

    这个设置只针对目录

    访问test.com就不需要用户密码认证了

    在admin下边创建一个index.html文件

    写入测试脚本,再次使用密码就可以访问到了

    [root@davery vhost]# mkdir /data/wwwroot/test.com/admin
    [root@davery vhost]# echo "test.com admin dir" > /data/wwwroot/test.com/admin/index.html

    设置用户认证针对文件

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

    设置为匹配admin.php

    /usr/local/nginx/sbin/nginx -t 测试语法

    /usr/local/nginx/sbin/nginx -s reload重加载

    测试:这时候访问目录就不需要用户认证了,访问admin.php文件才需要用户认证

    具体内容访问:centos7.aminglinux.com

    四、Nginx域名重定向

    更改配置文件

    vim /usr/local/nginx/conf/vhost/aaa.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;  即全写rewrite http://$host/(.*)$ http://test.com/%1 permanent

    }

    }

    server_name后面支持写多个域名,这里要和httpd的做一个对比

    permanent为永久重定向,状态码为301,如果写redirect则为302

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

     

    测试

    /usr/local/nginx/sbin/nginx -t 测试语法

    /usr/local/nginx/sbin/nginx -s reload重加载

  • 相关阅读:
    grunt 记录
    angularjs 剪贴板
    translate
    鼠标事件
    Typora书写macdown语法教程
    idea常用插件安装
    JDBC使用8.0驱动包连接mysql设置时区serverTimezone
    多服务器部署脚本
    jar包重启脚本-restart.sh
    spring-boot分环境打包为tar包
  • 原文地址:https://www.cnblogs.com/davery/p/8964756.html
Copyright © 2011-2022 走看看