nginx 基础学习

nginx 基础学习

Acha
2021-06-21 / 0 评论 / 144 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年06月21日,已超过983天没有更新,若内容或图片失效,请留言反馈。

nginx

默认配置

user www www;
#程序运行用户和组
worker_processes auto;
#启动进程,指定 nginx 启动的工作进程数量,建议按照 cpu 数目来指定,一般等于 cpu 核心数目
error_log /home/wwwlogs/nginx_error.log crit;
#全局错误日志
pid /usr/local/nginx/logs/nginx.pid;
#主进程 PID 保存文件
worker_rlimit_nofile 51200;
#文件描述符数量
events
    {
    use epoll;
    #使用 epoll 模型,对于 2.6 以上的内核,建议使用 epoll 模型以提高性能
    worker_connections 51200;
    #工作进程的最大连接数量
    }
http{
#网站优化参数
    server { #具体的某一网站的配置信息
        listen 80; #监听端口
        root html; #网页根目录(/usr/local/nginx/html)
        server_name www.atguigu.com; #服务器域名
        index index.html; #默认加载页面
        access_log logs/access.log; #访问日志保存位置
        ......;
        location (.*)\.php$ {
            用正则匹配具体的访问对象;
        }
        location {
            跳转等规则;
        }
    }
    server {
        虚拟主机;
    }
}

Nginx 的状态统计

1. 安装 nginx 时将 --with-http_stub_status_module 模块开启

2. 修改 nginx 配置文件(写入要访问的 server 标签中)
location /nginx_status{
    stub_status on;
    access_log off;
}

3. 客户端访问网址:http://IP/nginx_status
`Active connections` 表示当前的活动连接数
`server accepts handled requests` 表示已经处理的连接信息
三个数字依次表示已处理的连接数、成功的 TCP 握手次数、已处理的请求数

目录保护

1. 原理和 apache 的目录保护原理一样(利用上一个实验接着完成)

2. 在状态统计的 location 中添加:
auth_basic "Welcome to nginx_status!";
auth_basic_user_file /usr/local/nginx/html/htpasswd.nginx;

3. 使用 http 的命令 htpasswd 进行用户密码文件的创建(生成在上面指定的位置)
#htpasswd -c /usr/local/nginx/html/htpasswd.nginx user

4. 重启 nginx 并再次访问统计页面

基于 IP 的身份验证(访问控制)

1. 接着上一个实验完成操作

2. 在状态统计的 location 中添加:
allow 192.168.88.1;
deny 192.168.88.0/24;
#仅允许 192.168.88.1 访问服务器

虚拟主机(基于域名)

1. 提前准备好两个网站的域名, 并且规划好两个网站网页存放目录

2. 在 Nginx 主配置文件中并列编写两个 server 标签,并分别写好各自信息
server {
    listen 80;
    server_name blog.atguigu.com;
    index index.html index.htm index.php;
    root html/blog;
    access_log logs/blog-access.log main;
}
server {
    listen 80;
    server_name bbs.atguigu.com;
    index index.html index.htm index.php;
    root html/bbs;
    access_log logs/bbs-access.log main;
} 

3. 分别访问两个不同的域名验证结果

反向代理

1. 在另外一台机器上安装 apache, 启动并填写测试页面

2. 在 nginx 服务器的配置文件中添加(写在某一个网站的 server 标签内)
location / {
    proxy_pass http://192.168.88.100:80; #此处填写 apache 服务器的 IP 地址
} 

3. 重启 nginx,并使用客户端访问测试

负载调度

1. 使用默认的 rr 轮训算法,修改 nginx 配置文件
upstream bbs { #此标签在 server 标签前添加
    server 192.168.88.100:80;
    server 192.168.88.200:80;
}
server {
    ........;
    #修改自带的 location / 的标签,将原内容删除,添加下列两项
    location / {
        proxy_pass http://bbs; #添加反向代理,代理地址填写 upstream 声明的名字
        proxy_set_header Host $host; #重写请求头部,保证网站所有页面都可访问成功
    }
} 

2. 开启并设置两台 88.100 & 88.200 的主机
安装 apache 并设置不同的 index.html 页面内容(设置不同页面是为了看实验效果)

3. 重启 nginx,并使用客户端访问测试
0

评论

博主关闭了当前页面的评论