centos8平台编译安装nginx1.18.0

时间:2023-11-09 23:15:56

一,nginx的官网:

http://nginx.org/

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,下载与解压nginx

1,下载

[root@centos8 source]# wget http://nginx.org/download/nginx-1.18.0.tar.gz

2,   解压缩

[root@centos8 source]# tar -zxvf nginx-1.18.0.tar.gz 

三,编译与安装nginx

1,configure

#--prefix 指定安装路径

#--with-http_stub_status_module    允许查看nginx状态的模块

# --with-http_ssl_module     支持https的模块

[root@centos8 nginx-1.18.0]# ./configure --prefix=/usr/local/soft/nginx-1.18.0 --with-http_stub_status_module --with-http_ssl_module

2,编译并安装

[root@centos8 nginx-1.18.0]# make && make install

四, configure报错的解决

说明:如果相应的软件包已安装不会报错,写在这里供参考

1,问题1,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.

解决:

[root@os3 nginx-1.18.0]# yum install pcre-devel

2,问题2,configure提示:

./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=<path> option.

解决:

[root@os3 nginx-1.18.0]# yum install openssl openssl-devel 

五,测试编译安装的效果:查看nginx的版本

[root@centos8 nginx-1.18.0]# /usr/local/soft/nginx-1.18.0/sbin/nginx -v
nginx version: nginx/1.18.0

六,如何查看nginx的配置编译参数?

[root@centos8 nginx-1.18.0]# /usr/local/soft/nginx-1.18.0/sbin/nginx -V
nginx version: nginx/1.18.0
built by gcc 8.3.1 20190507 (Red Hat 8.3.1-4) (GCC)
built with OpenSSL 1.1.1c FIPS 28 May 2019
TLS SNI support enabled
configure arguments: --prefix=/usr/local/soft/nginx-1.18.0 --with-http_stub_status_module --with-http_ssl_module

注意区分和上一条查看版本命令的区别: -v参数分别是小写和大写

七,使systemctl能管理运行nginx服务

1,运行的准备工作:配置日志目录

[root@centos8 conf]# mkdir /data/nginx
[root@centos8 conf]# mkdir /data/nginx/logs

2,运行的准备工作:创建nginx用户

[root@centos8 conf]# groupadd nginx

#-g:指定所属的group

#-s:指定shell,因为它不需要登录,所以用/sbin/nologin

#-M:不创建home目录,因为它不需要登录

[root@centos8 conf]# useradd -g nginx -s /sbin/nologin -M nginx 

3,简单配置nginx

[root@centos8 conf]# vi nginx.conf

内容:

指定运行nginx的用户和组是:nginx

user nginx nginx;

发生错误时要写入到错误日志(目录用上面创建好的)

error_log   /data/nginx/logs/error.log;

指定pid的路径

pid        logs/nginx.pid;

日志格式(取消注释即可)

   log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

指定访问日志的路径和格式(目录用上面创建好的)

  access_log  /data/nginx/logs/access.log  main;

4,生成service文件:

[root@centos8 ~]# vi /usr/lib/systemd/system/nginx.service

内容:

[Unit]
Description=nginx-The High-performance HTTP Server
After=network.target [Service]
Type=forking
PIDFile=/usr/local/soft/nginx-1.18.0/logs/nginx.pid
ExecStartPre=/usr/local/soft/nginx-1.18.0/sbin/nginx -t -c /usr/local/soft/nginx-1.18.0/conf/nginx.conf
ExecStart=/usr/local/soft/nginx-1.18.0/sbin/nginx -c /usr/local/soft/nginx-1.18.0/conf/nginx.conf
ExecReload=/usr/local/soft/nginx-1.18.0/sbin/nginx -s reload
ExecStop=/usr/local/soft/nginx-1.18.0/sbin/nginx -s stop
PrivateTmp=true [Install]
WantedBy=multi-user.target

5,启动服务

重新加载服务文件

[root@centos8 ~]# systemctl daemon-reload 

启动:

[root@centos8 ~]# systemctl start nginx

6,查看效果:

从浏览器访问安装机器的ip的80端口即可:

看例子截图:

centos8平台编译安装nginx1.18.0

7,查看日志目录

[root@centos8 conf]# ll /data/nginx/logs/
总用量 8
-rw-r--r-- 1 root root 1477 4月 22 18:49 access.log
-rw-r--r-- 1 root root 1195 4月 22 18:32 error.log

日志已成功写入

八,查看centos版本

[root@centos8 ~]# cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)