在Ubuntu系统中从源码安装Nginx可以让您自定义Nginx的编译选项和模块,以满足特定需求。
以下是详细的步骤指南:
更新系统包列表
|
1 2 |
sudo apt update sudo apt upgrade -y |
安装必要的依赖包
|
1 |
sudo apt install -y build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev wget |
访问Nginx官方主页,获取最新的稳定版本下载链接。
使用wget下载源码包(以Nginx 1.24.0为例,请根据最新版本替换):
|
1 2 |
cd /usr/local/src sudo wget http://nginx.org/download/nginx-1.24.0.tar.gz |
解压源码包
|
1 2 |
sudo tar -zxvf nginx-1.24.0.tar.gz cd nginx-1.24.0 |
配置编译选项可以自定义Nginx的功能和模块。以下是一个常用的配置示例:
|
1 2 3 4 5 6 7 8 9 10 11 |
sudo ./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-pcre --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-stream --with-stream_ssl_module |
说明:
您可以根据需求添加或删除配置选项。运行./configure --help可以查看所有可用的配置选项。
编译源码
|
1 |
sudo make |
编译过程可能需要几分钟,具体时间取决于系统性能。
安装Nginx
|
1 |
sudo make install |
默认情况下,Nginx将被安装到之前指定的路径(如 /usr/local/nginx/)。
创建一个专用用户运行Nginx
|
1 |
sudo useradd -r -s /sbin/nologin nginx |
设置正确的权限
|
1 |
sudo chown -R nginx:nginx /usr/local/nginx |
为了方便管理Nginx,建议将其配置为systemd服务。
创建Systemd服务文件
|
1 |
sudo nano /etc/systemd/system/nginx.service |
在文件中添加以下内容
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[Unit] Description=The NGINX HTTP and reverse proxy server After=network.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 quit User=nginx Group=nginx
[Install] WantedBy=multi-user.target |
重新加载Systemd守护进程
|
1 |
sudo systemctl daemon-reload |
启动Nginx服务
|
1 |
sudo systemctl start nginx |
设置开机自启动
|
1 |
sudo systemctl enable nginx |
检查Nginx状态
|
1 |
sudo systemctl status nginx |
您应该看到Nginx正在运行的状态。
确保防火墙允许HTTP和HTTPS流量。
如果使用UFW防火墙
|
1 |
sudo ufw allow 'Nginx Full' |
重新加载防火墙规则
|
1 |
sudo ufw reload |
访问Nginx默认页面
打开浏览器,访问服务器的IP地址(例如 http://your_server_ip/),您应该看到Nginx的默认欢迎页面。
检查Nginx版本
|
1 |
/usr/local/nginx/sbin/nginx -v |
输出类似于:
|
1 |
nginx version: nginx/1.24.0 |
启动Nginx
|
1 |
sudo systemctl start nginx |
停止Nginx
|
1 |
sudo systemctl stop nginx |
重启Nginx
|
1 |
sudo systemctl restart nginx |
重新加载配置
|
1 |
sudo systemctl reload nginx |
Nginx的主配置文件位于 /usr/local/nginx/conf/nginx.conf。
您可以根据需要编辑该文件进行进一步配置。
|
1 |
sudo nano /usr/local/nginx/conf/nginx.conf |
编辑完成后,重新加载Nginx以应用更改:
|
1 |
sudo systemctl reload nginx |
更新Nginx
由于是源码安装,Nginx不会自动更新。要更新Nginx,需要手动下载新版本源码,编译并安装,或使用包管理工具。
卸载Nginx
源码安装的Nginx通常位于 /usr/local/nginx/。要卸载,只需删除该目录:
|
1 |
sudo rm -rf /usr/local/nginx/ |
以及删除Systemd服务文件:
|
1 2 |
sudo rm /etc/systemd/system/nginx.service sudo systemctl daemon-reload |
日志管理
确保定期轮转Nginx日志以防止日志文件过大。可以使用 logrotate 工具进行配置。
通过以上步骤,您已经成功在Ubuntu系统中从源码编译并安装了Nginx。源码安装提供了更高的灵活性,使您能够根据具体需求自定义Nginx的功能。请确保在生产环境中仔细测试配置,并定期维护Nginx以保持系统安全和稳定。