准备

下载nginx源码包

  • 在源码安装前,我们得先下载nginx源码包
  • https://nginx.org/download/
  • 在这里插入图片描述
  • 这里我下载的是nginx-1.23.0.tar.gz版本
  • 下载完之后,我们使用mobaxterm将nginx-1.23.0.tar.gz上传到我们的Linux服务器的/root/目录下
[root@CentOS ~]# ls
anaconda-ks.cfg  nginx-1.23.0.tar.gz

关闭防火墙

[root@centos ~]# systemctl disable firewalld
[root@centos ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

关闭selinux

[root@centos ~]# vim /etc/selinux/config

在这里插入图片描述

安装依赖环境

[root@centos ~]# yum install gcc gcc-g++ pcre-devel openssl-devel zlib-devel make -y

解压

  • 解压
[root@centos ~]# tar -zxvf nginx-1.23.0.tar.gz
  • 改名
[root@centos ~]# ls
anaconda-ks.cfg  nginx-1.23.0  nginx-1.23.0.tar.gz
[root@centos ~]# mv nginx-1.23.0 nginx    #改名
[root@centos ~]# ls
anaconda-ks.cfg  nginx  nginx-1.23.0.tar.gz
  • 进入nginx目录
[root@centos ~]# cd nginx
[root@centos nginx]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src

编译

[root@centos nginx]# ./configure

在这里插入图片描述

安装

[root@centos nginx]# make && make install
  • 默认安装路径在/usr/local/nginx中
  • 切换到/usr/local/nginx中
[root@centos nginx]# pwd
/root/nginx
[root@centos nginx]# cd /usr/local/nginx/
[root@centos nginx]# pwd
/usr/local/nginx
[root@centos nginx]# ls
conf  html  logs  sbin

测试

[root@centos nginx]# ls
conf  html  logs  sbin
[root@centos nginx]# cd sbin
[root@centos sbin]# ls
nginx
[root@centos sbin]# ./nginx     #启动服务

在这里插入图片描述

编写服务脚本,通过systemctl实现服务启动与关闭

  • 在Linux系统中,systemd是初始化系统和服务管理器的标准,用于管理系统的启动和运行。systemd的配置文件通常位于/etc/systemd/system/或/usr/lib/systemd/system/目录下,这些文件以.service结尾,定义了服务的启动、运行、停止等行为。
  • systemd是CentOS系统操作系统开始启用新的系统和服务管理器

在这里插入图片描述

[root@centos ~]# vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=ngixn server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx

[Install]
WantedBy=multi-user.target
  • 重新加载
[root@centos ~]# systemctl daemon-reload

测试

[root@centos ~]# systemctl start nginx
[root@centos ~]# systemctl status nginx
● nginx.service - ngixn server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since 二 2024-07-02 00:21:08 CST; 6s ago
  Process: 4209 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, status=0/SUCCESS)
 Main PID: 4210 (nginx)
   CGroup: /system.slice/nginx.service
           ├─4210 nginx: master process /usr/local/nginx/sbin/nginx
           └─4211 nginx: worker process

7月 02 00:21:08 centos systemd[1]: Starting ngixn server...
7月 02 00:21:08 centos systemd[1]: Started ngixn server.

在这里插入图片描述

[root@centos ~]# systemctl stop nginx
[root@centos ~]# ps -ef | grep nginx
root       4222   1412  0 00:22 pts/0    00:00:00 grep --color=auto nginx
[root@centos ~]# systemctl restart nginx
[root@centos ~]# systemctl status nginx
● nginx.service - ngixn server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since 二 2024-07-02 00:23:03 CST; 10s ago
  Process: 4229 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, status=0/SUCCESS)
 Main PID: 4230 (nginx)
   CGroup: /system.slice/nginx.service
           ├─4230 nginx: master process /usr/local/nginx/sbin/nginx
           └─4231 nginx: worker process

7月 02 00:23:03 centos systemd[1]: Starting ngixn server...
7月 02 00:23:03 centos systemd[1]: Started ngixn server.

更多推荐