hi - blog

如何安装nginx

卫慧杰
如何安装nginx

Nginx 是什么

Nginx是一个使用c语言开发的高性能的http服务器及反向代理服务器。Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

Nginx 在官方测试的结果中,能够支持五万个并行连接,而在实际的运作中,可以支持二万至四万个并行连接,并且cpu、内存等资源消耗却非常低,运行非常稳定。

Nginx 的优势是什么

  • 高并发高性能
  • 内存消耗少
  • 配置文件通俗易懂
  • 稳定性高
  • 支持热部署

Nginx 应用场景

  • HTTP 服务器 (Nginx 是一个 Http 服务可以独立提供服务,可以做网页静态服务)
  • 虚拟主机 (可以在一台服务器虚拟出多个网站)
  • 反向代理,负载均衡 (当量级达到一定程度之后,单台服务器不能满足时,需要多台服务器来分发服务,这时就可以使用nginx做反向代理)

nginx 如何安装(这里讲 云服务器centos8中的安装方法)

// 安装 nginx
yum install nginx
// 查看 nginx 进程
ps aux | grep nginx

这样nginx就安装好了,当然如果要是这么讲的话,当然不可能写一篇文章来说了,这里主要讲如何从数据源来下载自定义nginx

// 这里先切换 root 目录
cd ~
// 从数据源下载源文件
wget https://nginx.org/download/nginx-1.21.6.tar.gz

// 查看是否下载到了该目录
ls

// 解压 nginx 文件
tar -zxvf file

// 检查系统环境
./configure 

// 将会打印出来接下了的数据

/**
  ./configure: error: the HTTP rewrite module requires the PCRE library.
  You can either disable the module by using --without-http_rewrite_module
  option, or install the PCRE library into the system, or build the PCRE library
  statically from the source with nginx by using --with-pcre=<path> option.
  */

当然编译的话需要安装相对应的模块

// 编译环境
yum -y install automake autoconf libtool make
yum install gcc gcc-c++
// 相关的pcre
yum install -y pcre pcre-devel
// openssl
yum -y install openssl openssl-devel

接下来配置 nginx

//  配置 nginx configure
./configure --sbin-path=/usr/bin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --with-pcre --with-http_ssl_module

// 编译
make && make install

这样就完成了自定义 nginx 了

// 启动 nginx
systemctl start nginx

讲重点了,跟着这些步骤下来有可能到了启动 nginx 的时候发现启动不了,当然需要配置一下了

touch /lib/systemd/system/nginx.service

当然还需要再配置一个文件

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/bin/nginx -t
ExecStart=/usr/bin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

输入以上你会发现,诶可以使用 systemctl

当然有可能会还会出问题吧

// nginx: [error] invalid PID number "" in "/var/run/nginx.pid"

当然也有解决方案

  1. 先查看nginx进程号
ps -ef | grep nginx

查询出nginx第二列就是进程号

501 14026     1   010上午 ??         0:00.00 nginx: master process nginx
501 14027 14026   010上午 ??         0:00.64 nginx: worker process
501 33539 33113   0 11:30上午 ttys006    0:00.01 grep nginx
  1. 关闭对应进程
kill signal 14026  

虽然也会报错,但这个时候 nginx 已经被关闭了

  1. 从新启动 nginx
nginx

你看以上问题是不是都解决了!!!

如果你不想每次开起服务器的时候都要从新开启 nginx 的话那就需要再敲一个命令了

// 保持 nginx 一直都是开启状态
systemctl enable nginx

以上是我的 nginx 配置,后期可能会再更新,

参考文献:

Current profile photo
© 2022 hi - blog
京ICP备2022015573号-1