服务(第五篇)Nginx!!!

news2025/6/11 8:58:34

Nginx和Apache的差异?

Nginx是一个基于事件的Web服务器,Apache是一个基于流程的Web服务器;
Nginx所有请求都由一个线程处理,Apache单个线程处理单个请求;
Nginx异步非阻塞的,Apache是阻塞的;
Nginx在内存消耗和连接方面更好,Apache在内存消耗和连接方面一般;
Nginx的性能和可伸缩性不依赖于硬件,Apache依赖于CPU和内存等硬件;
Nginx支持热部署,Apache不支持热部署;
Nginx对于静态文件处理具有更高效率,Apache相对一般;
Nginx在反向代理场景具有明显优势,Apache相对一般。

nginx 应用场景

① 静态服务器 (图片、视频服务、文本)
② 动态服务
③ 反向代理, 负载均衡
④ 缓存服务

nginx有几种进程,都是什么功能?

①master process:管理工作进程的,读配置文件

②woker process:处理客户的连接请求(可有多个)

一、编译安装nginx

①关闭防火墙,准备安装包

②安装依赖环境

yum install -y gcc gcc-c++ make zlib-devel openssl-devel pcre-devel 

③解压和编译安装

④创建nginx用户

⑤ 优化

 ⑥添加nginx服务

二、nginx新版本升级:

 首先解压最新版本的包:

 把老版本的文件处理一下 

然后进入新版本的解压文件里面进行编译安装(注意这里只能make不能安装)

cd nginx-1.xx.xx
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module \
--with-http_ssl_module

然后找到objs这个文件夹里面把nginx复制到默认目录中

升级完成!!

三、nginx配置文件

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

  • main 全局配置,对全局生效;

  • events 配置影响 Nginx 服务器与用户的网络连接;

  • http 配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置;

  • server 配置虚拟主机的相关参数,一个 http 块中可以有多个 server 块;

  • location 用于配置匹配的 uri ;

  • upstream 配置后端服务器具体地址,负载均衡配置不可或缺的部分;

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

②I/O 事件配置
events {
    use epoll;                                #使用 epoll 事件模型,2.6及以上版本的系统内核,建议使用epoll模型以提高性能
    worker_connections 4096;     #每个进程处理 4096 个连接
}
#如提高每个进程的连接数还需执行“ulimit -n 65535”命令临时修改本地每个进程可以同时打开的最大文件数。
#在Linux平台上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。

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

#epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著的减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。
若工作进程数为 8,每个进程处理 4096 个连接,则允许 Nginx 正常提供服务的连接数
已超过 3 万个(4 096×8=32 768),当然具体还要看服务器硬件、网络带宽等物理条件的性
能表现。

③HTTP 配置
使用“http { }”界定标记,包括访问日志、HTTP 端口、网页目录、默认字符集、连接保
持,以及后面要讲到的虚拟 Web 主机、PHP 解析等一系列设置,其中大部分配置语句都包
含在子界定标记“server { }”内

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;     #支持文件传输(下载)    

#tcp_nopush    on;    #此选项允许或禁止使用socket的TCP_CORK的选项(发送数据包前先缓存数据),此选项仅在使用sendfile的时候使用    

#keepalive_timeout 0;     #连接保持超时时间,单位是秒    

keepalive_timeout 65;    

#gzip on;   #gzip模块设置,设置是否开启gzip压缩输出    

#Web 服务的监听配置   server {    

listen 80;    #监听地址及端口    

server_name www.kgc.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;    

     }  

  }

}

日志格式设定:
$remote_addr与$http_x_forwarded_for用以记录客户端的ip地址;
$remote_user:用来记录客户端用户名称;
$time_local: 用来记录访问时间与时区;
$request: 用来记录请求的url与http协议;
$status: 用来记录请求状态;成功是200,
$body_bytes_sent :记录发送给客户端文件主体内容大小;
$http_referer:用来记录从哪个页面链接访问过来的;
$http_user_agent:记录客户浏览器的相关信息;
通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。

访问状态统计配置:

首先进行备份(谨慎!!!)

配置问价修改添加状态配置相关信息

配置好了重新加载服务:systemctl reload nginx

 第一个3:已处理的连接数

第二个3:已经tcp三次握手的连接

5:已处理的请求数

基于授权的访问控制:

①生成用户密码认证文件(htpasswd)

如果没有就yum安装一个httpd-tools工具

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

 systemctl reload nginx

 虚拟主机:

①基于域名:

设置相同ip的不通域名:(/etc/hosts)

递归创建/var/www/html/kgc benet 目录

写入内容到文件并取名

 修改配置文件,添加虚拟主机的内容

 

②基于ip

 ifconfig ens33:0 192.168.169.100 netmask 255.255.255.0 

 ③基于端口

nginx检测异常客户ip自动化处理脚本:

 

nginx是一个高并发、高性能、低能耗、开源、轻量级的web服务器!!!

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

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

相关文章

【JAVA】#详细介绍!!! synchronized 加锁 详解(2)

本篇主要是针对 synchronized锁的优化过程来介绍,针对synchronized的加锁优化过程来了解上篇所提到的synchronized的锁特性。 目录 1. synchronized锁的特性 2.synchronized 锁的升级过程 2.1 总过程: 2.2 偏向锁 2.3 轻量级锁 2.3.1自旋锁vs自适应…

网络安全之认识勒索病毒

一、什么是勒索病毒 勒索病毒,是一种新型电脑病毒,伴随数字货币兴起,主要以邮件、程序木马、网页挂马、服务器入侵、捆绑软件等多种形式进行传播,一旦感染将给用户带来无法估量的损失。如果遭受勒索病毒攻击,将会使绝…

Flink任务提交流程

抽象流程 抽象级别:不管是什么模式,大体上就是上面这个流程。 任务提交给分发器分发器把任务提交给JobManager上的JobMaster组件JobMaster收到任务之后,就会想JobManager上的ResourceManager去请求SlotJobManager上的ResourceManager会提供给…

3.1.2栈的顺序存储实现

(1)初始化一个顺序栈/栈的判空操作 与顺序表的声明类似 就是要加上一个栈顶指针top 然后把别名SqList改为SqStack 我们发现top指针的大小就是数组下标。 当空栈时,top指针为-1. (2)进栈操作 ep:插入一…

版本控制:git的基本使用

1.git基本介绍及安装 学习网址:Git - Book 安装步骤: Git - 安装 Git 安装完可以在本地电脑上查看: cmd为windows环境 bash为linux的环境 2. Git常用命令 牛客网项目——前置技术(五):版本控制_平什么阿的博客-C…

ffmpeg关于视频前几秒黑屏的问题解决

关于音频播放器视频前两秒黑屏的解决,及QtAV和ffmpeg的环境搭建(软件包可以找李青璠提供,也可以自己下)首先我们可以参考下面两个博客进行ffmpeg的搭建,第一个博客的问题可以在第二个博客里寻求方法解决。其中第一个博…

服务器上后台运行python程序

Linux中将代码nohup后台执行、查看正在运行代码、结束进程写在最前面环境代码示例nohup指令& 后台运行2>&1 错误内容重定向到标准输出查看当前python相关进程结束进程nohup后台pip下载安装写在最前面 一直是pycharm运行服务器上代码,但存在问题&#xf…

3.1、线程概述

3.1、线程概述1.线程概述2.线程和进程区别3.线程和进程虚拟地址空间4.线程之间共享和非共享资源①共享资源②非共享资源5.线程版本NPTL1.线程概述 与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的…

通达信指标没有了怎么找回

通达信指标没有了可以恢复,不用太慌张,通达信会自动备份指标公式,可以通过备份文件找回。 1、找到通达信安装文件夹,一般是new_tdx,但是版本不同,安装文件夹可能有区别。本文以new_tdx这个文件夹为例。 如…

什么是零代码与低代码?有什么区别与联系?未来趋势

目前传统软件开发模式并不能很好地满足企业的需求:高人力成本、长研发时间、运维复杂,需求变化快,技术更新快,人员流失。这时零代码或低代码工具出现在市面上并被关注就是必然趋势了。对于不太了解两者的人来说,零代码…

【mysql性能调优 • 三】字符集和校验规则

前言 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系…

Linux下Nginx配置SSL模块,Nginx安装SSL,Nginx支持https配置详细教程

前提:Linux安装Nginx,参考教程:CentOS7安装Nginx完整教程,Linux系统下保姆式安装Nginx教程 | 老麻 安装好Nginx之后,需要支持SSL时,要单独安装SSL模块,方法如下: 输入 ./nginx –V 命…

2345看图王阻止文件删除和U盘弹出 - 解决方案

2345看图王阻止文件删除和U盘弹出 - 解决方案前言2345看图王解决方案临时方案永久方案前言 用户在使用2345看图王查看图片后,可能会出现图片文件/文件夹无法删除或U盘无法弹出等问题,这是因为2345看图王的辅助模块正在占用图片文件,因此无法…

设计分布式日志系统

一、日志 1.1、什么是日志 日志是一种按照时间顺序存储记录的数据,它记录了什么时间发生了什么事情,提供精确的系统记录,根据日志信息可以定位到错误详情和根源。按照APM概念的定义,日志的特点是描述一些离散的(不连…

Spark----DataFrame和DataSet

Spark之DataFrame和DataSet 文章目录Spark之DataFrame和DataSetDataFrameDSL 语法创建DataFrame查看DataFrame的Schema信息只查看列数据的6种方式按照“age”分区,查看数据条数增加列withColumn修改列名withColumnRenamedRDD 转换为 DataFrameDataFrame 转换为 RDD转…

如何使用双轴XY平台绘制斜向多边形

1. 功能说明 本文示例将实现双轴XY平台绘制斜向多边形的功能。 2. 直角坐标机器人的结构设计 直角坐标机器人各个运动轴通常对应直角坐标系中的X轴、Y轴和Z 轴,其中X 轴和Y 轴是水平面内运动轴,Z轴是上下运动轴。在绝大多数情况下直角坐标机器人的各个直…

SpringBoot集成Easy-Es

文章目录SpringBoot集成Easy-Es一、集成demo二、索引CRUD创建索引查询索引更新索引删除索引三、数据CURD四、参数文档SpringBoot集成Easy-Es Easy-Es(简称EE)是一款基于ElasticSearch(简称Es)官方提供的RestHighLevelClient打造的ORM开发框架&#xff0c…

C语言—实用调试技巧

实用调试技巧什么是bug?调试是什么?有多重要?什么是调试调试的基本步骤Debug和Release的介绍Windows环境调试介绍调试环境的准备快捷键的使用调试的时候查看程序当前信息查看断点信息查看临时变量的值查看局部变量的值查看内存信息查看汇编信…

PERSIANN 降雨数据使用教程

一、前言PERSIANN,“使用人工神经网络从遥感信息中估算降水”,是一种基于卫星的降水检索算法,可提供近乎实时的降雨信息。该算法使用来自全球地球同步卫星的红外 (IR) 卫星数据作为降水信息的主要来源。 红外图像的降水基于云顶温度和降水率之…

ESP32驱动1.28寸GC9A01播放视频(一、视频分辨率的调整和视频格式的转换)

ESP32驱动1.28寸GC9A01播放视频(一、视频分辨率的调整和视频格式的转换)播放前准备转换视频分辨率用FFmpeg将.MP4转换为.mjpeg格式FFmpeg的win10环境搭建FFmpeg的下载环境变量的搭建MP4转换成mjpeg格式总结播放前准备 1.28寸GC9A01屏幕的分辨率是240x24…