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

时间:2023-03-09 01:54:53
Linux centosVMware Nginx安装、 默认虚拟主机、Nginx用户认证、Nginx域名重定向

一、 Nginx安装

cd /usr/local/src

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

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

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

tar zxvf nginx-1.12.1.tar.gz

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

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

进入配置文件

cd nginx-1.12.1

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

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

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

编译

make && make install

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

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

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

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

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

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

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

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

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

chkconfig --add nginx

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

chkconfig nginx on 设置开机启动

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

更改配置文件

cd /usr/local/nginx/conf/

ls

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

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

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

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

先拷贝一份

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

进入网址复制脚本

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

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

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

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

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

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

测试是否成功

nginx欢迎页面

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

在index.html文件下面定义过

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

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

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

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

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

支持nginx解析地方

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

自己编写一个网页测试

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

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

测试

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

二、 默认虚拟主机

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

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

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

编辑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;

}

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

mkdir -p /data/wwwroot/default/

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

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

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

编辑wwwroot其他域名网页

mkdir -p /data/wwwroot/default/

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

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

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

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

或者

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

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

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

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

重启

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

或者重新加载

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

或者

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

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

检测一下

curl localhost

curl -x127.0.0.1:80 aaa.conf

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

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

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

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

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

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

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

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

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

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

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;  用户名密码文件

}

}

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

yum install -y httpd

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

htpasswd -c /usr/local/nginx/conf/htpasswd davery  设置密码为davery

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

cat一下就生成文件了

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

生成第二个

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

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

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

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

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

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

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主目录,创建后,使用认证密码登录就可以访问到了

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

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

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

这个设置只针对目录

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

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

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

在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

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

设置用户认证针对文件

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

设置为匹配admin.php

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

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

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

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

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

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

具体内容访问: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

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

测试

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

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

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