Nginx安装,默认虚拟主机,Nginx用户认证,Nginx域名重定向

Nginx安装

  • cd /usr/local/src
  • wget http://nginx.org/download/nginx-1.12.1.tar.gz
  • tar zxf nginx-1.12.1.tar.gz
  • ./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/; mv nginx.conf nginx.conf.bak
  • 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
  • netstat -lntp |grep 80

首先切换到/usr/local/src/目录下# cd /usr/local/src/php

下载Nginx安装包html

解压并切换到nginx-1.12.1目录下linux

配置nginx

编译和安装# make && make installgit

查看nginx目录vim

建立启动脚本,添加内容,保存退出windows

更改配置文件的权限,添加和启动系统服务浏览器

拷贝配置文件curl

更改配置文件,添加内容,保存退出工具

user nobody nobody; 定义启动Nginx的用户

worker_processes 2; 定义子进程数目

worker_rlimit_nofile 51200; 定义Nginx最多可打开的文件数目

worker_connections 6000; 定义进程最大链接数

做为一个网站的服务,必须监听一个端口,默认监听的是80端口

检查配置文件语法对错,并启动nginx服务

查看nginx进程

测试nginx

建立一个php测试文件

解析成功

默认虚拟主机

  • vim /usr/local/nginx/conf/nginx.conf //增长include vhost/*.conf
  • mkdir /usr/local/nginx/conf/vhost
  • cd !$; vim default.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/
  • echo “This is a default site.”>/data/wwwroot/default/index.html
  • /usr/local/nginx/sbin/nginx -t
  • /usr/local/nginx/sbin/nginx -s reload
  • curl localhost
  • curl -x127.0.0.1:80 123.com

首先切换到usr/local/nginx/conf目录下#cd /usr/local/nginx/conf

编辑Nginx配置文件

删除原有server内容

在删除内容的原有位置添加一行include vhost/*.conf;保存退出

添加一台虚拟主机

建立目录,在目录下新建index.html

检测配置文件是否存在语法错误

从新加载nginx

测试访问

Nginx用户认证

  • 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 aming
  • -t && -s reload //测试配置并从新加载
  • mkdir /data/wwwroot/test.com
  • echo “test.com”>/data/wwwroot/test.com/index.html
  • curl -x127.0.0.1:80 test.com -I//状态码为401说明须要验证
  • curl -uaming:passwd 访问状态码变为200
  • 编辑windows的hosts文件,而后在浏览器中访问test.com会有输入用户、密码的弹窗
  • 针对目录的用户认证

    location /admin/

    {

        auth_basic "Auth";

        auth_basic_user_file /usr/local/nginx/conf/htpasswd;

    }

针对全站

首先切换到usr/local/nginx/conf/vhost/目录下,新建一个虚拟主机,添加内容,保存退出

location / ,指定设置用户认证的目录

auth_basic "Auth", 定义用户认证的名字

auth_basic_user_file /usr/local/nginx/conf/htpasswd,用户名密码文件

生成密码文件,须要用到Apache生成密码文件的工具“ htpasswd ”,若没安装,可直接 yum install -y httpd 进行安装;若已安装过了,直接使用htpasswd

生成第一个用户

生成第二个用户,不用加-c,若是加上会重置第一次

检查配置nginx文件是否存在语法错误,并从新加载

测试访问

提示错误码401,须要用curl指定用户

提示404,须要新建index.html

针对访问目录(admin),须要认证

进入配置文件,在location / 后加上admin/ 便可,保存退出

检查配置nginx文件是否存在语法错误,并从新加载

作一个测试页面,直接访问 test.com/admin/ 会显示401,指定用户名和密码后就会显示正常

针对URL(admin.php)

修改配置文件# vim test.com.conf

检查配置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;

        }

    }

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

修改配置文件,以下,保存退出

server_name后面支持写多个域名,permanent为永久重定向,状态码为301,若是写redirect则为302

检查配置nginx文件是否存在语法错误,并从新加载

作测试,用test2.com去访问,会显示301

定义一个不一样的网址

用test4.com访问,显示404,会去访问默认虚拟主机

相关文章
相关标签/搜索