马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
Nginx 有两种装法:包管理器一键装(快、好卸载),源码编译装(可控、能按需加模块)。这篇把两条路都走一遍——源码安装到卸载的完整命令序列,以及安装前必须知道的四个依赖包各自管什么。
一、源码安装:从下载到启动
1.1 下载安装包
先去 Nginx 官网确认需要的版本。机器能联网就直接在服务器上用 wget 拉到 /usr/local:
[root@xxx local]# wget -c http://nginx.org/download/nginx-1.22.1.tar.gz
拉完会看到一段下载日志 ,留意末尾出现 The file is already fully retrieved; nothing to do. 或 HTTP request sent, awaiting response... 200 才说明完整。如果机器不联网,就在本机下好再上传;没有 wget 就 yum install -y wget 装一个。
1.2 安装依赖包
源码编译需要 gcc 和四个开发库:
[root@xxx local]# yum install -y gcc-c++ zlib zlib-devel openssl openssl-devel pcre pcre-devel
输出里可能看到某个源 [Errno 14] curl#77 的报错,yum 会自动 Try other mirror 继续,只要最后装成功就没事。这四个依赖各管一摊:
- gcc:编译工具,源码编译必备。
- PCRE(pcre + pcre-devel):Perl 兼容正则库。Nginx 的 http 模块用 pcre 解析正则,所以必须装;pcre-devel 是二次开发库,Nginx 同样需要。
- zlib:提供 compression 能力。Nginx 用 zlib 对 http 包内容做 gzip,所以要在 CentOS 上装。
- OpenSSL:安全套接字层密码库,含主要密码算法、密钥与证书封装管理、SSL 协议。Nginx 既支持 http 也支持 https(在 ssl 上传 http),所以也要装。
离线环境可以拿依赖包目录执行 rpm -Uvh *.rpm --nodeps --force 强装。
1.3 编译安装四连
[root@xxx nginx]# ./configure
[root@xxx nginx]# make
[root@xxx nginx]# make install
[root@xxx sbin]# ./nginx
要点:
./configure 的作用是生成 Makefile,这个脚本可以带参数控制编译行为,用 ./configure --help 查完整参数。
- 需要 SSL 支持就加参数:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module,其中 stub_status 用来看连接状态统计。
make 编译,make install 安装,装完多了个 sbin 目录,进去跑 ./nginx 就启动了。
1.4 验证与常用运维命令
Nginx 默认 80 端口,启动后浏览器输 http://服务器IP 能出来欢迎页即成功。然后把 sbin 路径写进环境变量更方便:
# 编辑 /etc/profile,末行添加
PATH=$PATH:/usr/local/nginx/sbin
# 刷新
source /etc/profile
nginx -v # 查看版本
nginx -s stop # 暴力停止
nginx -s quit # 优雅停止(处理完当前连接)
nginx -t # 检查配置文件语法
nginx -s reload # 平滑重载配置
改完 nginx.conf 一律先 nginx -t 再 nginx -s reload,这是线上改配置不中断服务的基本动作。
二、卸载方案一:包管理器卸载
- 停服务:
sudo systemctl stop nginx。
- 确认已停:
sudo systemctl status nginx,显示 Active: inactive 才算停住。
- 卸包:
sudo apt remove nginx(连带相关依赖)。
- 删配置与日志
:sudo rm -rf /etc/nginx /var/log/nginx。
- 清理残留依赖:
sudo apt autoremove。
- 验证干净:
which nginx 无输出即彻底卸掉。
三、卸载方案二:源码安装怎么卸
源码装的没有包管理记录,得手动清:
- 找到安装目录,一般就是
/usr/local/nginx。
sudo make uninstall:删掉程序文件和配置文件,但不会删日志 和缓存。
- 想全清:
sudo rm -rf /usr/local/nginx,这会连同日志、缓存一起删;这一步会抹掉可能有用的历史数据,动手前先备份。
另外别忘了两件小事:一是把 /etc/profile 里加的那行 PATH 删掉,二是如果有 systemctl 的 nginx 服务单元文件也要一并移除,否则重装时会冲突。
四、两种装法怎么选
- 包管理器装(
apt install nginx / yum install nginx):几秒搞定,升级卸载都是一条命令,适合快速搭环境、走标准模块。缺点是模块选择受发行版打包限制。
- 源码编译装:能自己决定
--prefix、加第三模块(如 http_substitutions_filter)、锁定版本,适合生产环境和需要特定模块的场景。代价是升级和卸载都得手工处理。
建议:测试和学习用包管理器,生产上需要定制模块再走源码,并且装上后立刻把配置纳入版本管理,卸载重装时才不至于抓瞎。
qidao123.com企服评测-应用市场 编辑提示 |