1. 下载并上传到ubuntu下的源码存放目录/usr/local/src

        nginx-1.26.2

# 解压缩
/usr/local/src/nginx-1.26.2

tar -zxvf nginx-1.26.2
cd nginx-1.26.2

2. 配置nginx

        切换到源码目录:/usr/local/src/nginx-1.26.2/

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_v2_module

        --prefix=/usr/local/nginx                     nginx安装的路径,/usr/local/nginx是默认安装路径
        --with-http_ssl_module                      ssl模块
        --with-http_stub_status_module        状态监控模块
        --with-http_gzip_static_module          静态文件的 gzip 压缩

 3. 根据提示,安装需要的依赖

sudo apt install gcc libpcre3 libpcre3-dev zlib1g-dev

4. 执行编译安装

        make && make install        

# 直接运行nginx服务

/usr/local/nginx/sbin/nginx

# 测试页访问(公网ip,或pc端服务器ip)
100.200.300.400

5. 将nginx添加到系统命令行

        源码安装,不会自动添加到命令行工具/usr/bin,未添加,查不到版本信息,只能在安装目录下查到。如下所示:

# 只查询nginx版本号
/usr/local/nginx/sbin/nginx -v

# 可以查询nginx configure arguments
/usr/local/nginx/sbin/nginx -V

        软链接到/usr/bin(系统终端命令行工具的启动目录),在systemd中指定nginx路径即可,这个软链接可以不用做。

sudo ln -s /usr/local/nginx/sbin/nginx /usr/bin

5. 查看nginx运行状态

ps -aux | grep nginx

ps -ef | grep nginx

# kill 正在执行的nginx进程,否则systemctl可能完法正常启动nginx。

kill pid

6. systemd命令行管理工具(系统初始化和服务管理器)

        创建*.service之后,就可以直接在终端命令行,控制nginx的状态。

systemctl stop | start | restart | status | reload nginx

        自启动的优先级:

                /etc/systemd/system/*.service   先于  /usr/lib/systemd/system/*.service启动。

        我个人常放在后者。

# /usr/lib/systemd/system/nginx.service

[Unit]
Description=Nginx_Web_Server
After=network.target
    # 网络启动后,启动service

[Service]
Type=forking
    # 以子进程的方式启动
ExecStart=/usr/bin/nginx
    # ln -s from to 
    # ExecStart=/usr/local/workspace/nginx/sbin/nginx
ExecReload=/usr/bin/nginx -s reload
ExecStop=/usr/bin/nginx -s stop

[Install]
WantedBy=multi-user.target
    # 多用户使用模式

7. 自启动状态查看和设置

# 查看启动服务项的状态

systemctl is-enabled nginx

# 系统开机自启开启

systemctl enable nginx

Tip: Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /lib/systemd/system/nginx.service.

# 系统开机自启关闭
systemctl disable nginx

# 快速启动nginx服务
systemctl start nginx

                Tip: Removed /etc/systemd/system/multi-user.target.wants/nginx.service.

Ref: 23.ubuntu编译安装nginx,乌班图零基础视频教程,linux运维入门课程【邓瑞编程】_哔哩哔哩_bilibili

更多推荐