更新系统软件包列表:
sudo apt update
安装编译Nginx所需的软件包:
sudo apt install -y build-essential libpcre3 libpcre3-dev zlib1g-dev libssl-dev
- build-essential: 该包含一些必要的软件包,如编译器和make工具等,用于编译安装Nginx;
- libpcre3: PCRE是Perl兼容正则表达式库,Nginx中默认启用该模块;
- libpcre3-dev: PCRE开发库,用于编译Nginx PCRE模块;
- zlib1g-dev: Zlib库提供了压缩和解压缩数据的函数,该库被Nginx使用,并且默认启用gzip模块;
- libssl-dev: SSL(Secure Sockets Layer)提供了安全的通信渠道,该模块使Nginx能够支持HTTPS协议。
环境准备:
先安装准备环境
sudo apt install libgd-dev
nginx下载地址:/en/
下载:
wget /download/nginx-1.20.
解压:
tar -xzvf nginx-1.20.
配置编译参数:
cd nginx-1.20.2
sudo ./configure --prefix=/usr/local/nginx --with-http_ssl_module
–prefix参数指定nginx安装目录,–with-http_ssl_module参数启用https支持。
编译安装Nginx
sudo make
sudo make install
启动nginx:
/usr/local/nginx/sbin/nginx
验证nginx是否成功安装
在浏览器中输入服务器IP地址或者域名,如果能够访问到nginx的欢迎页面,说明nginx已经成功安装。
注意:如果有防火墙或安全组等安全设备,需要对nginx开放相应的端口,比如80端口。
查看nginx进程:
ps -ef|grep nginx
配置软链接
sudo ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
常用命令
nginx -s reload :修改配置后重新加载生效
nginx -s reopen :重新打开日志文件
nginx -t -c /path/to/ 测试nginx配置文件是否正确
关闭nginx:
nginx -s stop :快速停止nginx
nginx -s quit :完整有序的停止nginx
防火墙端口设置
sudo ufw status
如果输出结果为“Status: inactive”,说明防火墙未开启。
开启80和443端口
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
输出结果应该类似于:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
可以看到80和443端口已经被允许访问。
开机启动
在Ubuntu上配置Nginx开机启动可以使用systemd服务来实现。以下是具体的步骤
1.创建Nginx服务文件
使用以下命令创建一个Nginx的systemd服务文件,文件名为:
sudo nano /etc/systemd/system/
在编辑器中输入以下内容:
[Unit]
Description=Nginx Web Server
After=
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=
注意,需要根据实际情况修改PIDFile和ExecStartPre、ExecStart、ExecReload、ExecStop的路径。
2.重新加载systemd配置
使用以下命令重新加载systemd配置文件,让新的服务文件生效:
sudo systemctl daemon-reload
3.开启Nginx服务自启动
sudo systemctl enable nginx
4.现在可以使用systemd命令来启动、停止和重启Nginx服务:
- 启动Nginx服务:
sudo systemctl start nginx
- 停止Nginx服务:
sudo systemctl stop nginx
- 重启Nginx服务:
sudo systemctl restart nginx
- 查看Nginx服务状态:
sudo systemctl status nginx