安装Nginx
在开始安装Nginx之前,确保您已经完成了一些必要的准备工作。这包括更新系统软件包列表和安装所需的依赖项。
在终端中执行以下命令,以确保您的系统软件包列表是最新的:
sudo apt update
升级系统以应用最新的安全更新和功能改进:
sudo apt upgrade
在安装Nginx之前,您可能需要安装一些依赖项,以确保Nginx能够正常运行。一般来说,这些依赖项已经在Ubuntu系统中安装,但为了确保完整性,您可以运行以下命令:
sudo apt install -y curl gnupg2 ca-certificates lsb-release
通过这些步骤,您的系统将会是最新的,并且具备了安装Nginx所需的基本条件。
使用apt安装Nginx
现在,我们将通过apt包管理器在Ubuntu 22.04上安装Nginx。apt是Ubuntu系统中用于管理软件包的强大工具,使得安装和更新软件变得非常简便。
执行以下命令以安装Nginx:
sudo apt install -y nginx
这会下载并安装Nginx及其相关组件。 -y选项表示在安装过程中不询问任何确认,直接进行安装。
安装完成后,可以使用以下命令启动Nginx服务:
sudo systemctl start nginx
确保Nginx在系统启动时自动启动,可以执行以下命令:
sudo systemctl enable nginx管理Nginx服务
了解如何管理Nginx服务是非常重要的,包括启动、停止和重启服务,以及查看Nginx的状态和日志。
使用以下命令启动Nginx服务:
sudo systemctl start nginx
停止Nginx服务:
sudo systemctl stop nginx
重新启动Nginx服务:
sudo systemctl restart nginx
要查看Nginx服务的当前状态,可以使用以下命令:
sudo systemctl status nginx
Nginx的日志文件位于/var/log/nginx/目录下。可以使用以下命令查看错误日志:
sudo tail -f /var/log/nginx/error.logHTTPS配置
使用Let's Encrypt提供的Certbot工具可以轻松申请和管理SSL证书。首先,安装Certbot:
sudo apt install -y certbot
然后,运行Certbot来获取SSL证书:
sudo certbot certonly --nginx -d mywebsite.com -d www.mywebsite.com
Certbot将引导您完成SSL证书的获取过程,并将证书文件保存在/etc/letsencrypt/live/mywebsite.com/目录中。
打开Nginx虚拟主机配置文件:
sudo nano /etc/nginx/sites-available/mywebsite
在server块中添加以下配置,启用SSL:
server {
listen 80;
server_name mywebsite.com www.mywebsite.com;
# Redirect HTTP to HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name mywebsite.com www.mywebsite.com;
ssl_certificate /etc/letsencrypt/live/mywebsite.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mywebsite.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/mywebsite.com/chain.pem;
location / {
root /var/www/mywebsite;
index index.php index.html;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
保存配置文件后,创建配置文件的符号链接并重新加载Nginx:
sudo ln -s /etc/nginx/sites-available/mywebsite /etc/nginx/sites-enabled/
sudo systemctl reload nginx