1. 安装必要的依赖
在编译 Nginx 源码之前,需要安装一些必要的依赖包,这些依赖包包含了编译过程中所需的工具和库。以 CentOS 系统为例,执行以下命令安装:
sudo yum install -y gcc gcc-c++ make pcre-devel zlib-devel openssl-devel
gcc 和 gcc-c++:C 和 C++ 编译器,用于编译 Nginx 源码。
make:构建工具,用于执行 Makefile 文件中的编译指令。
pcre-devel:Perl 兼容正则表达式库的开发包,Nginx 使用它来支持正则表达式匹配。
zlib-devel:Zlib 压缩库的开发包,用于支持 Nginx 的压缩功能。
openssl-devel:OpenSSL 库的开发包,用于支持 Nginx 的 SSL/TLS 功能。
2.下载 Nginx 源码
mkdir -p ~/nginx-src && cd ~/nginx-src
wget https://nginx.org/download/nginx-1.24.0.tar.gz
3. 解压源码包
下载完成后,使用 tar 命令解压源码包:
tar -zxvf nginx-1.24.0.tar.gz
解压后,进入解压后的目录:
cd nginx-1.24.0
4. 配置编译选项
在编译之前,需要对 Nginx 进行配置,指定编译参数和安装路径等信息。执行以下命令进行配置:
./configure \
--prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_gzip_static_module
–prefix=/usr/local/nginx:指定 Nginx 的安装路径为 /usr/local/nginx。
–with-http_ssl_module:启用 SSL/TLS 模块,支持 HTTPS 协议。
–with-http_gzip_static_module:启用静态文件压缩模块,提高网站性能。
5. 编译和安装
配置完成后,使用 make 命令进行编译:
make
编译完成后,使用 make install 命令进行安装:
sudo make install
6.启动 Nginx
安装完成后,进入 Nginx 可执行文件所在目录,并启动 Nginx:
cd /usr/local/nginx/sbin
./nginx
7. 验证 Nginx 安装
可以通过以下几种方式验证 Nginx 是否安装成功并正常运行:
检查服务状态
使用 ps 命令查看 Nginx 进程是否正在运行:
ps -ef | grep nginx
如果输出中包含 nginx: master process 和 nginx: worker process,则说明 Nginx 正在运行。
访问 Nginx 默认页面
打开浏览器,在地址栏中输入服务器的 IP 地址或域名。如果看到 Nginx 的默认欢迎页面,则说明 Nginx 安装和配置成功。
8. 配置系统服务(可选)
为了方便管理 Nginx 服务,可以创建一个系统服务文件。创建并编辑 /etc/systemd/system/nginx.service 文件:
sudo nano /etc/systemd/system/nginx.service
在文件中添加以下内容:
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target 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
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
保存并退出文件,然后重新加载系统服务配置:
sudo systemctl daemon-reload
现在,你可以使用 systemctl 命令来管理 Nginx 服务了,例如启动、停止、重启和设置开机自启:
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl enable nginx
开放端口(5432 6379):查询指定端口是否已开 firewall-cmd --query-port=5432/tcp
提示 yes,表示开启;no表示未开启。
添加指定需要开放的端口:firewall-cmd --add-port=123/tcp --permanent
重载入添加的端口:firewall-cmd --reload