IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 【Nginx】初步认识及安装 -> 正文阅读

[系统运维]【Nginx】初步认识及安装

Nginx 版本

共有4个版本,
Nginx开源版(最干净的、最纯净的,完成的就是网站服务器、代理服务器、负载均衡器这三大功能)
http://nginx.org/
Nginx plus 商业版(除了基本三大功能外,提供其他的功能,无需开发者自己开发,做二次开发难度较大)
https://www.nginx.com
openresty(免费开源的,Nginx和Lua脚本结合在一起的web平台,而Nginx plus版本自己是可以开发出来的,此版本提供很多类库可供开发者开发)
http://openresty.org/cn/
Tengine(淘宝、天猫发布的开源版本,在Nginx开源版本上新增功能,以模块化的方式增强原始文档)
http://tengine.taobao.org/

Nginx 安装

一般采用Linux虚拟机的形式安装,安装之前最好先备份原有的虚拟机环境(用链接式克隆,占用空间更少),本文采用源码配置编译的方式安装。必须先安装的依赖库,将安装包pcre-8.45.tar.bz2、zlib-1.2.12.tar.gz、nginx-1.20.2.tar.gz 下载后放至Linux虚拟机中,可如下流程安装。

  1. 安装PCRE库(源码安装包:sourceforge.net/projects/pcre/files/pcre 下载),下载之后,解压后用如下命令安装:
$ cd  pcre-8.45       // 解压后进入到主目录下
$ sudo ./configure    // 这是默认的路径下安装,也可以用 sudo ./configure --prefix=/usr/local/pcre 
                      // 指定安装到 /usr/local/pcre 目录下,这里最好用默认路径安装
$ sudo make
$ sudo make install
  1. 安装zlib库(源码安装包:www.zlib.net/fossils/ 下载),下载之后,解压后用如下命令安装:
$ cd  zlib-1.2.12       // 解压后进入到主目录下
$ sudo ./configure      // 这是默认的路径下安装
$ sudo make
$ sudo make install
  1. 安装Nginx(源码安装包:nginx.org/ 下载),下载之后,解压后用如下命令安装:
    使用编译安装,可以添加前缀 --prefix,使其安装到Linux下/usr/local/nginx 目录下,
cd nginx-1.20.2       // 解压后进入到主目录下
/* 若pcre、zlib安装时没有指定路径,直接用下面的命令,测试时:--with-pcre=xx --with-zlib=xx发现指定的是压缩包的路径,最好用默认路径就不会有找不到文件的问题 */
sudo ./configure  --prefix=/usr/local/nginx 
sudo make
sudo make install

Nginx 启动

安装完Nginx后,进入/usr/local/nginx目录下没有任何的启动脚本,进入 /usr/local/nginx/sbin目录下有nginx可执行文件,执行命令: ./nginx

若报错:nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

再用命令:$ ldd nginx
linux-vbso.so.1 => (0x0000007fff730000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x0000007fb8000000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x0000007fe7700000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x0000007ffcb00000)
libpcre.so.1 => not found
libcrypto.so.6 => /lib/x86_64-linux-gnu/libcrypto.so.6 (0x0000007fe2100000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x0000007feb100000)
libc.so.6 => /lib64/libc.so.6 (0x0000007fea100000)
/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 (0x0000007ffd400000)

/* 出现 libpcre.so.1 => not found 链接错误,是因为没有找到该库文件 */
/* 先排查libpcre.so.1是不是已经安装成功,如果没找到,就要重新定位pcre库的安装问题,一般都能找到 */
$ ls /usr/local/lib | grep pcre   // 也有可能是在lib目录下 ls /lib | grep pcre
/* ldd命令提示的路径,添加软链接即可解决 */
$ sudo ln -s /usr/local/lib/libpcre.so.1  /lib/x86_64-linux-gnu/

此时执行命令:sudo ./nginx
浏览器中输入:虚拟机的IP地址即可登录,如下图:
在这里插入图片描述
若输入IP地址回车后,无任何响应,等待一段时间后出现无法访问,是因为虚拟机中的防火墙问题,关闭之后,重新登录网址,即可访问成功。

/* 关闭防火墙 */
$ systemctl stop firewalld.service
/* 禁止防火墙开机启动 */
$ systemctl disable firewalld.service

nginx的启动或停止相关命令:

/* 启动,会启动多个线程,不仅仅只有nginx */
$ ./nginx 
/* 快速停止 */
$ ./nginx -s stop
/* 优雅关闭,在退出前完成已经接受的连接请求,比如正在下载时,会等待下载完才会停止。一旦执行了就不会接收一个新请求 */
$ ./nginx -s quit
/* 重新加载配置,在配置完配置文件后,立即生效,不需要重启整个nginx的服务器。其原理是把之前已开启的线程关掉(优雅关闭),
 * 再重新开启新的线程。
 */
$ ./nginx -s reload 

Nginx 系统服务

由于开启nginx都需要手动执行命令较为繁琐,可创建脚本的方式,开启为系统级nginx服务,在/usr/lib/systemd/system/目录创建脚本文件:nginx.service

$ sudo vi /usr/lib/systemd/system/nginx.service
/* 若用Xshell粘贴,需先进入到编辑模式,输入 a 或 i , 直接粘贴的话,会漏洞某些内容 */
/* 若安装nginx的路径不是/usr/local/nginx目录下,也要对应的更改 */
/* 脚本中直接粘贴如下内容: */
[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
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 stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target

/* 保存脚本之后,重新加载系统服务 */
$ systemctl daemon-reload

可以先查下系统的nginx进程情况

/* 此时可以看到系统的 */
$ ps -ef | grep nginx

此时已开启nginx服务
在这里插入图片描述

/* 先关掉nginx服务 */
$ ./nginx -s stop
/* 再查看下nginx是不是已经关掉 */
$ ps -ef | grep nginx

启动服务

$ systemctl start nginx.service

开机启动

$ systemctl enable nginx.service
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-06-23 01:01:37  更:2022-06-23 01:01:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 2:02:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码