Nginx简介和安装

news2024/11/17 11:44:10

一、 Nginx 简介

1、Nginx概述

Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能
力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx
网站用户有:百度、京东、新浪、网易、腾讯、淘宝等

2、Nginx作为web服务器

Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、php
等。但是不支持 java。Java 程序只能通过与 tomcat 配合完成。Nginx 专为性能优化而开发,
性能是其最重要的考量,实现上非常注重效率 ,能经受高负载的考验,有报告表明能支持高
达 50,000 个并发连接数。
https://lnmp.org/nginx.html

3、正向代理

Nginx 不仅可以做反向代理,实现负载均衡。还能用作正向代理来进行上网等功能。
正向代理:如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访
问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理

4、反向代理

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

二、安装

1、进入官网

下载:http://nginx.org/

2、安装

安装依赖包
由于nginx是基于c语言开发的,所以需要安装c语言的编译环境,及正则表达式库等第三方依赖库。

yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
或者
yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

下载安装nginx
yum install wget
wget https://nginx.org/download/nginx-1.22.1.tar.gz
--------------
或者直接上传刚才下载的安装包

三、配置nginx

1、使用命令解压

tar -zxvf nginx-1.22.1.tar.gz

2、配置Nginx编译环境:

cd nginx-1.22.1
-- 初始化Nginx
./configure --prefix=/usr/local/nginx

–prefix 指定的目录,就是我们安装Nginx的目录。默认为/usr/local/nginx,可不填

3:编译&安装

make && make install

gninx目录结构
在这里插入图片描述
在这里插入图片描述

4、启动服务并验证

进入目录 /usr/local/nginx/sbin/启动服务

#启动
[root@localhost ~]# /usr/local/nginx/sbin/nginx
#停止/重启
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s stop
#重新加载:当修改了Nginx配置文件后,需要重新加载才能生效,可以使用下面命令重新加载配置文件:
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload   -- 也是重启的意思
#命令帮助
[root@localhost ~]# /usr/local/nginx/sbin/nginx -h
#验证配置文件
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t
#配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

访问:id地址
在这里插入图片描述
访问时提示无法访问网页:需要打开防火墙端口号
一般nginx都会修改默认端口号

cd /usr/nginx/nginx-1.22.1/conf
vim nginx.conf 
修改端口号后保存,然后重载nginx
cd /usr/local/nginx/sbin/
./nginx -s reload

在这里插入图片描述
修改端口号后,放开防火墙对应端口号设置,前面改的是8099

5、nginx常用命令及配置

1、常用命令

进入 nginx 目录中
cd /usr/local/nginx/sbin
1 、查看 nginx 版本号
./nginx -v
2 、启动 nginx
./nginx
3 、停止 nginx
./nginx -s stop
4 、重新加载 nginx
./nginx -s reload

2:配置文件

位置:/nginx/conf/nginx.conf
第一部分:main:全局配置,对全局生效;
从配置文件开始到 events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。

# main段配置信息
user  nginx;                        # 运行用户,默认即是nginx,可以不进行设置
worker_processes  auto;             # Nginx 进程数,一般设置为和 CPU 核数一样
error_log  /var/log/nginx/error.log warn;   # Nginx 的错误日志存放目录
pid        /var/run/nginx.pid;      # Nginx 服务启动时的 pid 存放位置

第二部分:events 块:配置影响 Nginx 服务器与用户的网络连接;

# events段配置信息
events {
    use epoll;     # 使用epoll的I/O模型(如果你不知道Nginx该使用哪种轮询方法,会自动选择一个最适合你操作系统的)
    worker_connections 1024;   # 每个进程允许最大并发数
}

events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 wordprocess 可以同时支持的最大连接数等。
上述例子就表示每个 work process 支持的最大连接数为 1024.
这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。

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

# http段配置信息
# 配置使用最频繁的部分,代理、缓存、日志定义等绝大多数功能和第三方模块的配置都在这里设置
http { 
    # 设置日志模式
    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  /var/log/nginx/access.log  main;   # Nginx访问日志存放位置

    sendfile            on;   # 开启高效传输模式
    tcp_nopush          on;   # 减少网络报文段的数量
    tcp_nodelay         on;
    keepalive_timeout   65;   # 保持连接的时间,也叫超时时间,单位秒
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;      # 文件扩展名与类型映射表
    default_type        application/octet-stream;   # 默认文件类型

    include /etc/nginx/conf.d/*.conf;   # 加载子配置项,这里指的是启用conf.d下所有.conf的文件
    
    # server段配置信息
    server {
    	listen       80;       # 配置监听的端口
    	server_name  localhost;    # 配置的域名
      
    	# location段配置信息
    	location / {
    		root   /usr/share/nginx/html;  # 网站根目录
    		index  index.html index.htm;   # 默认首页文件,入口文件
    		deny 172.168.22.11;   # 禁止访问的ip地址,可以为all
    		allow 172.168.33.44;# 允许访问的ip地址,可以为all
    	}
    	
    	error_page 500 502 503 504 /50x.html;  # 默认50x对应的访问页面
    	error_page 400 404 error.html;   # 同上
    }
}


这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。
需要注意的是:http 块也可以包括 http 全局块、server 块。

1、http 全局块

http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。

2、server 块

这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了
节省互联网服务器硬件成本。

每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。
而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。

3、全局 server 块

最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或 IP 配置。
在这里插入图片描述

4、location 块: location 用于配置匹配的 uri

一个 server 块可以配置多个 location 块。
这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称(也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。在这里插入图片描述

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

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

相关文章

【Oracle点滴积累】解决ORA-29913和KUP-04095: preprocessor command的方法

广告位招租! 知识无价,人有情,无偿分享知识,希望本条信息对你有用! 今天和大家分享ORA-29913: error in executing ODCIEXTTABLEFETCH callout和KUP-04095: preprocessor command错误的解决方法,本文仅供参…

基于FastCAE平台开发的多物理场仿真软件开发分享

开发目的 基于FastCAE平台开发的多物理场仿真软件,是为了更有效地控制多物理场耦合问题中的重要特征参数,如流体与固体的相互作用力和温度分布,进行了耦合分析。通过该耦合分析,能够深入研究多物理场相互作用的特性,并…

车载T-Box通信稳定性弱网测试方案

作者介绍 T-Box(Telematics Box,车载终端)是一种安装在汽车上的控制器,用于实现车辆的远程监控、数据采集、通信和控制等功能。T-Box是连接汽车与外部世界的关键节点之一,在汽车网联中扮演着重要的角色。通过T-Box&…

css 将背景图片居中显示,并且显示全,不拉伸的效果实现,图片设置宽度,高度自适应,并且显示全。

1、背景自适应的css: .bg-tns {background-image: url(img/xxx.jpg);background-size: cover;background-position: center; /* 将图片居中显示 */min-height: calc(100vh-100px); /* 确保至少为视口高度 */} 这个布局是这样的: 这里的背景图的高度&am…

如何加密车载U盘?车载U盘加密软件推荐

在数字化浪潮中,U盘凭借其卓越的便携性,已然成为我们日常存储与传输数据的不可或缺之利器。然而,这一便利性的背后,数据安全问题也日益严峻,尤其是在需要将U盘连接至多样设备如车载音响、家庭影院系统及电视等场景下。…

毛利率承压连亏三年后一季度业绩暴增,百利天恒谋求A+H双上市

《港湾商业观察》施子夫 7月10日,四川百利天恒药业股份有限公司(以下简称,百利天恒)递表港交所主板,联席保荐机构高盛、摩根大通和中信证券。 此次递表港交所系百利天恒第二次谋求上市,若上市成功&#x…

高质量的课堂,就是让学生“玩起来”

声明:此篇为 ai123.cn 原创文章,转载请标明出处链接:https://ai123.cn/2202.html Hey体育老师们,🏀🏸️你们有没有发现现在的学生好像对体育课的热情不如以前了?是不是因为咱们的体育设施不够&a…

【算法】时间复杂度(快速排序,归并排序,堆排序)

1 归并排序先分解再合并 2 归并排序演示 3 时间复杂度(快速排序,归并排序,堆排序) 1 归并排序先分解再合并 2 归并排序演示 """ 归并排序(Merge Sort)是一种基于分治思想的排序算法。 它将一个大的问题递归地分解…

timing window file中的S L T指什么意思

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 来自星球提问: I S L T的含义如下: 每行的数据代表含义如下:

2024年最新Flink教程,从基础到就业,大家一起学习--Flink运行架构底层源码详解+实战

本文涉及到大量的底层原理知识,包括运行机制图解都非常详细,还有一些实战案例,所以导致本篇文章会比较长,内容比较多,由于内容太多,很多目录可能展示不出来,需要去细心的查看,非常适…

初始化列表 / 隐式转换 / 静态

目录 初始化列表隐式转换单参数的隐式类型转换多参数的隐式类型转换explicit关键字 static 初始化列表 大部分时候成员变量在对象实例化的时候调用构造函数就整体定义了,注意此时只有定义,不算初始化。而定义后的值的值是在构造函数里面给的。我们知道构…

ChaCha20:高效且安全的流密码算法

随着互联网的普及和数据安全意识的提高,加密算法在保护个人隐私和商业秘密方面发挥着越来越重要的作用。ChaCha20是一种流密码算法,由丹伯恩斯坦在2008年提出,后被广泛应用于网络通信和数据加密场景。本文将探讨ChaCha20的原理和特点。 ChaCh…

「ComfyUI」增强图像细节只需要一个节点,SD1.5、SDXL、FLUX.1 全支持,简单好用!

前言 ‍‍‍‍‍前 言 今天听雨给小伙伴们介绍一个非常简单,但又相当好使的一个插件。 功能很简单,就是增加或者减少图像的细节,节点也很简单,就一个节点,只需要嵌入我们的 ComfyUI 的基础工作流中就可以了&#xf…

高频变压器无功补偿怎么做

高频变压器的无功补偿主要是为了提高功率因数、减小无功损耗、提高电源利用率。在高频电路中,由于频率较高,传统的无功补偿方法需要进行一定的调整和优化。以下是高频变压器无功补偿的一些方法和建议: 1、无功补偿电容器 高频电容器选择&…

阿里云OSS跨账号迁移过程

阿里云OSS跨账号迁移过程 关于OSS在线迁移服务的更新说明 旧版在线迁移已停止服务,用户需切换至新版在线迁移。与旧版相比,新版在线迁移的主要区别在于身份验证方式的调整。新版不再使用AK/AS(AccessKey ID和AccessKey Secret)进行认证,而是采用了角色授权机制。这一变化旨…

【CTF Web】CTFShow 版本控制泄露源码 Writeup(目录扫描+.git泄漏)

版本控制泄露源码 10 版本控制很重要,但不要部署到生产环境更重要。 解法 用 dirsearch 扫描。 dirsearch -u https://a21fb823-c708-47ea-91c8-945c25d2ddb1.challenge.ctf.show/找到 .git 仓库。 访问: https://a21fb823-c708-47ea-91c8-945c25d2dd…

2024年【甘肃省安全员C证】考试内容及甘肃省安全员C证免费试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年甘肃省安全员C证考试内容为正在备考甘肃省安全员C证操作证的学员准备的理论考试专题,每个月更新的甘肃省安全员C证免费试题祝您顺利通过甘肃省安全员C证考试。 1、【多选题】听证程序是指行政机关作…

聚鼎装饰画:装饰画店铺未来5年到底有没有前景

随着人们生活水平的提高和审美需求的多样化,装饰画作为家居装饰的重要组成部分,其市场需求持续增长。然而,面对快速变化的市场环境和消费者偏好,装饰画店铺在未来5年的发展前景如何? 一方面,科技进步将为装饰画行业带…

鸿蒙(API 12 Beta3版)【使用ImagePacker完成图片编码】图片开发指导

图片编码指将PixelMap编码成不同格式的存档图片(当前仅支持打包为JPEG、WebP 和 png 格式),用于后续处理,如保存、传输等。 开发步骤 图片编码进文件流 创建图像编码ImagePacker对象。 // 导入相关模块包 import { image } fr…

IOC/DI注解开发

IOC/DI(Inversion of Control/Dependency Injection)是一种依赖注入的软件设计模式,它的核心思想是将对象的创建和依赖关系的管理从代码中抽离出来,交给外部容器来管理。这种设计模式可以提高代码的可维护性、可测试性和可扩展性。…