Nginx服务部署及基础配置

目录

一、Nginx介绍

1.Nginx简介

2.I/O模型相关概念

3.Nginx事件驱动模式

二、部署Nginx

1.yum部署Nginx

2.编译安装Nginx

三、Nginx使用

1.基础使用

2.Nginx信号

3.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

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

yum install -y epel-release
#安装epel源   额外     rpeo

2.扩展源安装完后直接安装Nginx

yum install nginx -y
#安装nginx服务

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

2.编译安装Nginx

1.首先安装编译安装需要的依赖包和工具,然后新建nginx用户便于管理

源码包内的文件:

  • contrib:vim 格式文件,修改nginx配置文件的格式,高亮 cp -r /opt/nginx-1.18.0/contrib/vim/* /usr/share/vim/vimfiles/

  • conf:配置文件

  • man:man帮助 man man/nginx.8 不加路径看不了 nginx.8 文件

  • src:源码包 点c 点h 结尾的文件 find src -type f |xargs cat |wc -l 193678

yum -y install gcc pcre-devel openssl-devel zlib-devel openssl  openssl-devel
#安装依赖包
useradd -M -s /sbin/nologin nginx
#新建nginx用户便于管理

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

wget http://nginx.org/download/nginx-1.18.0.tar.gz
#官网下载安装包
cd /opt/
tar xf nginx-1.18.0.tar.gz 
cd nginx-1.18.0/
#解压软件包
mkdir /apps/nginx -p


./configure --help   
#查看帮助模块

./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  j2 &&  make install

chown -R nginx.nginx /apps/nginx
#修改权限

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

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

创建Nginx自启动文件

#复制同一版本的nginx的yum安装生成的service文件

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/logs/nginx.pid
#注意文件位置,如果不对 启动不了
ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
#注意启动文件位置
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
LimitNOFILE=100000

[Install]
WantedBy=multi-user.target


###如果需要修改pid文件可以执行以下操作#################

三、Nginx使用

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执行

3.Nginx有哪些模块

  • 核心模块:是 Nginx 服务器正常运行必不可少的模块,提供错误日志记录 、配置文件解析 、事件驱动机制 、进程管理等核心功能

  • 标准HTTP模块:提供 HTTP 协议解析相关的功能,比如: 端口配置 、 网页编码设置 、 HTTP响应头设置 等等

  • 可选HTTP模块:主要用于扩展标准的 HTTP 功能,让 Nginx 能处理一些特殊的服务,比如:Flash 多媒体传输 、解析 GeoIP 请求、 网络传输压缩 、 安全协议 SSL 支持等

  • 邮件服务模块:主要用于支持 Nginx 的 邮件服务 ,包括对 POP3 协议、 IMAP 协议和 SMTP协议的支持

  • Stream服务模块: 实现反向代理功能,包括TCP协议代理

  • 第三方模块:是为了扩展 Nginx 服务器应用,完成开发者自定义功能,比如: Json 支持、 Lua 支持等

四、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

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Nginx 基本配置包括以下几个方面: 1. 设置端口:通过 listen 指令指定 Nginx 监听的端口。 2. 设置 server_name:通过 server_name 指令指定 Nginx 监听的域名。 3. 设置文档根目录:通过 root 指令指定文档根目录,即网站内容存储的目录。 4. 指定默认文件:通过 index 指令指定 Nginx 在访问目录时默认加载的文件。 5. 配置虚拟主机:通过 server 块来配置虚拟主机,以支持多个域名在同一台机器上运行不同的网站。 下面是一个简单的 Nginx 配置示例: ``` worker_processes 1; events { worker_connections 1024; } http { server { listen 80; server_name example.com; root /var/www/example.com; index index.html; location / { try_files $uri $uri/ /index.html; } } } ``` 请注意,这只是一个基本配置,在实际应用中,您可能需要对其进行更详细的配置以适应您的需求。 ### 回答2: Nginx(发音:engine-x)是一款轻量级高性能的Web服务器和反向代理服务器。下面是Nginx基础配置: 1. **worker_processes:**指定nginx启动的worker进程数。一般设置为cpu核心数。 2. **error_log:**指定nginx错误日志文件的位置。 3. **pid:**指定nginx启动后进程ID存放的位置。 4. **events:**配置事件模块,包括最大连接数和连接的工作模式。 5. **http:**配置HTTP模块,包括HTTP服务器和反向代理服务器的基本配置。 6. **server:**配置一个HTTP服务器。 7. **listen:**指定监听的端口。 8. **server_name:**指定虚拟主机的域名。 9. **location:**配置URL的访问规则以及相应的处理方式。 10. **root:**指定Web服务器的根目录。 11. **index:**指定默认显示的文件。 这些是Nginx基础配置,通过修改这些配置项可以实现Nginx的基本功能。同时,Nginx还支持更多高级功能,如负载均衡、反向代理、缓存等。用户可以根据自己的需求进行相应的配置Nginx配置文件为nginx.conf,默认存放在/etc/nginx/目录下。配置完成后,需要重新加载配置文件并重启Nginx以使配置生效。 总的来说,Nginx基础配置涵盖了基本的服务器和虚拟主机的配置,通过合理修改配置项,可以满足多种不同需求的网站和应用的部署和运行。 ### 回答3: Nginx是一款高性能的Web服务器和反向代理服务器,下面是常见的Nginx基础配置列表。 1. 服务器配置:使用`server`关键字定义一个服务器块,在这里可以配置虚拟主机相关的设置。 2. 监听端口:通过`listen`指令可以指定服务器的监听端口,默认情况下为80端口。 3. 域名绑定:使用`server_name`指令来绑定域名到对应的虚拟主机,可以配置多个域名。 4. 根目录:使用`root`指令来指定服务器的根目录,该目录为网站所有文件的根路径,可以使用相对或绝对路径。 5. 默认页面:通过`index`指令可以设置默认访问的页面文件,多个文件名之间使用空格分隔。 6. 访问日志:使用`access_log`指令可以开启访问日志记录,并指定日志文件的路径。 7. 错误日志:使用`error_log`指令定义错误日志路径和级别。 8. MIME类型:使用`types`指令定义文件扩展名和对应的MIME类型,用于正确解析文件类型。 9. 反向代理:使用`proxy_pass`指令定义反向代理服务器的地址。 10. 网站重定向:可使用`rewrite`指令来实现网站重定向,支持正则表达式。 11. 缓存相关:使用`proxy_cache`指令可以开启和配置反向代理的缓存。 12. 负载均衡:通过`upstream`指令定义多个后端服务器,并使用`server`指令为每个服务器分配权重。 这些是Nginx基础配置的一些常见指令,可以根据实际需求来进行配置的调整和扩展。通过灵活的配置,我们可以实现高性能、高可靠性的Web服务器和反向代理服务

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值