Nginx编译安装及配置文件详解

这篇具有很好参考价值的文章主要介绍了Nginx编译安装及配置文件详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在前面

Centos版本:Centos 7.6 - 64bit
Nginx版本:1.20.2

一、什么是Nginx

Nginx (engine x) 是一款轻量级的Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

二、Nginx用在哪些地方

2.1 静态资源服务

动静分离:为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。本质上是通过本地文件系统来提供服务;

Nginx编译安装及配置文件详解
一般来说,都需要将动态资源和静态资源分开,由于 Nginx 的高并发和静态资源缓存等特性,经常将静态资源部署在 Nginx 上。如果请求的是静态资源,直接到静态资源目录获取资源,如果是动态资源的请求,则利用反向代理的原理,把请求转发给对应后台应用去处理,从而实现动静分离。
使用前后端分离后,可以很大程度提升静态资源的访问速度,即使动态服务不可用,静态资源的访问也不会受到影响。

2.2 正向代理和反向代理(负载均衡)
正向代理

正向代理就是客户端将自己的请求先发给代理服务器,通过代理服务器将请求转发给服务器。我们常用的VPN就是一种代理服务器。比如:你想要访问国外的某个网站,你的客户端就需要连接上一个可以连访问外网的服务器。正向代理代理的是客户端。

反向代理

反向代理,反向代理代理的是服务器。在有多个服务器的情况下,为了能让客户端访问到的ip地址都为同一个网站,就需要使用反向代理。比如:一开始单台机器可以对外提供服务,在用户请求暴增的情况下,就需要多个机器对外提供相同的服务,此时就需要使用nginx作为反向代理,用户只需要访问特定的服务器,nginx会自动根据各个机器的负载情况,将请求转发到不同的机器。

2.3 负载均衡策略
  • 轮询:按照顺序将请求转发到后台机器
  • 加权轮询:根据机器性能的不同,为每个机器设置不同的权重。比如:可以为内存大、性能强劲的机器分配较大的权重,使其处理更多的请求。
  • ip hash绑定服务器:对客户端ip进行hash操作,并对机器个数取余,使其分配到固定的机器。缺点:不易于水平扩展。
  • 一致性哈希:水平扩展友好

三、Nginx安装

3.1 安装编译环境及第三方依赖

Nginx的配置及运行需要pcre、zlib等软件包的支持,因此需要安装这些软件包的开发包,以便提供相应的库和头文件。

yum install gcc-c++ // 安装编译环境
yum install zlib zlib-devel openssl openssl-devel pcre pcre-devel  
3.2 下载nginx安装包
wget http://nginx.org/download/nginx-1.20.0.tar.gz

tar -zxvf nginx-1.20.0.tar.gz  // 解压

cd nginx-1.20.0     // 进入解压目录

./configure  --prefix=/usr/local/nginx // --prefix 指定安装目录,可以不写
make
sudo make install
3.3 Nginx安装默认目录

Nginx编译安装及配置文件详解
其中sbin下就是nginx的可执行程序。logs目录下是日志:包括Nginx访问日志和错误日志,及Nginx运行时的主进程的的进程号会保存在mginx.pid文件中。
Nginx编译安装及配置文件详解

html目录下是静态网页:
Nginx编译安装及配置文件详解

conf目录下是nginx的核心配置,主要关注 nginx.conf即可。Nginx最小的配置如下:

# 配置用户及用户组
user  root;
#启动多少个子进程(worker),通常设置成和cpu的数量相等
worker_processes  1;  

events {
    worker_connections  1024;
}

http {
    include       mime.types;  #告诉浏览器以什么格式去接收和解析文件
    default_type  application/octet-stream;
    
    sendfile        on;  #开启零拷贝
    
	keepalive_timeout 65;
	
	# 虚拟主机 vhost
    server {
        listen       80;
        server_name  localhost; # 域名或者主机名

        location / {
            root   html;
			index  index.html index.htm;
        }
		#如果服务端发生错误,会显示50x.html
		#http://www.baidu.com/50x.html
        error_page   500 502 503 504  /50x.html;
        # 去html目录下找 50x.html,html是相对路径,可以修改
        location = /50x.html {
            root   html;
        }

    }
}
3.3.1 启动nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

Nginx编译安装及配置文件详解##### 3.3.2 停止nginx

/usr/local/nginx/sbin/nginx -s stop
3.3.3 重新加载nginx
/usr/local/nginx/sbin/nginx -s reload
3.3.4 配置文件分析
全局模块

配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。

user  nobody;  				#配置用户或者组,默认为nobody
worker_processes  1; 	 		#允许生成的进程数,默认为1
error_log  logs/error.log;		#制定日志路径,级别。这个设置可以放入全局块,
			#http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg
error_log  logs/error.log  notice;
error_log  logs/error.log  info;
pid        logs/nginx.pid;    #指定nginx进程运行文件存放地址
events块配置

events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。

设置网络连接的序列化

Nginx是多进程的,当某一时刻只有一个网络连接达到时,多个睡眠的进程会被同时叫醒(这种现象叫“惊群”),但是只有一个进程可以获得连接。如果每次唤醒的进程数太多,会影响系统的性能。为了解决这一问题,Nginx配置中有一条指令accpet_mutex,当其设置为开启的时候,将会对多个Nginx的进程接收连接进行序列化,防止多个进程对连接的争抢。语法为:

accept_mutex on | off;  // #设置网路连接序列化,防止惊群现象发生,默认为on

设置是否允许同时接收多个连接

每个Nginx服务器的worker_process 都有能力同时接收多个新到达的连接,但是这需要在配置文件中进行设置,语法为:

multi_accept on | off;  // 默认为off,关闭  即每个worker一次只能接收一个新到达的网络连接,并且只能在events块中进行配置

事件驱动模型的选择

Nginx提供了多种事件驱动模型来处理网络消息,语法为:

use method; // method可以为:select poll epoll kqueue等等
定义MIME_Type

在浏览器中,可以显示html、XML、GIF等多种类型的文本、媒体等资源,浏览器为了区分这些资源,需要使用MIME Type。

Nginx编译安装及配置文件详解
我们可以看到再http全局块中如上配置,inclue 表示从外部引用了 mime.types 文件。这个文件在 /etc/mime.types
Nginx编译安装及配置文件详解

推荐一个零声学院免费教程,个人觉得老师讲得不错,
分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容,点击立即学习:文章来源地址https://www.toymoban.com/news/detail-417058.html

到了这里,关于Nginx编译安装及配置文件详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • centos源码编译安装nginx1.25.3脚本

    Nginx是常见的反向代理服务器,以为经常要安装,所以做了一个install-nginx.sh 脚本,一个命令安装nginx 这个脚本会把nginx安装到 /usr/local/nginx 目录下面 安装好之后记得创建快捷方式啦 然后启动nginx,只需要执行 nginx就可以啦 检测nginx是否启动成功,可以 执行`ps aux|grep nginx` 如果

    2024年01月18日
    浏览(67)
  • Centos服务器编译安装Nginx-1.24.0

    1、下载源码包 2、安装依赖 这些依赖根据需求安装,也可以./config的时候根据报错提示一个一个安装 问题:yum install libmcrypt libmcrypt-devel mcrypt mhash -y 报错:No package libmcrypt available. 解决方法:yum install epel-release //扩展包更新包 3、创建用户组 4、解压文件 并生成配置文件 5、编

    2024年02月14日
    浏览(59)
  • CentOS安装配置Nginx

    一、从官网nginx.org下载Nginx: 说明: 1)因为这是一个stable稳定版本。 2)Mainline version: 开发版;Stable version: 稳定版;Legacy versions: 早期版本; 3)我们肯定是要找最新的稳定版本。 二、上传到Linux中: 不需要使用上传的方法,可以通过先复制链接地址,然后通过wget命令进行

    2024年02月08日
    浏览(40)
  • Centos7.9服务器编译安装Nginx1.24.0和php8.3

    服务器nginx原版本有安全漏洞,需要升级,由于原始是yum源安装,通过yum直接升级,无法正常升级完成,故而需要卸载yum源,重新编译安装。 1、查看原来nginx版本,ps查看原来nginx进程,运行状态: 查看nginx版本号为1.20:

    2024年02月20日
    浏览(49)
  • Nginx网站服务详解(编译安装及系统服务添加)

    目录 一、Nginx的相关知识 1)Nginx的简介 Nginx: Apache: 2)Apache与Nginx的区别  Nginx对比Apache的优势:  apache相对于nginx的优点 : 3)Nginx的进程   Nginx有两个进程: Nginx 是如何实现高并发的?  同步和异步 阻塞与非阻塞 Nginx为什么不使用多线程? 二、编译安装Nginx服务 1)初

    2024年02月07日
    浏览(40)
  • centos安装nginx实操记录(加安全配置)

    配了一个负责均衡,如不需要,可将 server localhost: 多余的去掉 http中的配置 nginx 版本信息隐藏 隐藏Nginx后端服务X-Powered-By头 屏蔽非常见蜘蛛(爬虫) 分析网站日志发现,一些奇怪的 UA 总是频繁的来访问,而这些 UA 对网站毫无意义,反而给服务器增加压力,可以直接将其屏

    2024年02月09日
    浏览(41)
  • CentOS7---Nginx安装并配置虚拟主机

    源码包的获取:http://nginx.org/download/ 实验环境:和企业环境类似,关闭防火墙,禁用selinux,使用静态IP地址 Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了 很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,

    2023年04月16日
    浏览(46)
  • Nginx配置文件配置详解

    官方文档 location 指令是 nginx 中最关键的指令之一,location 指令的功能是用来匹配不同的 URI 请求,进而对请求做不同的处理和响应,这其中较难理解的是多个 location 的匹配顺序,本文会作为重点来解释和说明。 开始之前先明确一些约定,我们输入的网址叫做请求 URI,nginx

    2024年02月05日
    浏览(47)
  • centos 安装 nginx配置ssl 和 获取用户真实ip

    安装所需环境 nginx 是用 C语言开发的,建议在Linux上使用,如果是windows用户,也可以使用windows版本。 一. gcc 安装 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果有 gcc 环境,则不需要安装,命令: yum install gcc-c++ 二. PCRE pcre-devel 安装 PCRE(Perl Compatible

    2024年02月13日
    浏览(40)
  • Nginx 配置文件详解

    Nginx(发音为\\\"engine X\\\")是一款高性能的开源Web服务器软件,也是一款常用的反向代理服务器和负载均衡器。Nginx的灵活性和高性能使其成为许多网站和应用程序的首选服务器。在使用Nginx时,理解其配置文件是非常重要的。本篇博客将详细介绍Nginx配置文件的各个部分以及常用

    2024年02月17日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包