二进制安装Nginx——详细

☆ Nginx概述

Nginx (engine x) 是一个高性能的HTTP和反向代理Web服务器,同时也提供了IMAP/POP3/SMTP等邮件服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日 => F5公司,负载均衡器(硬件)

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

bash 复制代码
# curl -I 域名地址
Server:Nginx

☆ 常见用法

  • 1) Web服务器软件 httpd(apache) 同类型web服务器软件:apache nginx(俄罗斯) iis(微软) lighttpd(德国)
  • 2) 提供了IMAP/POP3/SMTP服务
  • 3) 充当反向代理服务器,实现负载均衡功能。LB=>Load Blance

☆ Nginx特点

  • ① 高可靠:稳定性 master进程 管理调度请求分发到哪一个worker=> worker进程 响应请求 一master多worker
  • ② 热部署 :(1)平滑升级(不停机升级)(2)快速重载配置(不重启Nginx服务,就可以重新加载配置文件)
  • ③ 高并发:可以同时响应更多的请求 事件 底层:epoll模型
  • ④ 响应快:尤其在处理静态文件上,响应速度很快 sendfile
  • ⑤ 低消耗:cpu和内存 1w个请求,内存2~3MB
  • ⑥ 分布式支持:反向代理 七层负载均衡(应用层),新版本也支持四层负载均衡

☆ 常见安装方式

  • ① yum安装配置,需使用Nginx官方源或者EPEL源(优点:安装简单,操作方便;缺点:版本相对固定,定制性特别差。)yum/glibc包(二进制软件包),相当于别人已经对源代码进行打包,生成可执行文件,根据这个可执行文件就可以实现软件安装。
  • ② 源码编译(优点:定制性比较强,可以选择性开启或关闭某些功能,本身比较稳定;缺点:安装比较复杂 => 安装时间长)

☆ 编译安装Nginx

  • 源码编译安装 => 获取别人开发好的软件源代码(没有打包)=> ① 基础配置(软件未来安装路径,选择要安装功能)② 编译(把配置好的源代码进行打包,生成一个可执行的二进制文件)③ 安装(把生成的可执行的二进制文件进行安装操作)
  • 软件的编译安装过程:编译安装三步走(配置 + 编译 + 安装)

① 配置软件./configure

② 编译,生成可执行的软件包make

③ 安装make install

源码,Linux底层都需要安装gcc!

第一步:安装依赖库
bash 复制代码
yum -y install pcre-devel zlib-devel openssl-devel
  • openssl-devel:让Nginx可以支持https协议
  • http 与 https区别-------http端口:80,传输过程没有通过ssl进行加密,明文传输,有安全隐患。早期浏览器默认使用http协议,新版本不推荐使用http协议,内部项目可以采用http。 https端口:443,需要配置ssl证书(免费,3个月要续订一次;收费,1-3年续订一次,大概1000左右一年),加密传输,数据传输过程中都会通过ssl进行加密,相对于http更加安全。
第二步:创建账号
bash 复制代码
useradd -r -s /sbin/nologin www
第三步:配置/编译与安装
bash 复制代码
tar xvf nginx-1.24.0.tar.gz 
cd nginx-1.24.0 
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module 
make && make install
编译参数说明

|--------------------------------|--------------------------------------|
| 参数 | 作用 |
| --prefix | 编译安装到的软件目录 |
| --user | worker进程运行用户 |
| --group | worker进程运行用户组 |
| --with-http_ssl_module | 支持https 需要 pcel-devel依赖 |
| --with-http_stub_status_module | 基本状态信息显示 查看请求数、连接数等 |
| --with-http_realip_module | 定义客户端地址和端口为header头信息 常用于反向代理后的真实IP获取 |

☆ Nginx目录介绍

|------|---------------------------|
| 目录 | 作用 |
| conf | 配置文件(nginx.conf) |
| html | 网站默认目录(源代码目录) |
| logs | 日志(access.log、error.log) |
| sbin | 可执行文件 [软件的启动 停止 重启 重载等] |

  • Nginx比较特殊:既支持重启操作,也支持重载操作!
  • 重启:停服,重新启动
  • 重载:不停服,重新加载配置文件

☆ 软件操作参数

|-----------|--------------------------------------|
| 参数 | 作用 |
| -V | 显示Nginx版本号以及配置选项 |
| -s signal | stop关闭 quit优雅的关闭 reopen重开日志 reload重载 |

常用命令:

启动Nginx

bash 复制代码
cd /usr/local/nginx 
sbin/nginx -c /usr/local/nginx/conf/nginx.conf

强制关闭:如果有正在处理的http请求,也会立即被中断

bash 复制代码
sbin/nginx -s stop

优雅关闭:如果有正在处理的http请求,先处理完成后,在关闭

bash 复制代码
sbin/nginx -s quit

不停服重载:如果在Nginx运行期间,修改了nginx.conf配置文件

bash 复制代码
sbin/nginx -s reload

☆ Nginx服务配置

注意:一定要提前把Nginx停止掉 sbin/nginx -s stop

bash 复制代码
# Nginx服务配置到该文件中
# vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=Nginx Web
Server After=network.target

[Service] Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

# 扩展: Type=forking,forking代表后台运行

启动Nginx服务:

bash 复制代码
# systemctl daemon-reload 
# systemctl start nginx

设置Nginx开机启动:

bash 复制代码
# systemctl enable nginx

重启Nginx:

bash 复制代码
systemctl restart nginx

重载Nginx:

bash 复制代码
systemctl reload nginx

关闭Nginx:

bash 复制代码
systemctl stop nginx

本 篇 完 结 ... ...


持 续 更 新 中 ... ...

相关推荐
有毒的教程6 小时前
Ubuntu 虚拟机磁盘空间不足完整解决教程
linux·运维·ubuntu
WiChP7 小时前
【V0.1B5】从零开始的2D游戏引擎开发之路
java·服务器·数据库
geNE GENT7 小时前
Nginx WebSocket 长连接及数据容量配置
运维·websocket·nginx
小樱花的樱花8 小时前
C++ new和delete用法详解
linux·开发语言·c++
APIshop8 小时前
Java获取京东商品详情接口(item_get)实战指南
java·linux·数据库
Cx330❀9 小时前
一文吃透Linux System V共享内存:原理+实操+避坑指南
大数据·linux·运维·服务器·人工智能
薛定谔的悦9 小时前
储能系统(EMS)核心架构解析:充放电控制、防逆流、防过载与 PID 调节
linux·运维·架构
志栋智能9 小时前
超自动化运维的终极目标:让系统自治运行
运维·网络·人工智能·安全·自动化
3GPP仿真实验室9 小时前
【MATLAB源码】CSI-RS:测量链路
linux·网络·matlab
阿 才9 小时前
WSL2 + TFTP + 网络启动(Linux开发板与WSL2建立网络连接)
linux·运维·网络