Linux服务:Nginx服务部署及基础配置

目录

一、Nginx介绍

1、Nginx简介

2、I/O模型相关概念

3、Nginx事件驱动模型

二、部署Nginx

1、yum部署Nginx

2、编译安装Nginx

三、Nginx使用

1、基础使用

2、nginx信号

四、web服务选择及优化

1、Nginx与Apache对比

2、Nginx服务调优


一、Nginx介绍

1、Nginx简介

①作用:支持七层(应用层)和四层(传输层)反向代理、可做web服务器。

②特性:高可靠性、支持热部署、可扩展性好、高并发高性能、单机部署。

⑤进程:一个主进程master生成多个worker子进程,worker子进程负责处理工作。

2、I/O模型相关概念

①Nginx服务使用异步非阻塞模式:请求不需要排队,会反馈任务的完成结果。

②Apache服务使用同步阻塞模式:请求需要排队,且不会主动返回结果。

③同步/异步:关注的是消息通信机制,即调用者在等待一件事情的处理结果时。被调用者是否提供完成。

④同步:调用者需要主动询问结果。

⑤异步:调用者不需要主动询问结果,被调用者会主动返回结果。

⑥阻塞:系统同时只能处理1个请求,另外的请求需要排队。

⑦非阻塞:系统同时处理多个请求。

3、Nginx事件驱动模型

①select:一个应用程序,代理系统功能处理异步请求,最大连接数是1024个。

它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。

②poll:select加强版取消了1024最大连接数。

poll本质上和select没有区别,它将用户传入的数组拷贝到内核空间,然后查询每个fd对应的设备状态, 但是它没有最大连接数的限制,原因是它是基于链表来存储的。

③epoll:poll的加强版。

epoll可以理解为event poll,不同于忙轮询和无差别轮询,epoll会把哪个流发生了怎样的I/O事件通知我们。所以我们说epoll实际上是事件驱动(每个事件关联上fd)的,此时我们对这些流的操作都是有意义的。

二、部署Nginx

1、yum部署Nginx

①使用yum部署Nginx需要先安装epel-release扩展包,官方源默认没有Nginx的yum源。

yum install epel-release  -y
#安装epel-release扩展源

②扩展源安装完后直接安装Nginx。

yum install nginx -y 
#安装nginx服务

③使用yum安装的nginx配置文件位置在:/etc/nginx.conf。默认根目录在:/usr/share/nginx/html。默认日志文件在:/var/log/nginx/路径下。

2、编译安装Nginx

①官网下载安装包,nginx官网地址nginx news,进入后找到右边菜单栏的download,进入后选择自己想要下载的版本可以直接下载到本地然后传到Linux系统中或右键复制该包的下载连接在Linux系统中wget此地址直接下载到Linux系统中。

②安装包下载完成后安装编译需要的依赖环境和工具,然后进入对应的目录进行解压编译。

yum -y install gcc pcre-devel openssl-devel zlib-devel
#安装编译安装需要的依赖包和工具
cd /opt    
#进入指定安装包下载的目录 /opt下
tar xf nginx-1.18.0.tar.gz
#将nginx包解压到当前文件夹
cd nginx-1.18.0
#进入解压后nginx包中
./configure 
#执行当前目录下的configure脚本检测编译安装环境和工具
--prefix=/apps/nginx \
#执行脚本时指定路径为 /apps/nginx文件夹中,若没有此文件夹需要先创建再进行编译指定
--user=nginx \
#指定用户为nginx用户
--group=nginx \
#指定组为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   
#执行完成检测编译安装环境和工具后将nginx安装包翻译为二进制
make install 
#翻译完成后将包写入磁盘中

③写进磁盘完成后进入部署的文件夹使用绝对路径启动nginx服务,然后查看是否有nginx进程。

/apps/nginx/sbin/nginx 
#使用绝对路径启动nginx
ps aux |grep nginx
#查看是否有nginx进程

④至此编译安装完成,本文资源下载中有一键部署nginx脚本,名称为nginx.sh。

三、Nginx使用

注意:以下命令若非yum安装使用时要使用绝对路径调用nginx命令,或将编译安装路径中的sbin文件夹中的nginx程序拷贝到/usr/sbin路径下。

1、基础使用

①nginx -V 查看安装了那些模块

②nginx -v 查看版本号

③nginx -s 发送信号 后面可以跟stop、reload、quit、reopen

④nginx -t 检查著配置文件语法

nginx -g 修改执行用户ps aux |grep nginx中查看。需要注销配置文件中的user nginx中。nginx -g "daemon off"前台运行,默认后台运行容器中需要使用。

⑥nginx -c 指定配置文件,一般用于.service文件中

2、nginx信号

①quit信号 -----SIGTERM,直接停止,不等服务执行完,nginx -s quit或kill -TERM执行。

②stop信号-----SIGQUIT,优雅的退出,等所有服务执行完再退出,nginx -s stop 或kill -QUIT执行。

③reopen信号---SIGUSER1 分隔日志。

创建新的nginx日志时需要发送USER1信号给nginx主进程才可以生效。kill -USER1 nginx主进程pid号。

④SIGUSER2信号,优雅的升级,不影响正在使用的用户,kill -USER2执行。

⑤reload信号----SIGHUP 重新加载配置文件,nginx -s  reload或kill -HUP执行。

四、web服务选择及优化

1、Nginx与Apache对比

①Nginx使用异步非阻塞工作模式,Apache使用同步阻塞模式。

②Nginx处理静态资源更好,Apache处理动态资源更好。

③Nginx是轻量级web服务器,耗费资源比Apache少。

④Nginx抗并发性更好,Apache更稳定。

⑤Apache对接PHP简单,Nginx对接需要借助其他后端工具。

2、Nginx服务调优

①根据cpu数量配置master有多少个worker子进程。

配置文件全局中修改:work_processes auto(表示根据cpu数量决定个数)。

②设置长链接超时时间。

keepalive_timeout 50。

③调整nginx进程优先级。

worker_priority -20  (范围-20到19,越小优先级越高)

④调整nginx可打开文件数量。

worker_rlimit_nofile 65536;

需要配合修改内核参数vim /sercurity/limits.conf文件中加入下面参数重启机器即可。

*soft nofile 数量

*hard nofile 数量

⑥调整每个worker进程可打开文件数量,注意需要配合nginx总共可以打开文件数量限制。

worker_connections  数量;

⑦隐藏nginx版本号在http模块中添加以下参数。

   server_tockens off

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
实战Nginx:取代Apache的高性能Web服务器 作者: 张宴 出版社: 电子工业出版社 出版年: 2010年2月 内容简介   Nginx (“engine x”) 是俄罗斯人Igor Sysoev编写的一款高性能HTTP 和反向代理服务器Nginx选择了epoll和kqueue作为网络I/O模型,在高连接并发的情况下,Nginx是Apache服务器不错的替代品,它能够支持高达50 000个并发连接数的响应,运行稳定,且内存、CPU等系统资源消耗非常低。   本书主要分为4个部分,第1部分为基础篇,介绍了Nginx服务器的安装与配置方法;第2部分为进阶篇,重点介绍了Nginx配置优化方法、Nginx与PHP/Ruby/Python/JSP/Perl/Memcached的结合配置方法、Nginx HTTP反向代理与负载均衡的配置与优化、Nginx模块开发等,最后还分析了新浪的开源软件项目──基于Nginx的NCache网页缓存系统;第3部分为实战篇,分析了Nginx在国内知名网站(如新浪播客、搜狐博客等)中的应用案例;第4部分为模块篇,对Nginx的基本模块和第三方模块进行了集中介绍。   本书是为对配置管理Nginx服务器感兴趣的读者准备的,适用于以前没有接触过Nginx,或者对Nginx有一些了解并希望能够进一步深入学习的专业系统工程师、个人网站站长及Linux/Unix从业人员。   作者简介   张宴,就职于北京金山软件公司,金山游戏官方网站──逍遥网(xoyo.com)系统架构师,技术支持部平台组组长。曾在新浪网、赶集网等公司任系统工程师、系统架构师,工作内容主要涉及:服务器系统架构设计与部署、系统运维与调优、网络故障解决、网站后端以及接口类PHP程序开发、Unix开源软件二次开发、服务器监控系统开发、系统运维与平台研发团队管理。 第1章 Nginx简介.pdf 第2章 Nginx服务器的安装与配置.pdf 第3章 Nginx的基本配置与优化.pdf 第4章 Nginx与PHP(FastCGI)的安装、配置与优化.pdf 第5章 Nginx与JSP、ASP.NET、Perl的安装与配置.pdf 第6章 Nginx HTTP负载均衡和反向代理的配置与优化.pdf 第7章 Nginx的Rewrite规则与实例.pdf 第8章 Nginx模块开发.pdf 第9章 Nginx的Web缓存服务与新浪网的开源NCACHE模块.pdf 第10章 Nginx在国内知名网站中的应用案例.pdf 第11章 Nginx的非典型应用实例.pdf 第12章 Nginx的核心模块.pdf 第13章 Nginx的标准HTTP模块.pdf 第14章 Nginx的其他HTTP模块.pdf 第15章 Nginx的邮件模块.pdf

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

asddASD323432

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值