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

news2024/12/23 9:50:03

文章目录

  • 一、Nginx主配置文件
    • 1、全局配置
    • 2、添加 I/O事件配置
    • 4.HTTP配置
  • 实操模拟部分
    • 一、Nginx虚拟主机配置
      • 1.1基于域名
      • 1.2.基于IP
      • 1.3.基于端口
    • 二、Nginx访问状态统计
    • 三、Nginx配置访问控制
      • 1.基于授权的访问控制
      • 2.基于客户端的访问控制


一、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)检查配置并重启服务,测试访问
在这里插入图片描述

成功
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/676398.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【机器学习】sklearn数据集的使用,数据集的获取和划分

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 sklearn数据集 二、安装sklearn二、获取数据集三、…

python第三方库概览

目录 第三方库的获取和安装 脚本程序转变为可执行程序的第三方库PyInstaller jieba库(必选)、wordcloud库&#xff08;可选&#xff09; 知识导图&#xff1a; 1.Python第三方库的获取和安装 Python第三方库依照安装方式灵活性和难易程度有三个方法&#xff1a;pip工具安装…

树莓派使用VNC、SSH、Xrdp等方式进行远程控制的方法和注意事项

下面来总结一下远程操控树莓派用到的三种方式及其注意事项&#xff0c;其实这三种方式对于所有的Linux系统来说都是适用的。 目录 一、ssh控制树莓派 1.开启 ssh服务方法一 2.开启 ssh服务方法二 二、VNC远程连接 三、xrdp远程连接 四、其他注意事项 一、ssh控制树莓派 S…

石油化工领域生产作业流程合规检测 yolov8

石油化工领域生产作业流程合规检测通过引入yolov8视觉数据智能分析技术&#xff0c;石油化工领域生产作业流程合规检测对生产作业流程进行实时监测和合规性检测&#xff0c;通过与预设标准进行比对&#xff0c;系统能够检测出不合规的操作或异常情况&#xff0c;并及时发出警报…

【Python】实现一个鼠标连击器,每秒点击1000次

前言 鼠标连击是指在很短的时间内多次点击鼠标按钮&#xff0c;通常是鼠标左键。当触发鼠标连击时&#xff0c;鼠标按钮会迅速按下和释放多次&#xff0c;产生连续的点击效果。 在这里鼠标连击的主要用途是&#xff1a; 帮助我们进行鼠标点击&#xff0c;疯狂连击&#xff1…

NUCLEO-F411RE RT-Thread 体验 (6) - GCC环境 I2C驱动移植以及i2c-tool的编写

NUCLEO-F411RE RT-Thread 体验 (6) - GCC环境 I2C驱动移植以及i2c-tool的编写 1、I2C驱动移植 RT-Rhread这里用的是软件模拟i2c&#xff0c;stm32的驱动里并没有找到硬件i2c的驱动&#xff0c;但是在GD32里面却有硬件i2c的驱动&#xff0c;有兴趣的小伙伴可以根据gd32的代码写…

Ubutun开机黑屏解决方法

开机黑屏解决方法 临时性解决方法永久性解决方法补充说明 在项目支持过程中发现Ubuntu 16 在新终端上开机黑屏&#xff0c;没有显示图形界面&#xff0c;这个可能是因为系统版本太低&#xff0c;对新显卡不兼容导致的&#xff0c;后通过查资料有如下解决方法。 临时性解决方法 …

腾讯云+PicGo+Typora图床,生成专属图片链接

腾讯云PicGoTypora搭建自己的图床 原创声明&#xff0c;转载请注明文章链接来源、作者信息 TyporaPicGogitHub搭建自己的图床&#xff0c;写作效率大大提升 索奇问答 问&#xff1a;图床是什么&#xff1f; 答&#xff1a;用户可以将图片上传到图床&#xff0c;然后将生成的…

代码随想录算法训练营第四十一天 |

01背包&#xff1a;n种物品&#xff0c;每种物品只有1个&#xff0c;有相应的重量和价值 最多只能装m的重量&#xff0c;最多价值为多少&#xff1f; dp[i][j] : [0, i]物品任取放进容量为j的背包里 不放物品i&#xff1a;dp[i-1][j] 放物品i&#xff1a;dp[i-1][j-weight[…

递归的浅浅应用

首先&#xff0c;这里是一道简单题目&#xff0c;浅浅地验证了我之前发过的这篇文章 写递归题目的思路 &#xff0c;我结合它来讲解一下这道题的思路&#xff1a; 剑指 Offer 27 和 method 226.翻转二叉树 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;…

python数据清洗 —— re.split()划分字符串

需求 对于一行字符串&#xff1a; route-views6.routeviews.org 141694 2a0c:b641:24f:fffe::7 184891 | CN | apnic | OTAKUJAPAN-AS Otaku Limited, CN要将其划分成如下7个部分&#xff0c; [route-views6.routeviews.org, 141694…

【C++篇】OOP下部分:友元、运算符重载与多态

友情链接&#xff1a;C/C系列系统学习目录 知识总结顺序参考C Primer Plus&#xff08;第六版&#xff09;和谭浩强老师的C程序设计&#xff08;第五版&#xff09;等&#xff0c;内容以书中为标准&#xff0c;同时参考其它各类书籍以及优质文章&#xff0c;以至减少知识点上的…

精选MyBatis面试题

什么是MyBatis&#xff1f; MyBatis是一个半ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;它内部封装了JDBC&#xff0c;加载驱动、创建连接、创建statement等繁杂的过程&#xff0c;开发者开发时只需要关注如何编写SQL语句&#xff0c;可以严格控制sql执行性能&a…

Python高级语法--迭代器和生成器的区别

迭代器 在 Python 中&#xff0c;迭代器&#xff08;iterator&#xff09;是访问集合元素的一种方式&#xff0c;它可以遍历一个序列中的元素&#xff0c;而无需事先确定序列的大小&#xff08;即无需全部载入到内存中&#xff09;&#xff0c;且支持惰性求值。使用迭代器可以…

程序员 35 岁以后就真的要返乡种田了么?如果家里没田怎么办?

前言 在科技互联网高速发展的当下&#xff0c;程序员这个职业无疑是备受关注的。然而&#xff0c;这个行业似乎总是被一种说法所笼罩&#xff1a;程序员年龄一旦超过35岁&#xff0c;就会面临职业生涯的下坡路&#xff0c;甚至需要考虑“返乡种田”。这种说法是否真实呢&#x…

【Software Testing】【期末习题库】【2023年春】【仅供参考】

文章目录 ①单选②多选③填空④判断⑤大题 类型总分占比平时成绩40%考试/考查60% 题型题量分值备注单选201’多选103’全对3’&#xff0c;错1个0’&#xff0c;少选-1’填空102’判断52’大题210’ 平时习题&#xff08;3次&#xff09;&#xff1a; ①软件测试概述 ②黑盒测…

【五子棋实战】第5章 开发五子棋前端页面

【五子棋实战】第5章 开发五子棋前端页面 页面设计原则 开发页面 ## 基础HTML骨架 ## 添加页面响应式功能 编写JS ## 获取画布对象与DOM对象 ## 定义棋子、棋盘对象 ## 定义绘画对象&#xff08;重要&#xff01;&#xff01;&#xff09; ## 初始化绘制棋盘 ## 添加点…

Network 之十三 NC-SI 原理、拓扑结构、RBT 接口及仲裁、协议格式

最近&#xff0c;正在学习 NC-SI 的使用方法&#xff0c;于是开始各种 Google 查找 NC-SI 的资料进行学习。最详细还是得直接看 NC-SI 规范文档 DSP0222&#xff0c;以下就是记录的一些感觉 NC-SI 规范中比较重要的点以及我的一些理解&#xff0c;以备后续查阅。 有任何疑问&am…

OpenGL之模板测试

文章目录 模板测试模板函数物体轮廓源代码 模板测试 当片段着色器处理完一个片段之后&#xff0c;模板测试(Stencil Test)会开始执行&#xff0c;和深度测试一样&#xff0c;它也可能会丢弃片段。接下来&#xff0c;被保留的片段会进入深度测试&#xff0c;它可能会丢弃更多的片…

Git下:Git命令使用-详细解读

目录 一、Git 安装 二、Git 配置 三、Git 工作流程 四、Git 工作区、暂存区和版本库 五、常用 Git 命令清单 1. 创建仓库 2. 增加/删除文件 3. 代码提交 4. 分支管理 5. 标签 6. 查看历史提交 7. 远程仓库同步 8. 撤销操作 六、Git 常用命令速查表 七、Git 电子…