简单认识Nginx主配置文件及实操模拟

本文介绍了Nginx主配置文件的全局配置和I/O事件配置,包括如何修改工作进程数和启用epoll模型。接着,通过实操模拟展示了如何配置Nginx虚拟主机,包括基于域名、IP和端口的方式,并实现访问状态统计。最后,文章讲解了Nginx的访问控制,包括基于授权和客户端IP的访问控制策略,并提供了配置和测试步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、Nginx主配置文件

位置:/usr/local/nginx/conf/nginx.conf

在这里插入图片描述

1、全局配置

#运行用户,若编译时未指定则默认为 nobody
#user nobody; 
#工作进程数量,可配置成服务器内核数 * 2,如果网站访问量不大,一般设为1就够用了
worker_processes 4; 
#错误日志文件的位置
#error_log logs/error.log;  
#PID 文件的位置
#pid logs/nginx.pid; 		   

Nginx的两种进程:

主进程(master process),用于管理工作进程。
工作进程(work process),用于处理用户的连接(一般设置数与cpu总线程数一致)。

在这里插入图片描述
修改为与本机cpu数一致
在这里插入图片描述

2、添加 I/O事件配置

默认配置
在这里插入图片描述
默认只有一行配置,添加use epoll; 表示使用epoll I/O模型,可以提高性能。
在这里插入图片描述

在Linux平台上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。
epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著的减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。

由于一个nginx服务器最大可以支持2~3万连接数,我们需要根据本机工作进程数修改每个进程支持的连接数(如我本机设置为8,约可修改为3500)
如提高每个进程的连接数还需执行“ulimit -n 65535”命令临时修改本地每个进程可以同时打开的最大 文件数(永久修改需要修改/etc/security/limits.conf 文件)。
可使用ulimit -a命令查看系统允许当前用户进程打开的文件数限制。

总结:
临时修改内核的大小:ulimit -n

永久修改内核的大小:/etc/security/limits.conf

查看内核的大小:ulimit -a

如果编辑文件时出现“注意”的可以使用:rm -rf /usr/local/nginx/conf/.nginx.conf.swp————删除这个生成的文件

4.HTTP配置

在这里插入图片描述
在这里插入图片描述

http {
	##文件扩展名与文件类型映射表
    include       mime.types;
	##默认文件类型
    default_type  application/octet-stream;
	##日志格式设定,前端给日志信息定位配置
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
	##访问日志位置
    #access_log  logs/access.log  main;
	##支持文件发送(下载)
    sendfile        on;
	##此选项允许或禁止使用socket的TCP_CORK的选项(发送数据包前先缓存数据),此选项仅在使用sendfile的时候使用
    #tcp_nopush     on;
	##连接保持超时时间,单位是秒
    #keepalive_timeout  0;
    keepalive_timeout  65;
	##gzip模块设置,设置是否开启gzip压缩输出
    #gzip  on;
	
	##Web 服务的监听配置
	server {
		##监听地址及端口
		listen 80; 
		##站点域名,可以有多个,用空格隔开
		server_name www.ff.com;
		##网页的默认字符集
		charset utf-8;
		##根目录配置
		location / {
			##网站根目录的位置/usr/local/nginx/html
			root html;
			##默认首页文件名
			index index.html index.php;
		}
		##内部错误的反馈页面
		error_page 500 502 503 504 /50x.html;
		##错误页面配置
		location = /50x.html {
			root html;
		}
	}用来记录客户端用户名称;
}

日志格式设定
在这里插入图片描述

通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。

location常见配置指令,root、alias、proxy_pass
root(根路径配置):root /var/www/html
请求www.kgc.com/test/1.html,会返回文件/var/www/html/test/1.html

alias(别名配置):alias /var/www/html
请求www.kgc.com/test/1.html,会返回文件/var/www/html/1.html
proxy_pass(反向代理配置)

实操模拟部分

一、Nginx虚拟主机配置

1.1基于域名

(1)为虚拟主机提供域名解析

配置DNS
修改/etc/hosts文件
在这里插入图片描述
(2)为虚拟主机准备网页文档
在这里插入图片描述

#创建网页目录
mkdir -p /var/www/html/ikun
mkdir -p /var/www/html/heizi
 
#编写简易首页html文件
echo "<h1>welcome to www.ikun.com</h1>" > /var/www/html/ikun/index.html
echo "<h1>welcome to www.heizi.com</h1>" > /var/www/html/heizi/index.html

(3)修改nginx配置文件
域名不同,IP地址相同,端口相同
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)检查语法并重启,访问测试
在这里插入图片描述

systemctl restart nginx.service 

成功
在这里插入图片描述
在这里插入图片描述

1.2.基于IP

(1)添加网络接口

在这里插入图片描述

(2)修改nginx配置文件
在这里插入图片描述

在这里插入图片描述

(3)检查语法并重启,访问测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3.基于端口

(1)修改配置文件中监听端口

在这里插入图片描述

在这里插入图片描述

(2)检查语法并重启,访问测试

在这里插入图片描述

成功
在这里插入图片描述
在这里插入图片描述

二、Nginx访问状态统计

cat /opt/nginx-1.12.0/auto/options        可查看安装软件的所有模块(YES表示已安装)

1.先查看已安装的Nginx是否包含 HTTP_STUB_STATUS 模块
在这里插入图片描述

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

先恢复默认配置,再修改nginx.conf

在这里插入图片描述
在这里插入图片描述

#添加以下配置
location /status {
	stub_status on;#代表在当前目录status中,打开状态统计,关闭访问日志记录
	access_log off;
	

3.检查配置并重启服务,测试访问

在这里插入图片描述

成功
在这里插入图片描述

三、Nginx配置访问控制

1.基于授权的访问控制

(1)下载依赖软件,生成用户密码认证文件,修改密码文件权限

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

(2)修改主配置文件对应目录,添加认证配置项

在这里插入图片描述

(3)检查配置并重启服务,测试访问

在这里插入图片描述
成功!
在这里插入图片描述

在这里插入图片描述

2.基于客户端的访问控制

deny IP/IP 段:拒绝某个 IP 或 IP 段的客户端访问。
allow IP/IP 段:允许某个 IP 或 IP 段的客户端访问。
规则从上往下执行,如匹配则停止,不再往下匹配。
(1)修改配置文件,允许以下两个地址访问,拒绝其他

在这里插入图片描述

(2)检查配置并重启服务,测试访问
在这里插入图片描述

成功
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值