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版本介绍
生产中要使用偶数版本
- 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(稳定版)