Linux系统架构----nginx的服务基础
一.Nginx的概述
- Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx稳定性高,而且系统资源消耗少
- Nginx相对于Apache主要处理静态请求,而apache主要处理动态请求
- Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等
二.Nginx的安装
- Nginx安装文件可以从官方网站 http://www.nginx.org/ 下载
- 安装运行nginx的运行环境
#下载依赖的软件
[root@nginx1 ~]# mkdir -p /apps/nginx
[root@nginx1 ~]# yum -y install gcc pcre-devel openssl-devel zlib-devel
[root@nginx1 ~]# useradd -s /sbin/nologin nginx
[root@nginx1 ~]# cd /usr/local/src/
[root@nginx1 src]# wget https://nginx.org/download/nginx-1.18.0.tar.gz
[root@nginx1 src]# ls
nginx-1.18.0.tar.gz
[root@nginx1 src]# tar xf nginx-1.18.0.tar.gz
[root@nginx1 src]# cd nginx-1.18.0/
[root@nginx1 nginx-1.18.0]# ./configure --prefix=/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module
#make编译 make install安装
[root@nginx1 nginx-1.18.0]# make && make install
[root@nginx1 nginx-1.18.0]# chown -R nginx.nginx /apps/nginx
[root@nginx1 nginx-1.18.0]# ll /apps/nginx
总用量 0
drwxr-xr-x 2 nginx nginx 333 1月 13 13:34 conf
drwxr-xr-x 2 nginx nginx 40 1月 13 13:34 html
drwxr-xr-x 2 nginx nginx 6 1月 13 13:34 logs
drwxr-xr-x 2 nginx nginx 19 1月 13 13:34 sbin
conf:保存nginx所有的配置文件,其中nginx.conf是nginx服务器的最核心的配置文件,其中.conf则是用来配置nginx相关的功能,
html:目录中保存nginx服务器的web文件,但是可以更改为其他目录保存web文件
logs:用来保存nginx服务器的访问日志错误日志等
sbin:保存nginx二进制启动脚本,可以接受不同的参数实现不同的功能
- 验证版本及编译参数
[root@nginx1 nginx-1.18.0]# ls /apps/nginx/sbin
nginx
[root@nginx1 nginx-1.18.0]# ln -s /apps/nginx/sbin/nginx /usr/bin
[root@nginx1 nginx-1.18.0]# nginx -v
nginx version: nginx/1.18.0
[root@nginx1 nginx-1.18.0]# nginx -V
nginx version: nginx/1.18.0
built by gcc 8.5.0 20210514 (Red Hat 8.5.0-4) (GCC)
built with OpenSSL 1.1.1k FIPS 25 Mar 2021
TLS SNI support enabled
configure arguments: --prefix=/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module
- 使用下列的命令控制nginx
nginx -t //检查
nginx //启动
killall -1 nginx //重启
killall -3 nginx //停止
三.服务控制的优化
- 主程序Nginx支持标准的进程信号,通过kill或者killall命令发送HUP信号表示重载配置,发送QUIT信号表示退出进程,发送KILL信号表示杀死进程
kill -s HUP nginx //-s HUP等同于 -1,表示重载
kill -s QUIT nginx //-s QUIT等同于 -3,表示停止
- systemctl工具来控制Nginx服务脚本
#复制同一版本的nginx的yum安装生成的service文件
[root@nginx1 ~]# vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server //描述
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target //描述服务类型
Wants=network-online.target
[Service]
Type=forking //后台形式运行
PIDFile=/apps/nginx/run/nginx.pid //PID文件位置
ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf //启动服务
ExecReload=/bin/kill -s HUP $MAINPID //根据PID重载
ExecStop=/bin/kill -s TERM $MAINPID //根据PID关闭
LimitNOFILE=100000
[Install]
WantedBy=multi-user.target
#创建Pid文件存放目录
[root@nginx1 ~]# mkdir /apps/nginx/run/
[root@nginx1 ~]# vim /apps/nginx/conf/nginx.conf
#修改配置文件
pid /apps/nginx/run/nginx.pid;
[root@nginx1 ~]# systemctl daemon-reload
[root@nginx1 ~]# systemctl enable --now nginx
[root@nginx1 ~]# ll /apps/nginx/run
总用量 4
-rw-r--r-- 1 root root 5 1月 13 14:17 nginx.pid
四.nginx的配置文件
- Nginx的服务器中的主配置文件 /apps/nginx/conf/nginx.conf 中包括全局配置、I/O事件配置和HTTP配置
- 全局配置,由各种配置语句组成,不使用特定的界定标记。全局配置部分包括Nginx服务的运行用户、工作进程数、错误日志、PID存放位置等基本设置
#user nobody; //运行的用户
worker_processes 1; //工作的进程数 ,取决于服务器的cpu
#error_log logs/error.log; //错误日志文件的位置
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid /apps/nginx/run/nginx.pid; //PID文件的位置
- I/O事件配置,使用“event{ }”界定标记,用来指定Nginx进程的I/O响应模型、每个进程的连接数等设置。对于2.6及以上的版本的内核,建议使用epoll模型以提高性能;每个进程的连接数根据实际需要来定,一般在10000以下(默认为1024)
events {worker_connections 1024; //每个进程处理1024个连接
}
//Nginx能提供服务的连接数为(工作进程数X连接数,即1*1024=1024)
- HTTP配置,使用“http{ }”界定标记,包括访问日志、http端口、网页目录、默认字符集、连接保持,以及后面要讲到的虚拟web主机、PHP解析等一系列设置,其中大部分配置语句包含在server{}中。
http {include mime.types;default_type application/octet-stream;sendfile on; //支持文件下载#tcp_nopush on; //保持连接超时时间#keepalive_timeout 0; keepalive_timeout 65;server {listen 80; //监听地址以及端口server_name localhost;location / {root html; //网站根目录的位置index index.html index.htm; //默认首页}#error_page 404 /404.html;# redirect server error pages to the static page /50x.html#error_page 500 502 503 504 /50x.html; //内部错误的反馈页面location = /50x.html { //错误页面配置root html;}
}
五.访问状态统计
-
Nginx内置了HTTP_STUB_STATUS状态统计模块,用来反馈当前的web访问情况,配置编译参数时–with_http_stub_statius_module来启用此模块支持,使用nginx -V来查看Nginx中是否包含该模块
-
要使用Nginx的状态统计功能,除了启用内建模块以外,还需要修改nginx.conf 配置文件,到指定访问位置并添加stub_status配置代码
location /status {stub_status on; ##开启访问状态统计功能access_log off; ##关闭日志记录}
- 重启服务
[root@nginx1 ~]# systemctl restart nginx.service
验证结果
[root@nginx1 ~]# curl 10.1.1.161/status
Active connections: 1 //当前的连接数
server accepts handled requests //表示已处理的连接数1 1 1 //已处理的连接数 //成功的TCP握手次数 //已处理的请求数
Reading: 0 Writing: 1 Waiting: 0
相关文章:
Linux系统架构----nginx的服务基础
一.Nginx的概述 Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx稳定性高,而且系统资源消耗少Nginx相对于Apache主要处理静态请求,而apache主要处理动态请求Nginx是一款轻量级的Web 服务器/反向代理服务…...
项目管理工具及模板(甘特图、OKR周报、任务管理、头脑风暴等)
项目管理常用模板大全: 1. 项目组OKR周报 2. 项目组传统周报工作法 3. 项目甘特图 4. 团队名单 5. 招聘跟进表 6. 出勤统计 7. 年度工作日历 8. 项目工作年计划 9. 版本排期 10. 项目组任务管理 11. 项目规划模板 12. 产品分析报告 13. 头脑风暴 信息化项目建设全套…...
MySQL--索引底层数据结构详解
索引是什么? 索引是帮助MySQL高效获取数据的排好序的数据结构,因此可知索引是数据结构。 概念很抽象,但是类比生活中的例子就很容易理解,比如一本厚厚的书,我们想取找某一小节,我们可以根据目录去快速找到…...
如何解决爬虫程序访问速度受限问题
目录 前言 一、代理IP的获取 1. 自建代理IP池 2. 购买付费代理IP 3. 使用免费代理IP网站 二、代理IP的验证 三、使用代理IP进行爬取 四、常见问题和解决方法 1. 代理IP不可用 2. 代理IP速度慢 3. 代理IP被封禁 总结 前言 解决爬虫程序访问速度受限问题的一种常用方…...
如何考上东南大学计算机学院?
东南大学招生学院是计算机科学与工程学院、苏州联合研究生院,复试公平,不歧视双非考生,985院校中性价比较高,但近年热度在逐年上涨,需要警惕。 建议报考计算机科学与工程学院081200计算机科学与技术专业目标分数为380…...
双指针算法练习
27. 移除元素 题目 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑…...
桌面终端管理(实用+收藏篇)
桌面终端管理软件是管理和保护企业电脑数据安全的工具。 它能够帮助管理员更有效地控制和监督员工电脑的日常使用,软件的功能包括软件管理、硬件监控、远程管理、数据加密和防泄密、行为审计以及安全防护等。 桌面终端管理的核心要义 桌面终端管理不仅仅是对硬件设…...
day1-C++
1>提示并输入一个字符串,统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数要求使用C风格字符串完成。 代码: #include <iostream> #include <string.h> using namespace std;int main() {string str ;int low 0, …...
C++ 之LeetCode刷题记录(三十九)
😄😊😆😃😄😊😆😃 开始cpp刷题之旅。 目标:执行用时击败90%以上使用 C 的用户。 22. 括号生成 数字 n 代表生成括号的对数,请你设计一个函数,用…...
关于一个数组的小细节
机缘 写一个矩阵转置的代码用到了数组 收获 了解到输入数组的大小要在数组前面而不能先定义数组然后再输入 举例 #include <stdio.h>int main() {int a, b;scanf("%d %d ",&a,&b);int arr[a][b];for(int i 0;i < a;i){for(int j 0;j < b…...
吴恩达机器学习笔记 十八 制定一个性能评估标准 学习曲线 高偏差 高方差
一个模型的好坏的评估基准可以从下面几个方面考虑: 1.考虑人类在这个问题上的表现 2.对比竞争算法的表现 3.根据经验猜测 判断是高偏差还是高方差 训练样本数量越多,越难完美地拟合每个样本,因此 J_train 会逐渐增大一点点,但泛…...
HYBBS 表白墙网站PHP程序源码,支持封装成APP
PHP表白墙网站源码,适用于校园内或校区间使用,同时支持封装成APP。告别使用QQ空间的表白墙。 简单安装,只需PHP版本5.6以上即可。 通过上传程序进行安装,并设置账号密码,登录后台后切换模板,适配手机和PC…...
Java面试宝典——MySQL
更多面试题 可关注微信公众号“假装正经的程序员”获取更多面试题和本篇详细答案,如有问题也可通过公众号私信 公众号目前正处于完善中,后续更多硬核干货会通过公众号免费发布,扫码关注 前言 本篇为MySQL相关面试问题,涉及到初…...
一站式数据采集物联网平台:智能化解决方案,让数据管理更高效、更安全
JVS物联网平台的定位 JVS是企业信息化的“一站式解决方案”,其中包括了基础的数字化底座、各种企业级能力、企业内常见的应用,如下图所示: 整体平台能力层有三大基础能力: 低代码用于业务的定义;数据分析套件用于数据的自助式分…...
【fastllm】学习框架,本地运行,速度还可以,可以成功运行chatglm2模型
1,关于 fastllm 项目 https://www.bilibili.com/video/BV1fx421k7Mz/?vd_source4b290247452adda4e56d84b659b0c8a2 【fastllm】学习框架,本地运行,速度还可以,可以成功运行chatglm2模型 https://github.com/ztxz16/fastllm &am…...
《TCP/IP网络编程》中多线程HTTP服务器实现代码,线程池改编
文章目录 最初代码线程池代码locker.hthreadpool.htask.hmain.cppindex.html编译 执行结果 最初代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/socket.h>…...
Windows®、Linux® 和 UNIX® 系统都适用的远程桌面工具 OpenText ETX
Windows、Linux 和 UNIX 系统都适用的远程桌面工具 OpenText ETX 为 Windows、Linux 和 UNIX 实施精益、经济高效的虚拟化;提供完整的远程 Windows 可用性;以类似本地的性能远程工作;安全地保护系统和知识产权(IP)&am…...
酷柚易汛ERP - 榜店商城对接说明
榜店商城与酷柚易汛ERP对接,需要先在榜店系统中安装对应插件,配置对应的密钥 榜店商城与酷柚易汛ERP的商品进行关联操作,同时订单也会同步,关联不正确会导致订单出库错误 可查看对应的日志...
Linux 多进程开发(上)
第二章 Linux 多进程开发 2.1 进程概述2.2 进程状态转换2.3 进程创建2.4 exec 函数族2.5 进程控制 网络编程系列文章: 第1章 Linux系统编程入门(上) 第1章 Linux系统编程入门(下) 第2章 Linux多进程开发(…...
【DataWhale学习】用免费GPU线上跑StableDiffusion项目实践
用免费GPU线上跑SD项目实践 DataWhale组织了一个线上白嫖GPU跑chatGLM与SD的项目活动,我很感兴趣就参加啦。之前就对chatGLM有所耳闻,是去年清华联合发布的开源大语言模型,可以用来打造个人知识库什么的,一直没有尝试。而SD我…...
【仅限首批200位工程师开放】工业PHP网关配置诊断工具包(含自动巡检脚本+配置熵值评分模型+整改优先级热力图)
第一章:工业PHP网关配置的演进与工程挑战工业级PHP网关已从早期的简单NginxPHP-FPM反向代理,演进为集路由分发、协议转换、熔断限流、可观测性注入于一体的复合中间件层。这一演进在提升系统弹性的同时,也带来了配置复杂度指数级上升、多环境…...
每日安全情报报告 · 2026-04-09
每日安全情报报告 2026-04-09 发布时间:2026-04-09 11:33 报告周期:近 24–48 小时 风险标注:🔴 严重(CVSS ≥ 9.0)|🟠 高危(CVSS 7.0–8.9)|&am…...
英雄联盟智能助手ChampR:快速提升游戏水平的终极指南
英雄联盟智能助手ChampR:快速提升游戏水平的终极指南 【免费下载链接】champr 🐶 Yet another League of Legends helper 项目地址: https://gitcode.com/gh_mirrors/ch/champr 你是否在英雄联盟游戏中苦苦寻找最佳的出装和符文配置?C…...
【一文吃透】相控传感器阵列:从波束形成到工程落地的全链路实战指南(附Python仿真代码)
文章目录一、相控阵列到底是什么?——用雷达测速仪讲清楚原理1.1 为什么需要"相控"?传统传感器的盲区痛点1.2 相位差如何"操控"信号方向——水波干涉的直觉理解二、波束形成的数学本质——别被公式吓到2.1 阵列响应向量:…...
ollama部署embeddinggemma-300m:轻量模型在政务知识图谱中的应用
ollama部署embeddinggemma-300m:轻量模型在政务知识图谱中的应用 1. 引言:为什么选择轻量级嵌入模型 在日常政务工作中,工作人员经常需要快速查找相关政策文件、法规条文和办事指南。传统的关键词搜索往往不够精准,比如搜索&quo…...
AI开发-python-langchain框架(--AI 直接生成并执行 Python 代码 )遣
指令替换 项目需求:将加法指令替换为减法 项目目录如下 /MyProject ├── CMakeLists.txt # CMake 配置文件 ├── build/ #构建目录 │ └── test.c #测试编译代码 └── mypass2.cpp # pass 项目代码 一,测试代码示例 test.c // test.c…...
labview实现CPU温度的实时检测
上面的系统实现其实很简单,使用Windows 管理规范(WMI) 配合 LabVIEW 的 .NET 接口 实现的,属于系统级硬件监控。1. 核心实现方式:WMI(Windows Management Instrumentation)读取 CPU 温度&#x…...
FPGA实战:14位高速DAC的Verilog代码设计与EMC优化全解析(Vivado平台)
1. 高速DAC设计基础与核心挑战 在FPGA信号处理系统中,14位高速DAC(如AD9744)的设计往往面临两个核心矛盾:时序收敛与信号完整性。我曾在多个项目中遇到这样的场景:当DAC时钟频率超过100MHz时,输出波形会出现…...
开源可部署+高算力适配:internlm2-chat-1.8b在Ollama中GPU利用率提升方案
开源可部署高算力适配:internlm2-chat-1.8b在Ollama中GPU利用率提升方案 1. 模型简介与部署准备 InternLM2-Chat-1.8B是第二代书生浦语系列中的18亿参数对话模型,专门针对聊天场景进行了深度优化。这个模型在指令遵循、对话体验和功能调用方面表现出色…...
OpenClaw数据清洗:Qwen3-4B智能处理CSV与Excel文件
OpenClaw数据清洗:Qwen3-4B智能处理CSV与Excel文件 1. 为什么需要智能数据清洗助手 作为一个经常处理实验数据的研究员,我每天要面对各种格式混乱的CSV和Excel文件。上周刚遇到一个典型场景:合作方发来的300MB临床数据表格里,日…...
