CentOS 7.6 离线安装 nginx
时间: 2025-06-09 18:18:48 浏览: 14
### CentOS 7.6 上 Nginx 的离线安装方法
要在 CentOS 7.6 中进行 Nginx 的离线安装,需要手动下载并编译所需的依赖项以及 Nginx 源码包。以下是详细的说明:
#### 准备工作
在开始安装前,确保目标服务器能够访问互联网以便于准备阶段获取必要的文件,并将其复制到无法联网的目标机器。
---
#### 下载所需软件包
1. **Nginx 源码包**
- 访问官方站点下载最新稳定版本的源码压缩包:
```bash
wget https://nginx.org/download/nginx-1.19.9.tar.gz
```
这里假设使用的是 `nginx-1.19.9` 版本[^5]。
2. **依赖库**
在离线环境中安装 Nginx 前,必须先准备好其运行所必需的一些开发工具和库,包括但不限于以下内容:
- GCC 编译器及其相关组件 (如 g++)
- OpenSSL 库用于 HTTPS 支持 (`openssl-devel`)
- PCRE 正则表达式支持 (`pcre-devel`)
- Zlib 数据压缩库 (`zlib-devel`)
可通过 yum 或者 rpm 手动下载这些 RPM 文件至本地磁盘供后续操作使用。
---
#### 安装依赖环境
将上述提到的所有 .rpm 文件传输到无网络连接的目的主机之后执行批量安装命令如下所示:
```bash
rpm -ivh *.rpm --force --nodeps
```
注意这里强制忽略依赖关系冲突可能引发潜在风险,请谨慎处理!
另外如果某些特定功能模块未被包含进来,则还需要额外单独解决它们各自的前置条件问题。
---
#### 解压与配置
解压已下载好的 tarball 并进入相应目录继续下一步骤设定参数选项等事宜。
```bash
tar zxvf nginx-1.19.9.tar.gz && cd nginx-1.19.9/
./configure \
--prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-pcre \
--with-zlib \
--with-file-aio \
--without-mail_pop3_module \
--without-mail_imap_module \
--without-mail_smtp_module
```
以上脚本定义了一些常用的附加特性开关比如启用 SSL/TLS 加密通信能力等等;当然也可以根据实际需求调整具体选型列表长度不一而足。
---
#### 编译及部署
当一切就绪后就可以正式构建二进制可执行程序了:
```bash
make && make install
```
成功完成后即代表整个过程结束可以正常启动服务进程验证成果啦~
---
#### 后续管理维护事项
为了方便日常管理和监控状态变化情况建议添加系统服务单元文件实现自动化控制目的同时开放防火墙规则允许外部请求到达指定监听端口号80默认值为例展示如下代码片段仅供参考学习用途仅限于此不做任何商业推广承诺保障之类表述哦亲们明白吗?哈哈😄
创建一个新的 systemd service unit file `/etc/systemd/system/nginx.service` 内容大致形似这样子的样子咯:
```ini
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
PrivateTmp=true
[Install]
WantedBy=multi-user.target
```
最后记得重新加载守护进程配置表单使之生效即可完成全部流程啦🎉🎊
```bash
systemctl daemon-reload
systemctl enable nginx
systemctl start nginx
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
```
---
阅读全文
相关推荐

















