Nginx相关案例实战

1.nginx 配置

1.1Nginx主配置文件

vim /usr/local/nginx/conf/nginx.conf

1.2Nginx全局配置

#user nobody; user nginx #运行用户,若编译时未指定则默认为nobody

worker_processes 4; #工作进程数量,可配置成服务器内核数 * 2,如果网站访问量不

大,一般设为1就够用了

#error_log logs/error.log; #错误日志文件的位置

#pid logs/nginx.pid; #PID 文件的位置

1.3 I/O事件配置

events {

use epoll; #使用epoll模型,2.6及以上版本的系统内核,建议使用epoll模型以提高性能

worker_connections 4096; #每个进程处理4096个链接

}

#如提高每个进程的连接数还需执行ulimit -n 65535命令临时修改本地每个进程可以同时打开的最大文件数。

#在Linux平台上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。

#可使用ulimit -a命令查看系统允许当前用户进程打开的文件数限制

或者直接 vim /etc/security/limits.conf 进行永久编辑

#epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版

本,它能显著的减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。

若工作进程数为 8,每个进程处理 4 096 个连接,则允许 Nginx 正常提供服务的连接数已超过 3 万个(4 096×8=32 768),当然具体还要看服务器硬件、网络带宽等物理条件的性能表现

1.4 HTTP配置

使用“http { }”界定标记,包括访问日志、HTTP 端口、网页目录、默认字符集、连接保

持,以及后面要讲到的虚拟 Web 主机、PHP 解析等一系列设置,其中大部分配置语句都包

含在子界定标记“server { }”内

1.5 Web服务的监听配置

server {                                         ​​​​​​​        ##Web 服务的监听配置

listen 80;         ​​​​​​​        ​​​​​​​                              ##监听地址及端口

server_name www.test1.com;         ​​​​​​​        ##站点域名,可以有多个,用空格隔开

charset utf-8;         ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​       ##网页的默认字符集

location / {        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​     ##根目录配置

/usr/local/nginx/html         ​​​​​​​        ​​​​​​​        ​​​​​​​    ##网站工作文件夹的位置

root html;

index index.html index.php;         ​​​​​​​        ##默认首页文件名

}

location /status {

/usr/local/nginx/html         ​​​​​​​        ​​​​​​​        ​​​​​​​      ##网站根目录的位置

root /usr/local/nginx/html;         ​​​​​​​        ##网站工作文件夹

index abc.html index.php;         ​​​​​​​        ##默认首页文件名

}

前配置下,访问 http://IP/status 会自动查找 html/status/abc.html(因为 location /status 会将请求路径 /status 拼接在 root 目录后),所以需要手动创建对应的目录和文件:

mkdir -p /usr/local/nginx/html/status
echo "This is Status Page" > /usr/local/nginx/html/status/abc.html

error_page 500 502 503 504 /50x.html;         ##内部错误的反馈页面

location = /50x.html {         ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ##错误页面配置

root html;

}

1.6其他配置(扩展)

2.nginx虚拟主机

2.1 访问状态统计配置

2.1.1 查看已安装的所有模块

使用命令/usr/local/nginx/sbin/nginx -V 查看已安装的 Nginx 是否包含 HTTP_STUB_STATUS

模块

或者 cat /opt/nginx-1.20.2/auto/options | grep YES |grep 模块名 #也可查看 nginx 对应的模块

2.1.2 修改 nginx.conf 配置文件

修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置

完成后 页面显示情况:

2.1.3 重启服务,访问测试

2.2 基于授权的访问控制

2.2.1 生成用户密码认证文件

yum install -y httpd-tools         ​​​​​​​        ​​​​​​​        ​​​​​​​#下载http相关工具

htpasswd -c /usr/local/nginx/passwd.db hzc

chown nginx /usr/local/nginx/passwd.db         ​​​​​​​#将paaswd.db文件所有者更改为 nginx用户

chmod 400 /usr/local/nginx/passwd.db         ​​​​​​​#给psswd.db文件增加可读权限

2.2.2 修改主配置文件相对应目录,添加认证配置项

vim /usr/local/nginx/conf/nginx.conf

......

server {

location / {

......

##添加认证配置##

auth_basic "secret"; #设置密码提示框文字信息

auth_basic_user_file /usr/local/nginx/passwd.db;

}

}

2.2.3 重启服务,访问测试

nginx -t #查看nginx脚本文件是否配置成功

systemctl restart nginx #重启nginx服务刷新脚本

2.3 基于客户端的访问控制

访问控制规则如下:

deny IP/IP 段:拒绝某个 IP 或 IP 段的客户端访问。

allow IP/IP 段:允许某个 IP 或 IP 段的客户端访问。

规则从上往下执行,如匹配则停止,不再往下匹配。

vim /usr/local/nginx/conf/nginx.conf

......

server {

location / {

......

##添加控制规则##

allow 10.0.0.6; #允许访问的客户端 IP

deny all; #拒绝其它IP客户端访问

}

}

systemctl restart nginx

2.4 基于域名的 Nginx 虚拟主机

2.4.1 为虚拟主机提供域名解析

echo "10.0.0.6 www.yjs.com www.test1.com" >> /etc/hosts

2.4.2 为虚拟主机准备网页文档

mkdir -p /usr/local/nginx/html/test1

echo "<h1>hellow,this is test1.html</h1>" > /usr/local/nginx/html/test1/index.html

2.4.3 修改nginx配置文件

2.4.4重启服务,访问测试

2.5 基于IP 的 Nginx 虚拟主机

2.5.1 配置server

ifconfig ens33:0 192.168.10.40 netmask 255.255.255.0

创建 一个ens36 或者37的网卡 192.168.10.40

vim /usr/local/nginx/conf/nginx.conf

......

http {

......

server {

listen 10.0.0.6:80; #设置监听地址10.0.0.6

server_name www.test1.com;

charset utf-8;

location / {

root /usr/local/nginx/html/test1

index index.html index.php;

}

error_page 500 502 503 504 /50x.html;

location = 50x.html{

root html;

        }

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值