CentOS 8 编译安装nginx

Posted 白-胖-子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 8 编译安装nginx相关的知识,希望对你有一定的参考价值。

nginx

  • 做Web服务器,可以替代apache
  • 做负载均衡,可以替代lvs
  • Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。
  • Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。
    nginx

nginx版本介绍

生产中要使用偶数版本

  • mailine version 主线版本 开发版本
  • stable version 最新稳定版本
  • legacy versions 遗产版本

Nginx安装

yum安装

  • 编译安装可以指定目录和第三方模块
  • 7在epel源,8在app源
  • 官方提供nginx的yum源
  • 直接写一个nginx的yum就可以安装新版本的nginx喽
  • nginx在编译的的时候把所有东东都放在一个文件里边了,
cat > /etc/yum.repos.d/nginx.repo << SUN
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
SUN
  • nginx默认后台执行,想放到前台执行,加damon off,
  • docker在容器中使用的程序必须是前台运行
  • 用命令方式启动,就不能用systemctl关闭服务的方式关闭
  • nginx即是应用程序,也是服务

编译安装nginx

安装依赖库

yum -y install gcc pcre-devel openssl-devel zlib-devel
useradd -s /sbin/nologin nginx

添加用户

useradd -s /sbin/nologin nginx

下载源码包并解压缩

wget http://nginx.org/download/nginx-1.20.1.tar.gz
  • 养成习惯将源码包放在/usr/local/src目录下
tar xf nginx-1.20.1.tar.gz -C /usr/local/src/

进入解压后的目录./config生成makefile

  • –prefix=安装目录
  • –user=nginx 指定用户
  • 生成makefile文件和objs目录
./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

创建应用程序目录

mkdir /apps/

编译安装

make&&make install

更改安装目录用户属组和属主

chown nginx.nginx /apps/nginx

创建软链接到/usr/sbin

ln -s /apps/nginx/sbin/nginx /usr/sbin/nginx
ll /usr/sbin/nginx 
lrwxrwxrwx 1 root root 22 Jun  8 17:30 /usr/sbin/nginx -> /apps/nginx/sbin/nginx

创建 Nginx 服务文件

创建运行目录

mkdir /apps/nginx/run/

编写服务脚本

  • 复制同一版本的nginx的yum安装生成的service文件内容作为模板进行修改即可
cat > /usr/lib/systemd/system/nginx.service << SUN
[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/run/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
[Install]
WantedBy=multi-user.target
SUN

配置文件添加pid

sed -i.bak '/#pid/a pid /apps/nginx/run/nginx.pid;' /apps/nginx/conf/nginx.conf

加载配置文件

systemctl daemon-reload

查看服务状态

systemctl status nginx.service 
● nginx.service - nginx - high performance web server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; ve>
   Active: inactive (dead)
     Docs: http://nginx.org/en/docs/

启动nginx服务并设为开机启动

[root@C8-189 nginx-1.20.1]# systemctl enable --now nginx.service 
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
[root@C8-189 nginx-1.20.1]# systemctl status nginx.service 
● nginx.service - nginx - high performance web server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2021-06-08 17:49:01 CST; 18s ago
     Docs: http://nginx.org/en/docs/
  Process: 42726 ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf (code=exited, status=0/SUCCESS)
 Main PID: 42727 (nginx)
    Tasks: 2 (limit: 11353)
   Memory: 2.4M
   CGroup: /system.slice/nginx.service
           ├─42727 nginx: master process /apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
           └─42728 nginx: worker process

Jun 08 17:49:01 C8-189 systemd[1]: Starting nginx - high performance web server...
Jun 08 17:49:01 C8-189 systemd[1]: Started nginx - high performance web server.

查看nginx版本和编译参数

[root@C8-189 nginx-1.20.1]# nginx -v
nginx version: nginx/1.20.1
[root@C8-189 nginx-1.20.1]# nginx -V
nginx version: nginx/1.20.1
built by gcc 8.4.1 20200928 (Red Hat 8.4.1-1) (GCC) 
built with OpenSSL 1.1.1g FIPS  21 Apr 2020
TLS SNI support enabled
configure arguments: --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

以上是关于CentOS 8 编译安装nginx的主要内容,如果未能解决你的问题,请参考以下文章

基于CentOS6.5环境之下的LNMP之编译安装Nginx1.8.0 stable(稳定版)

CentOS 8 编译安装nginx

Centos6.5源码编译安装nginx

centos编译安装php5.6.20+nginx1.8.1+mysql5.6.17

CentOS7编译安装nginx1.8.1

centos6.8服务器配置之编译安装PHP配置nginx