十二周二次课javascript
12.6Nginx安装php
12.7默认虚拟主机css
12.8Nginx用户认证html
12.9Nginx域名重定向java
12.6Nginx安装node
Nginx安装linux
•cd /usr/local/srcnginx
• wget http://nginx.org/download/nginx-1.12.1.tar.gzgit
• tar zxf nginx-1.12.1.tar.gzweb
• ./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
测试php解析
• vi /usr/local/nginx/html/1.php //加入以下内容
• <?php
• echo "test php scripts.";
•?>
• curl localhost/1.php
1.切换到/usr/local/src/目录下
[root@tianqi-01 ~]# cd /usr/local/src/
[root@tianqi-01 src]#
2.下载Nginx安装包
[root@tianqi-01 src]# wget http://nginx.org/download/nginx-1.12.1.tar.gz
3.解压安装包
[root@tianqi-01 src]# tar zxvf nginx-1.12.1.tar.gz
4.切换到nginx-1.12.1目录下
[root@tianqi-01 src]# cd nginx-1.12.1
[root@tianqi-01 nginx-1.12.1]#
5.初始化./configure --prefix=/usr/local/nginx,并检查是否成功
[root@tianqi-01 nginx-1.12.1]# ./configure --prefix=/usr/local/nginx
[root@tianqi-01 nginx-1.12.1]# echo $?
0
[root@tianqi-01 nginx-1.12.1]#
6.编译make && make install
[root@tianqi-01 nginx-1.12.1]# make && make install
[root@tianqi-01 nginx-1.12.1]# echo $?
0
[root@tianqi-01 nginx-1.12.1]#
7.查看nginx目录
[root@tianqi-01 nginx-1.12.1]# ls /usr/local/nginx/
conf html logs sbin
[root@tianqi-01 nginx-1.12.1]#
8.支持-t 检查配置文件语法错误
[root@tianqi-01 nginx-1.12.1]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@tianqi-01 nginx-1.12.1]#
9.给nginx建立启动脚本,放在/etc/init.d/nginx,配置文件内容以下
将一些内容拷贝进去
#!/bin/bash
# chkconfig: - 30 21
# description: http service.
# Source Function Library
. /etc/init.d/functions
# Nginx Settings
NGINX_SBIN="/usr/local/nginx/sbin/nginx"
NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
NGINX_PID="/usr/local/nginx/logs/nginx.pid"
RETVAL=0
prog="Nginx"
start()
{
echo -n $"Starting $prog: "
mkdir -p /dev/shm/nginx_temp
daemon $NGINX_SBIN -c $NGINX_CONF
RETVAL=$?
echo
return $RETVAL
}
stop()
{
echo -n $"Stopping $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -TERM
rm -rf /dev/shm/nginx_temp
RETVAL=$?
echo
return $RETVAL
}
reload()
{
echo -n $"Reloading $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -HUP
RETVAL=$?
echo
return $RETVAL
}
restart()
{
stop
start
}
configtest()
{
$NGINX_SBIN -c $NGINX_CONF -t
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
restart
;;
configtest)
configtest
;;
*)
echo $"Usage: $0 {start|stop|reload|restart|configtest}"
RETVAL=1
esac
exit $RETVAL
而后保存退出
10.更改配置文件的权限
[root@tianqi-01 nginx-1.12.1]# chmod 755 /etc/init.d/nginx
[root@tianqi-01 nginx-1.12.1]#
11.将nginx加入到服务列表里
[root@tianqi-01 nginx-1.12.1]# chkconfig --add nginx
[root@tianqi-01 nginx-1.12.1]#
12.设置开机启动nginx服务
[root@tianqi-01 nginx-1.12.1]# chkconfig nginx on
[root@tianqi-01 nginx-1.12.1]#
13.定义配置文件,默认conf目录下有一个nginx.conf文件,但咱们不使用它,咱们使用本身配置的
[root@tianqi-01 nginx-1.12.1]# cd /usr/local/nginx/conf/
[root@tianqi-01 conf]# ls
fastcgi.conf fastcgi_params.default mime.types nginx.conf.default uwsgi_params
fastcgi.conf.default koi-utf mime.types.default scgi_params uwsgi_params.default
fastcgi_params koi-win nginx.conf scgi_params.default win-utf
[root@tianqi-01 conf]# mv nginx.conf nginx.conf.1
[root@tianqi-01 conf]#
14.建立一个配置文件,内容以下
[root@tianqi-01 conf]# vim nginx.conf
在配置文件中添加如下内容
代码地址为https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/nginx.conf
user nobody nobody; // user定义启动nginx的用户
worker_processes 2; //定义子进程有几个
error_log /usr/local/nginx/logs/nginx_error.log crit; //错误日志
pid /usr/local/nginx/logs/nginx.pid; // PID所在
worker_rlimit_nofile 51200; //nginx最多能够打开文件的上限
events
{
use epoll; //使用epoll模式
worker_connections 6000; // 进程最多有多少个链接
}
http
{
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 3526;
server_names_hash_max_size 4096;
log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
' $host "$request_uri" $status'
' "$http_referer" "$http_user_agent"';
sendfile on;
tcp_nopush on;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
connection_pool_size 256;
client_header_buffer_size 1k;
large_client_header_buffers 8 4k;
request_pool_size 4k;
output_buffers 4 32k;
postpone_output 1460;
client_max_body_size 10m;
client_body_buffer_size 256k;
client_body_temp_path /usr/local/nginx/client_body_temp;
proxy_temp_path /usr/local/nginx/proxy_temp;
fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
fastcgi_intercept_errors on;
tcp_nodelay on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 8k;
gzip_comp_level 5;
gzip_http_version 1.1;
gzip_types text/plain application/x-javascript text/css text/htm
application/xml;
server //一个server 对应一个虚拟主机,定义这个,才能正常访问网站,下面一整段,就是一个默认的虚拟主机
{
listen 80;
server_name localhost; //网站域名
index index.html index.htm index.php;
root /usr/local/nginx/html; //网站的根目录
location ~ \.php$ //配置解析php的部分
{
include fastcgi_params;
fastcgi_pass unix:/tmp/php-fcgi.sock; //nginx经过这一行配置来调用php-fpm服务
# fastcgi_pass 127.0.0.1:9000; //若是php-fpm监听的是9000端口,直接这样写配置便可
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
}
}
}
而后保存退出
15.编译好配置文件,检查配置文件是否存在语法错误
[root@tianqi-01 conf]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@tianqi-01 conf]#
16.启动nginx服务
[root@tianqi-01 conf]# /etc/init.d/nginx start
Starting nginx (via systemctl): [ OK ]
[root@tianqi-01 conf]#
17.查看nginx进程
[root@tianqi-01 conf]# ps aux |grep nginx
root 3701 0.0 0.0 20496 624 ? Ss 17:32 0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/confnginx.conf
nobody 3702 0.0 0.3 22940 3208 ? S 17:32 0:00 nginx: worker process
nobody 3703 0.0 0.3 22940 3208 ? S 17:32 0:00 nginx: worker process
root 3705 0.0 0.0 112660 984 pts/0 R+ 17:32 0:00 grep --color=auto nginx
[root@tianqi-01 src]# ps aux |grep php-fpm
root 1009 0.0 0.4 227204 4952 ? Ss 15:57 0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm 1010 0.0 0.4 227204 4712 ? S 15:57 0:00 php-fpm: pool www
php-fpm 1011 0.0 0.4 227204 4712 ? S 15:57 0:00 php-fpm: pool www
php-fpm 1012 0.0 0.4 227204 4712 ? S 15:57 0:00 php-fpm: pool www
php-fpm 1013 0.0 0.4 227204 4712 ? S 15:57 0:00 php-fpm: pool www
php-fpm 1014 0.0 0.4 227204 4716 ? S 15:57 0:00 php-fpm: pool www
php-fpm 1015 0.0 0.5 227204 5724 ? S 15:57 0:00 php-fpm: pool www
php-fpm 1016 0.0 0.4 227204 4716 ? S 15:57 0:00 php-fpm: pool www
php-fpm 1017 0.0 0.4 227204 4716 ? S 15:57 0:00 php-fpm: pool www
php-fpm 1018 0.0 0.4 227204 4716 ? S 15:57 0:00 php-fpm: pool www
php-fpm 1019 0.0 0.4 227204 4716 ? S 15:57 0:00 php-fpm: pool www
php-fpm 1020 0.0 0.4 227204 4716 ? S 15:57 0:00 php-fpm: pool www
php-fpm 1021 0.0 0.4 227204 4716 ? S 15:57 0:00 php-fpm: pool www
php-fpm 1022 0.0 0.4 227204 4716 ? S 15:57 0:00 php-fpm: pool www
php-fpm 1023 0.0 0.4 227204 4720 ? S 15:57 0:00 php-fpm: pool www
php-fpm 1024 0.0 0.4 227204 4720 ? S 15:57 0:00 php-fpm: pool www
php-fpm 1025 0.0 0.4 227204 4720 ? S 15:57 0:00 php-fpm: pool www
php-fpm 1026 0.0 0.4 227204 4720 ? S 15:57 0:00 php-fpm: pool www
php-fpm 1027 0.0 0.4 227204 4720 ? S 15:57 0:00 php-fpm: pool www
php-fpm 1028 0.0 0.4 227204 4720 ? S 15:57 0:00 php-fpm: pool www
php-fpm 1029 0.0 0.4 227204 4720 ? S 15:57 0:00 php-fpm: pool www
root 3791 0.0 0.0 112660 984 pts/0 R+ 19:12 0:00 grep --color=auto php-fpm
[root@tianqi-01 src]#
18.测试nginx,这里能够输入curl localhost 或者输入curl 127.0.0.1 获得的结果相同
[root@tianqi-01 conf]# curl localhost
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title> //nginx欢迎页面
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
[root@tianqi-01 conf]# ls /usr/local/nginx/html/
50x.html index.html
[root@tianqi-01 conf]# curl 127.0.0.1
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
[root@tianqi-01 src]#
19.测试解析php,新建一个1.php文件
[root@tianqi-01 conf]# vim /usr/local/nginx/html/1.php
<?php
echo "This is nginx test page.";
?>
保存退出
[root@tianqi-01 conf]# curl localhost/1.php
This is nginx test page.[root@tianqi-01 conf]# //说明解析成功
12.7默认虚拟主机
•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
1.首先删除/usr/local/nginx/conf/nginx.conf 中的一部份内容——>目的是修改nginx.cnf配置,删除默认的虚拟主机配置,从新定义虚拟主机配置所在路径
[root@tianqi-01 conf]# vim /usr/local/nginx/conf/nginx.conf
删除的内容
server
{
listen 80;
server_name localhost;
index index.html index.htm index.php;
root /usr/local/nginx/html;
location ~ \.php$
{
include fastcgi_params;
fastcgi_pass unix:/tmp/php-fcgi.sock;
# fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
}
}
2.而后在配置文件中增长一行,include vhost/*.conf
application/xml;
include vhost/*.conf;
而后保存退出
3.新建/usr/local/nginx/conf/vhost目录
[root@tianqi-01 conf]# pwd
/usr/local/nginx/conf
[root@tianqi-01 conf]# mkdir vhost
[root@tianqi-01 conf]#
4.进入到/usr/local/nginx/conf/vhost目录下
[root@tianqi-01 conf]# cd vhost
[root@tianqi-01 vhost]#
5.定义新增虚拟主机的配置
[root@tianqi-01 vhost]# vim aaa.com.conf
添加的文件内容
server
{
listen 80 default_server; //有这个标记就是默认虚拟主机
server_name aaa.com;
index index.html index.htm index.php;//指定索引页
root /data/wwwroot/default;
}
而后保存退出
6.建立目录
[root@tianqi-01 vhost]# mkdir /data/wwwroot/default/
[root@tianqi-01 vhost]#
7.切换到/data/wwwroot/default/目录下,在目录下写入一些东西
[root@tianqi-01 vhost]# cd /data/wwwroot/default/
[root@tianqi-01 default]#
8.新建index.html,写入一些东西
[root@tianqi-01 default]# vim index.html
写入如下内容
This is the default site.
保存退出
9.检测配置文件是否存在语法错误
[root@tianqi-01 default]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@tianqi-01 default]#
下面故意写错,查看错误提示
[root@tianqi-01 default]# vim /usr/local/nginx/conf/vhost/aaa.com.conf
server
{
listen 80 default_server;
server_name aaa.com;
index index.html index.htm index.php;
root /data/wwwroot/default;
afagstyasf //写入乱码
}
保存退出
检查语法错误
[root@tianqi-01 default]# /usr/local/nginx/sbin/nginx -t
nginx: [emerg] unexpected "}" in /usr/local/nginx/conf/vhost/aaa.com.conf:8
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed
[root@tianqi-01 default]#
再改回来
[root@tianqi-01 default]# vim /usr/local/nginx/conf/vhost/aaa.com.conf
[root@tianqi-01 default]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@tianqi-01 default]#
11.在修改配置文件后,通常都 -t 去检查下,防止误操做
12.修改完,重启nginx或者从新加载nginx
[root@tianqi-01 default]# /usr/local/nginx/sbin/nginx -s reload
[root@tianqi-01 default]#
13.测试访问默认页
[root@tianqi-01 default]# curl localhost
This is the default site.
[root@tianqi-01 default]# curl -x127.0.0.1:80 bbb.com
This is the default site.
[root@tianqi-01 default]# curl -x127.0.0.1:80 aaa.com
This is the default site.
[root@tianqi-01 default]#
//默认是aaa.com,无论访问什么域名,默认虚拟主机就是这样,无论什么域名,只要解析过来,只想到咱们的服务器,它都能访问到这个站点。
14.nginx支持include这种语法
由于修改了nginx.conf的配置,如今看到的默认索引页,是咱们刚刚新增的vhost的虚拟主机的索引页了 定义默认虚拟主机的两种办法: 1.默认虚拟主机,是根据目录的第一个.conf了进行选择,因此只须要在vhost目录下依次建立就能够了,固然这种方法不智能 2.只须要在vhost目录的.conf配置文件内,加上一个“default_server ”便可,把当前的这个配置对应的网站设置为第一个默认虚拟主机。
12.8Nginx用户认证
•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;
}
1.首先切换到usr/local/nginx/conf/vhost/目录下
[root@tianqi-01 default]# cd /usr/local/nginx/conf/vhost/
[root@tianqi-01 vhost]#
2.新建新建一个虚拟主机test.com.conf,并编辑
[root@tianqi-01 vhost]# vim test.com.conf
添加以下内容
server
{
listen 80;
server_name test.com;
index index.html index.htm index.php;
root /data/wwwroot/test.com;
location / //表示全站,都须要进行用户认证
#location /admin // 这个地方只要加上” /admin ” 就变成 针对这个站点的“admin” 这个目录须要用户认证
#location ~ admin.php //若是把这行这样写,就会变成,匹配 “ admin.php ”这个页面的时候才须要用户认证
{
auth_basic //定义用户认证的名字
auth_basic_user_file /usr/local/nginx/conf/htpasswd; //用户名密码文件
}
}
保存退出
3.在配置完成后,须要生成密码文件
4.在生成密码文件,须要用到Apache生成密码文件的工具“ htpasswd ”
/usr/local/apache2.4/bin/htpasswd
yum install -y httpd
5.这里因为未安装过Apache,因此先yum安装
[root@tianqi-01 vhost]# yum install -y httpd
6.htpasswd指定文件,生成用户
[root@tianqi-01 vhost]# htpasswd -c /usr/local/nginx/conf/htpasswd tianqi
New password: //密码123456
Re-type new password:
Adding password for user tianqi
[root@tianqi-01 vhost]#
7.使用cat 命令查看/usr/local/nginx/conf/htpasswd 文件,会看到生成了一行字符串
[root@tianqi-01 vhost]# cat /usr/local/nginx/conf/htpasswd
tianqi:$apr1$MO1ysyDK$r0Eq.JoAuWRSVzXBYY1Xq0
[root@tianqi-01 vhost]#
8.关于htpasswd -c 命令 第一次建立的时候由于没有htpasswd这个文件,须要-c建立,第二使用的时候由于已经有这个htpasswd文件了,将再也不须要-c 选项,若是还继续使用-c 这个选项,将会重置 htpasswd里的东西
9.再来htpasswd指定文件,生成另外一个用户
[root@tianqi-01 vhost]# /usr/local/apache2.4/bin/htpasswd /usr/local/nginx/conf/htpasswd user1
New password: //密码为123456
Re-type new password:
Adding password for user user1
[root@tianqi-01 vhost]# cat /usr/local/nginx/conf/htpasswd
tianqi:$apr1$MO1ysyDK$r0Eq.JoAuWRSVzXBYY1Xq0
user1:$apr1$ckJMbZrV$J1hEZ3dgpg7mwXe0nf/hD1
[root@tianqi-01 vhost]#
10.检查配置nginx文件是否存在语法错误
[root@tianqi-01 vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
11.从新加载配置文件
[root@tianqi-01 vhost]# /usr/local/nginx/sbin/nginx -s reload
[root@tianqi-01 vhost]#
12.测试
[root@tianqi-01 vhost]# curl -x127.0.0.1:80 test.com
<html>
<head><title>401 Authorization Required</title></head>
<body bgcolor="white">
<center><h1>401 Authorization Required</h1></center>
<hr><center>nginx/1.12.1</center>
</body>
</html>
[root@tianqi-01 vhost]# curl -x127.0.0.1:80 test.com -I
HTTP/1.1 401 Unauthorized
Server: nginx/1.12.1
Date: Mon, 12 Mar 2018 12:55:19 GMT
Content-Type: text/html
Content-Length: 195
Connection: keep-alive
WWW-Authenticate: Basic realm="Auth"
[root@tianqi-01 vhost]#
13.会提示错误码401,就是须要用户,因此用curl指定用户
14.这时指定用户和密码再来访问,会提示404,这是由于去访问index.html,可是还未建立
[root@tianqi-01 vhost]# curl -utianqi:123456 -x127.0.0.1:80 test.com
<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.12.1</center>
</body>
</html>
[root@tianqi-01 vhost]#
15.建立目录,而后新建index.html
[root@tianqi-01 vhost]# mkdir /data/wwwroot/test.com
[root@tianqi-01 vhost]# echo "test.com" > /data/wwwroot/test.com/index.html
[root@tianqi-01 vhost]#
16.这时再来访问,会看到显示正常
[root@tianqi-01 vhost]# curl -utianqi:123456 -x127.0.0.1:80 test.com
test.com
[root@tianqi-01 vhost]#
17.这里的用户认证是针对整站
1.首先访问admin尝试下
[root@tianqi-01 vhost]# curl -utianqi:123456 -x127.0.0.1:80 test.com/admin/
<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.12.1</center>
</body>
</html>
[root@tianqi-01 vhost]#
2.而后在/usr/local/nginx/conf/vhost/test.com.conf配置文件中定义,只须要在location / 后加上admin/ 目录便可
[root@tianqi-01 vhost]# vim test.com.conf
//在location后面添加 / admin /便可
server
{
listen 80;
server_name test.com;
index index.html index.htm index.php;
root /data/wwwroot/test.com;
location /admin/
{
auth_basic "Auth";
auth_basic_user_file /usr/local/nginx/conf/htpasswd;
}
}
3.检查配置文件是否存在语法错误
[root@tianqi-01 vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@tianqi-01 vhost]#
4.从新加载配置文件
[root@tianqi-01 vhost]# /usr/local/nginx/sbin/nginx -s reload
[root@tianqi-01 vhost]#
5.这时候再来访问test.com,就不须要指定用户名和密码了
[root@tianqi-01 vhost]# curl -x127.0.0.1:80 test.com
test.com
[root@tianqi-01 vhost]#
6.访问test.com/admin/目录
[root@tianqi-01 vhost]# curl -x127.0.0.1:80 test.com/admin/
<html>
<head><title>401 Authorization Required</title></head>
<body bgcolor="white">
<center><h1>401 Authorization Required</h1></center>
<hr><center>nginx/1.12.1</center>
</body>
</html>
[root@tianqi-01 vhost]#
7.这时建立一个测试页面
8.先新建目录
[root@tianqi-01 vhost]# mkdir /data/wwwroot/test.com/admin
[root@tianqi-01 vhost]#
9.而后在admin目录下新建index.html
[root@tianqi-01 vhost]# echo "test.com admin dir" > /data/wwwroot/test.com/admin/index.html
[root@tianqi-01 vhost]#
10.这时再来访问 test.com/admin/ 会显示401,可是指定用户名和密码后就会正常显示
[root@tianqi-01 vhost]# curl -x127.0.0.1:80 test.com/admin/
<html>
<head><title>401 Authorization Required</title></head>
<body bgcolor="white">
<center><h1>401 Authorization Required</h1></center>
<hr><center>nginx/1.12.1</center>
</body>
</html>
[root@tianqi-01 vhost]# curl -utianqi:123456 -x127.0.0.1:80 test.com/admin/
test.com admin dir
[root@tianqi-01 vhost]#
1.首先在配置文件/usr/local/nginx/conf/vhost/test.com.conf下定义,在 location 后加~ admin.php便可
[root@tianqi-01 vhost]# vim test.com.conf
server
{
listen 80;
server_name test.com;
index index.html index.htm index.php;
root /data/wwwroot/test.com;
location ~admin.php //在location后面加~admin.php
{
auth_basic "Auth";
auth_basic_user_file /usr/local/nginx/conf/htpasswd;
}
}
保存退出
2.检查配置文件是否存在语法错误
[root@tianqi-01 vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@tianqi-01 vhost]#
3.从新加载配置文件
[root@tianqi-01 vhost]# /usr/local/nginx/sbin/nginx -s reload
[root@tianqi-01 vhost]#
4.这时候就能够直接访问 test.com/admin/,不须要指定用户名和密码了,可是在访问admin.php的时候,则会显示401——>状态码为401说明须要验证
[root@tianqi-01 vhost]# curl -x127.0.0.1:80 test.com/admin/
test.com admin dir
[root@tianqi-01 vhost]# curl -x127.0.0.1:80 test.com/admin.php
<html>
<head><title>401 Authorization Required</title></head>
<body bgcolor="white">
<center><h1>401 Authorization Required</h1></center>
<hr><center>nginx/1.12.1</center>
</body>
</html>
[root@tianqi-01 vhost]#
12.9Nginx域名重定向
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
1.修改配置文件vim /usr/local/nginx/conf/vhost/test.com.conf,(这里删除用户认证那一块代码)
[root@tianqi-01 vhost]# !vim
vim test.com.conf
server
{
listen 80;
server_name test.com test2.com test3.com;
index index.html index.htm index.php;
root /data/wwwroot/test.com;
if ($host != 'test.com' ) {
rewrite ^/(.*)$ http://test.com/$1 permanent;
}
}
2.检查配置文件语法错误,并从新加载配置文件
[root@tianqi-01 vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@tianqi-01 vhost]# /usr/local/nginx/sbin/nginx -s reload
[root@tianqi-01 vhost]#
3.测试,用test2.com去访问,会看到显示301,给它重定向到了http://test.com/index.html
[root@tianqi-01 vhost]# curl -x127.0.0.1:80 test2.com/index.html -I
HTTP/1.1 301 Moved Permanently
Server: nginx/1.12.1
Date: Mon, 12 Mar 2018 14:00:50 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Location: http://test.com/index.html
[root@tianqi-01 vhost]#
4.定义一个不一样的网址再来访问
[root@tianqi-01 vhost]# curl -x127.0.0.1:80 test2.com/dagrfe -I
HTTP/1.1 301 Moved Permanently
Server: nginx/1.12.1
Date: Mon, 12 Mar 2018 14:01:56 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Location: http://test.com/dagrfe
[root@tianqi-01 vhost]# curl -x127.0.0.1:80 test3.com/dagrfe -I
HTTP/1.1 301 Moved Permanently
Server: nginx/1.12.1
Date: Mon, 12 Mar 2018 14:04:37 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Location: http://test.com/dagrfe
[root@tianqi-01 vhost]#
5.它会访问默认虚拟主机
6.这时如果随意访问一个不存在的网址,则会显示404
[root@tianqi-01 vhost]# curl -x127.0.0.1:80 tianqi.com/admin/index.html -I
HTTP/1.1 404 Not Found
Server: nginx/1.12.1
Date: Mon, 12 Mar 2018 14:03:29 GMT
Content-Type: text/html
Content-Length: 169
Connection: keep-alive
[root@tianqi-01 vhost]#
友情连接:阿铭Linux
友情连接:nginx.conf 配置详解1
友情连接:nginx.conf 配置详解2
友情连接:nginx rewrite四种flag