Nginx实战练习

1、Nginx安装

以centos7为例:

详解博文:Nginx安装搭建之源码方式(Centos7)_centos7源码安装nginx_IT之一小佬的博客-CSDN博客

2、简单搭建站点

2.1 单个站点搭建

        正常开放情况下,开发代码防止网站的站点目录中(根目录)

创建代码目录:

        或者直接将已经开发好的代码复制到该目录下

往站点目录模拟写内容:

echo study.test.cn > /app/code/study/index.html

修改nginx配置:

        在nginx.conf文件中不推荐存放server相关的内容(网站)。

在默认的nginx.conf配置文件下进行修改:

# 添加
include /root/software/Nginx/nginx_install/conf.d/*.conf;

子配置文件:

vim study.test.cn.conf

server {
  listen 80;
  server_name study.test.cn;
  root /app/code/study;
  location / {
    index index.html;
  }
}

修改完配置文件后,检查语法:

重新加载新配置:

./nginx -s reload

网站访问:

本地hosts文件配置-域名访问:

windows系统:修改hosts文件:

Linux系统修改hosts文件:

vim /etc/hosts

2.2 多个站点搭建

        在2.1的基础上继续搭建多个站点。

# 创建游戏网站
[root@dgw-machine /]# mkdir -p /app/code/game
[root@dgw-machine /]# echo game.test.cn > /app/code/game/index.html
[root@dgw-machine /]# cat /app/code/game/index.html 
game.test.cn


# 创建视频网站
[root@dgw-machine /]# mkdir -p /app/code/video
[root@dgw-machine /]# echo video.test.cn > /app/code/video/index.html
[root@dgw-machine /]# cat /app/code/video/index.html 
video.test.cn

修改nginx配置文件:

添加子配置文件:

# vim game.test.cn.conf

server {
  listen 80;
  server_name game.test.cn;
  root /app/code/game;
  location / {
    index index.html;
  }
}

# vim video.test.cn.conf

server {
  listen 80;
  server_name video.test.cn;
  root /app/code/video;
  location / {
    index index.html;
  }
}

修改完配置文件后,检查语法:

重新加载新配置:

./nginx -s reload

网站访问:

    目前三个域名网站端口都是使用的80,默认按字母顺序排序展示。

在nginx服务器上配置hosts文件:

127.0.0.1 study.test.cn
127.0.0.1 video.test.cn
127.0.0.1 game.test.cn

网站访问: 

3、Nginx虚拟主机配置

3.1  基于域名的虚拟主机配置

上述2.2即为基于域名的主机配置。

配置文件:

域名站点访问:

3.2 基于端口的虚拟主机配置

给网站增加特殊端口,限制用户访问。

修改基于域名的虚拟机配置的三个站点文件的listen 端口号:

修改完配置文件后,检查语法:

重新加载新配置:

./nginx -s reload

网站访问:

注意:下面访问域名后默认还是响应的80端口的内容。

域名需要添加端口号:

这种情况下,除了域名可以访问外,还可以使用IP+端口号进行访问:

查看监听的端口:

ss -lntip | grep nginx

3.3 基于IP的虚拟主机配置

    限制用户只能通过某个网卡连接与特殊端口一起使用。

修改配置文件:

# vim video.test.cn.conf

server {
  listen 172.25.35.196:8888;
  server_name video.test.cn;
  root /app/code/video;
  location / {
    index index.html;
  }
}

修改完配置文件后,检查语法:

重新加载新配置:

./nginx -s reload

网站访问:

4、默认站点内容配置

4.1 默认站点内容

        基于2.2和3.1操作情况下。如果没有设置默认的虚拟主机,按照虚拟主机文件名排序(同一个端口的),显示第一个。

修改hosts文件:

在未设置默认站点的情况下:

设置默认站点配置文件:

# vim study.test.cn.conf

server {
  listen 80 default_server;
  server_name study.test.cn;
  root /app/code/study;
  location / {
    index index.html;
  }
}

站点访问:

4.2 默认站点错误内容提示

 设置默认站点配置文件:

# vim study.test.cn.conf

server {
  listen 80 default_server;
  server_name _;
  default_type text/plain;
  return 200 "禁止访问网站";
}

访问网站:

调整中文乱码问题:

server {
  listen 80 default_server;
  server_name _;
  charset utf8;
  default_type text/plain;
  return 200 "禁止访问网站";
}

5、autoindex网站列表功能

建立下载代码目录:

mkdir -p /app/code/download

创建index.html文件:

echo welcome download > /app/code/download/index.html

配置下载功能子配置文件:

vim download.test.cn.conf

server {
  listen 80 default_server;
  server_name download.test.cn;
  root /app/code/download;
  location / {
  index index.html;
  }
}

检查nginx语法并重启:

页面访问:

从上面页面访问结果可以看出,此时未开启下载功能。

开启下载功能:

修改nginx子配置文件:

server {
  listen 80 default_server;
  server_name download.test.cn;
  root /app/code/download;
  autoindex on;
  location / {
  index index.html;
  }
}

创建下载文件:

touch /app/code/download/download{01..10}.html

注意:加上autoindex后,要想让页面显示目录下载格式,需要使index.html文件不存在。rm index.html。

再次访问页面:

注意:上面页面访问时,显示的是UTC时间,需要加autoindex_localtime显示本地时间。

再次修改子配置文件:

server {
  listen 80 default_server;
  server_name download.test.cn;
  root /app/code/download;
  autoindex on;
  autoindex_localtime on;
  location / {
  index index.html;
  }
}

检查语法重启后,再次访问页面:

6、限制模块

访问增加些限制:只让某些用户访问(白名单),禁止一些用户访问(黑名单)。

修改配置子文件:

server {
  listen 80 default_server;
  server_name download.test.cn;
  root /app/code/download;
  autoindex on;
  autoindex_localtime on;
  allow 12.24.237.6;
  deny all;
  location / {
  index index.html;
  }
}

注意:可以写ip段。如:172.10.1.0/24

查看访问日志:

 

allow和deny位置:

注意:deny all一定要放在最下方!

7、认证模块

用户访问网站或指定页面/路径要输入用户名和密码。

创建用户名和密码:

mkdir -p /app/nginx/key
htpasswd -bc /app/nginx/key/user_password test_name 123456
cat /app/nginx/key/user_password

修改用户密码文件的用户组:

注意:这一步是否需要操作,取决于nginx.conf配置文件中使用的用户组。

chown nginx /app/nginx/key/user_password

修改nginx子配置文件:

server {
  listen 80 default_server;
  server_name download.test.cn;
  root /app/code/download;
  autoindex on;
  autoindex_localtime on;
  # allow 12.244.237.60;
  # deny all;
  location / {
  index index.html;
  }
  location /vip {
  auth_basic "please input username password";
  auth_basic_user_file /app/nginx/key/user_password;
  }
}

创建vip目录文件:

[root@dgw-machine logs]# mkdir -p /app/code/download/vip
[root@dgw-machine logs]# touch /app/code/download/vip/vip_{01..10}.html
[root@dgw-machine logs]# ll /app/code/download/vip/

检查语法重启后,访问页面:

8、状态模块

用于内部统计、收集、监控nginx状态使用。使用stub_status字段。

修改nginx子配置文件:

server {
  listen 80 default_server;
  server_name download.test.cn;
  root /app/code/download;
  autoindex on;
  autoindex_localtime on;
  # allow 12.244.237.60;
  # deny all;
  location / {
  index index.html;
  }
  location /vip {
  auth_basic "please input username password";
  auth_basic_user_file /app/nginx/key/user_password;
  }
  location /status {
  stub_status;
  allow all;
  deny all;
  }
}

检查语法重启后,访问页面:

通过检查语法发现,确实相应的模块。

首先检查已经安装的模块:

添加stub_status模块,找到之前安装包,重新编译安装:

./configure --prefix=/root/software/Nginx/nginx_install --with-http_stub_status_module

 安装完检查已安装的模块:

检查语法重启后,访问页面:

注意:重新编译安装后,一定要先kill掉之前的nginx进程,否则下面访问可能不能生效!

8、location功能

注意:location的格式、匹配规则(符号)、规则的优先级、应用场景

9、Goaccess日志分析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值