当前位置: 首页 > news >正文

nginx的介绍及源码安装

文章目录

  • 前言
  • 一、nginx介绍
  • 二、nginx应用场合
  • 三、nginx的源码安装过程
    • 1.下载源码包
    • 2.安装依赖性-安装nginx-创建软连接-启动服务-关闭服务
    • 3.创建nginx服务启动脚本
    • 4.本实验---纯代码过程


前言

高可用:高可用(High availability,缩写为 HA),是指系统无中断地执行其功能的能力,代表系统的可用性程度。


一、nginx介绍

传统的 Web 服务器,每个客户端连接作为一个单独的进程或线程处理,需在切换任务时将 CPU 切换到新的任务并创建一个新的运行时上下文,消耗额外的内存和 CPU 时间,当并发请求增加时,服务器响应变慢,从而对性能产生负面影响。
Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。性能是 Nginx 最重要的考量,其占用内存少、并发能力强、能支持高达 5w 个并发连接数,最重要的是,Nginx 是免费的并可以商业化,配置使用也比较简单。
其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

二、nginx应用场合

Nginx 作为 web 服务器

Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、php 等。但是不支持 java。Java 程序只能通过与 tomcat 配合完成。Nginx 专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率 ,能经受高负载的考验,有报告表明能支持高 达 50,000 个并发连接数。
正向代理
Nginx 不仅可以做反向代理,实现负载均衡。还能用作正向代理来进行上网等功能。 正向代理:如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。
简单一点:通过代理服务器来访问服务器的过程就叫正向代理。
需要在客户端配置代理服务器进行指定网站访问

反向代理

反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问。
我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。
在这里插入图片描述

负载均衡

增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡
客户端发送多个请求到服务器,服务器处理请求,有一些可能要与数据库进行交互,服务器处理完毕后,再将结果返回给客户端。

动静分离

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速 度。降低原来单个服务器的压力。
在这里插入图片描述

三、nginx的源码安装过程

1.下载源码包

nginx官方源码 http://nginx.org
在这里插入图片描述
在这里插入图片描述

2.安装依赖性-安装nginx-创建软连接-启动服务-关闭服务

在这里插入图片描述禁用调试 禁用调试在这里插入图片描述
源码编译三部曲:进行完解压之后,condigure;make;make install
condigure命令后,生成Makefile文件,Makefile文件中记录后续的编译如何做,包括实验过程中加的参数
make:把C语言编译成二进制程序
编译出来的命令在objs/中,为nginx(占内存大),但是vim auto/cc/gcc中禁用调试后,生成的nginx(占内存小)
make install:把编译的程序安装到指定的程序中
这些进行完之后,我们的nginx已经安装成功,nginx的开启非常简单,直接nginx命令就可以开启,开启之后,我们可以通过查看80端口来检查是否开启,也可以ps进行查看进程
执行命令要在解压的第一级进行
在这里插入图片描述

3.创建nginx服务启动脚本

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

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

4.本实验—纯代码过程

安装依赖性
[root@server1 nginx-1.22.1]# yum install -y gcc pcre-devel openssl-devel安装nginx
[root@server1 ~]# tar zxf nginx-1.22.1.tar.gz
[root@server1 ~]# cd nginx-1.22.1/
[root@server1 nginx-1.22.1]# vim auto/cc/gcc
172      #CFLAGS="$CFLAGS -g"                ##172行内容进行注释
[root@server1 nginx-1.22.1]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
[root@server1 nginx-1.22.1]# make
[root@server1 nginx-1.22.1]# make install创建软连接,方便调用
[root@server1 ~]# ln -s /usr/local/nginx/sbin/nginx  /usr/local/sbin/启动服务
[root@server1 ~]# nginx
[root@server1 nginx-1.22.1]# netstat -antlp
Active Internet connections (servers and established)
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      17940/nginx: master    ##可查询到包含nginx的信息关闭服务
[root@server1 ~]# nginx -s stop创建服务启动文件
[root@server1 ~]# vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true[Install]
WantedBy=multi-user.target[root@server1 ~]# systemctl daemon-reload
[root@server1 ~]# systemctl  enable nginx
[root@server1 ~]# systemctl  start nginx
[root@server1 ~]# systemctl  stop nginx

http://www.lryc.cn/news/15188.html

相关文章:

  • 通过openssl生成pfx证书
  • 华为OD机试真题Python实现【敏感字段加密】真题+解题思路+代码(20222023)
  • 我的 System Verilog 学习记录(1)
  • 金三银四,我不允许你们不知道这些软件测试面试题
  • 【UnityEditor】Unity将Multiple Sprite分割成多张png小图
  • 独立搭建 handle server
  • 记一次KindEditor表格修改无效问题
  • 一种图片展示的完美方案,图片展示,object-fill
  • 社科院杜兰金融管理硕士——考研初试成绩已出,关于分数“6线”你有了解吗
  • Talk | 清华大学交叉信息研究院助理教授杜韬:利用计算方法探究流固耦合
  • 2023年,智能家居实体门店如何选品?
  • 数据分析-深度学习 NLP Day2关键词提取案例
  • LeetCode题解:938. 二叉搜索树的范围和,BFS,JavaScript,详细注释
  • istio初步了解
  • 【模板】用HTML编写邮件正文 | 各大邮箱几乎都会过滤css样式、js脚本等效果,如何用基础HTML编写?
  • 华为云计算之双活容灾
  • ASEMI高压MOS管ASE20N65SE体积,ASE20N65SE大小
  • resp连接redis服务器
  • 七天实现一个分布式缓存
  • 电子招标采购系统源码功能清单
  • mysql数据库基础知识
  • CAN总线通信
  • MATLAB/Simulink 通信原理及仿真学习(二)
  • CentOS7 防火墙(firewall)的操作命令
  • 文献工具汇总:论文查找、文献管理、文献翻译
  • SQL零基础入门学习(三)
  • 苹果手机如何快速的直接从相册里面的图片提取文字?
  • 【go】函数调用
  • Linux系统之Uboot、Kernel、Busybox思考之四
  • 为什么要经常阅读和分析计算机SCI期刊论文? - 易智编译EaseEditing