Nginx网站服务

发布于:2024-06-24 ⋅ 阅读:(158) ⋅ 点赞:(0)

一款高性能、轻量级Web服务软件

稳定性高

系统资源消耗低

对HTTP并发连接的处理能力高。

单台物理服务器可支持30 000~50 000个并发请求

nginx:

IO 多路复用,epoll(freebsd 上是 kqueue )

高性能

高并发

占用系统资源少

apache :

阻塞+多进程/多线程

更稳定,bug 少

模块更丰富

Nginx 有哪些优点?

跨平台、配置简单。

非阻塞、高并发连接:处理 2-3 万并发连接数,官方监测能支持5万并发。

内存消耗小:开启 10 个 Nginx 才占 150M 内存。

成本低廉,且开源。

稳定性高,宕机的概率非常小。

内置的健康检查功能:如果有一个服务器宕机,会做一个健康检查,再发送的请求就不会发送到宕

机的服务器了。重新将请求提交到其他的节点上

为什么 Nginx 不使用多线程?

Apache: 创建多个进程或线程,而每个进程或线程都会为其分配 cpu 和内存(线程要比进程小的

多,所以 worker 支持比 perfork 高的并发),并发过大会榨干服务器资源。

Nginx: 采用单线程来异步非阻塞处理请求(管理员可以配置 Nginx 主进程的工作进程的数量)

(epol),不会为每个请求分配 cpu 和内存资源,节省了大量资源,同时也减少了大量的 CPU 的上

下文切换。所以才使得 Nginx 支持更高的并发。

##Nginx利pache的差异:

轻量级,nginx比apache 占用更少的内存及资源:静态处理,Nginx静态处

理性能比pache高:Nginx可以实现无缓存的反向代理加速,提高网站运行速度;Nginx的性能和可伸

缩性不依赖于硬件,Apache依赖于硬件;Nginx支持热部署,启动速度迅速,可以在不问断服务的

情况下,对软件版本或者配置进行升级:nginx是异步进程,多个连接可以对应一个进程;apache是

同步多进程,一个连接对应一个进程;Nginx高度模块化,编写模块相对简单,且组件比Apache少

高并发下nginx能保持低资源低消耗高性能;Nginx配置简洁,Apache配置复杂:

nginx版本安装

1.关闭防火墙,将安装nginx所需软件包传到/opt目录下

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

 2.安装依赖包

yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

3.创建运行用户、组(Nginx 服务程序默认以 nobody 身份运

行,建议为其创建专门的用户账号,以便更准确地控制其访问权

限)

useradd -M -s /sbin/nologin nginx

 4.编译安装Nginx

tar zxvf nginx-1.12.0.tar.gz -C /opt/

 让系统识别nginx的操作命令

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

5.启动

/usr/local/nginx/sbin/nginx									

日志分割,重新打开日志文件

kill -USR1 <PID号>

新版本升级:

tar -zxvf nginx-1.xx.xx.tar.gz

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
--with-http_ssl_module

6.添加 Nginx 系统服务

vim /lib/systemd/system/nginx.service

[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

重启

认识Nginx服务的主配置文件 nginx.conf

1、全局块:全局配置,对全局生效;

2、events块:配置影响 Nginx 服务器与用户的网络连接;

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

4、server块:配置虚拟主机的相关参数,一个 http 块中可以有多个 server 块;

5、location块:用于配置匹配的 uri ;

6、upstream:配置后端服务器具体地址,负载均衡配置不可或缺的部分。
 


网站公告

今日签到

点亮在社区的每一天
去签到