目录
简介
环境准备
步骤一:安装 Nginx
步骤二:配置 Nginx
步骤三:编写网站文件
步骤四:访问您的网站
高级设置
使用 HTTPS 加密
安装 Certbot
获取 SSL 证书
配置 Nginx 启用 HTTPS
配置虚拟主机
防止 DDoS 攻击
限制请求速率
限制连接速率
总结
Nginx 是一个高性能的 Web 服务器软件,它具有低内存占用、高并发处理能力、轻量级等特点,被广泛应用于互联网中。在本教程中,我们将使用 Nginx 搭建一个基于 HTML 的简单个人网站。
在开始本教程之前,请确保您已经安装了以下软件:
Nginx
文本编辑器(例如 Notepad++、Sublime Text、Atom 等)
您还需要了解一些基本的 Linux 操作和命令,以便您能够在命令行中完成一些必要的操作。
在 Ubuntu 系统中,您可以使用以下命令来安装 Nginx:
sudo apt update
sudo apt install nginx
安装完成后,您可以使用以下命令来检查 Nginx 是否成功安装:
nginx -v
如果安装成功,您应该会看到 Nginx 的版本信息。
Nginx 的配置文件位于 /etc/nginx/nginx.conf,您可以使用任何文本编辑器来编辑它。在本教程中,我们将使用 nano 编辑器:
sudo nano /etc/nginx/nginx.conf
在打开的文件中,您可以找到以下内容:
http {
...
}
在 http 块中,我们需要添加以下内容来配置我们的个人网站:
server {
listen 80;
server_name your_domain.com;
root /var/www/your_domain.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
其中,listen 指定了监听的端口号,这里我们使用默认的80端口;server_name 指定了网站的域名或 IP 地址,您需要将 your_domain.com 替换为您自己的域名或 IP 地址;root 指定了网站的根目录,这里我们将其设置为 /var/www/your_domain.com,您需要创建该目录并将您的网站文件放置在其中;index 指定了默认的索引文件,这里我们将其设置为 index.html;location 指定了请求的 URL 匹配规则,这里我们将所有的请求都指向静态文件,并返回404错误。
完成以上操作后,使用以下命令保存并退出配置文件:
Ctrl + X
Y
Enter
接下来,您需要测试您的 Nginx 配置文件是否正确,使用以下命令:
sudo nginx -t
如果您的配置文件没有错误,您应该会看到以下输出:
nginx: configuration file /etc/nginx/nginx.conf test is successful
最后,使用以下命令重启 Nginx 以使新的配置生效:
sudo systemctl restart nginx
在上一步中,我们指定了网站的根目录为 /var/www/your_domain.com,现在您需要在该目录下编写您的网站文件。例如,您可以创建一个名为 index.html 的文件,包含以下内容:
My Personal Website
Welcome to My Personal Website
Here you can learn more about me and my work.
保存并退出文件后,您可以使用以下命令来检查您的网站文件是否被正确地放置在网站根目录下:
ls /var/www/your_domain.com
如果您的网站文件正确放置,您应该会看到 index.html 文件的信息。
现在,您已经完成了所有的配置和编写工作,您可以使用您的浏览器访问您的个人网站了。在浏览器中输入您的域名或 IP 地址,您应该能够看到您编写的网站内容。
恭喜您,您已经成功地使用 Nginx 搭建了一个基于 HTML 的简单个人网站。在您的网站中,您可以使用 HTML、CSS 和 JavaScript 等技术来设计和实现更加丰富的内容和功能。希望本教程能对您有所帮助。
在上述步骤中,我们已经演示了如何使用 Nginx 搭建一个基本的静态网站。然而,对于更复杂的网站,您可能需要进行更多的配置和设置。在这里,我们将介绍一些高级设置,以帮助您更好地利用 Nginx。
对于涉及用户隐私的网站,使用 HTTPS 加密是非常重要的。在这里,我们将演示如何在 Nginx 中启用 HTTPS。
首先,您需要在您的服务器上安装 SSL 证书。您可以从许多商业 SSL 证书颁发机构购买证书,但是如果您的网站是个人网站,您可以使用免费的 Let's Encrypt SSL 证书。让我们看看如何使用 Certbot 工具获取和安装 Let's Encrypt SSL 证书。
您可以使用以下命令在 Ubuntu 上安装 Certbot:
sudo apt-get install certbot python3-certbot-nginx
一旦您安装了 Certbot,您可以使用以下命令获取 SSL 证书:
sudo certbot --nginx -d your_domain.com
在上述命令中,您需要将 your_domain.com 替换为您的域名。Certbot 将通过 Nginx 配置自动检测您的域名,并为您生成 SSL 证书。完成后,您可以在 /etc/letsencrypt/live/your_domain.com/ 目录下找到证书文件。
接下来,您需要在 Nginx 配置文件中启用 HTTPS。在 /etc/nginx/sites-available/your_domain.com 文件中,将以下两行添加到 server 部分中:
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/your_domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your_domain.com/privkey.pem;
在上述配置中,ssl_certificate 和 ssl_certificate_key 分别指定您之前获取的 SSL 证书和密钥文件的位置。
最后,您需要将 HTTP 请求重定向到 HTTPS。在 server 部分中添加以下配置:
server {
listen 80;
server_name your_domain.com;
return 301 https://$server_name$request_uri;
}
完成后,使用以下命令重新加载 Nginx 配置:
sudo systemctl reload nginx
现在,您的网站已经启用了 HTTPS 加密。您可以在浏览器中访问 https://your_domain.com,您应该能够看到已经启用了 HTTPS。
如果您在同一台服务器上运行多个网站,您需要配置虚拟主机来确保每个网站都可以正确地运行。在 Nginx 中,您可以使用 server 块来配置虚拟主机。
虚拟主机是指在同一台服务器上,通过不同的域名或 IP 地址,来提供不同的网站服务。在 Nginx 中,可以通过配置虚拟主机来实现多个网站的部署。
我们可以在 /etc/nginx/sites-available/ 目录下创建一个虚拟主机配置文件,该文件的命名格式为 {domain}.conf,其中 {domain} 是您要绑定的域名。例如,如果您要将您的网站绑定到 example.com 域名上,则可以创建一个名为 example.com.conf 的文件。
在该文件中,我们可以使用以下语法定义虚拟主机:
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /var/www/example.com/html;
index index.html;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
location / {
try_files $uri $uri/ =404;
}
}
在上述配置中,我们定义了一个名为 example.com 的虚拟主机。该虚拟主机监听端口 80,使用 example.com 和 www.example.com 两个域名来访问。虚拟主机的文件根目录为 /var/www/example.com/html,默认文档为 index.html,访问日志和错误日志分别存储在 /var/log/nginx/example.com.access.log 和 /var/log/nginx/example.com.error.log。
虚拟主机的 location 块定义了访问 / 路径时应该执行的操作。在上述配置中,我们将请求转发给了 $uri 或 $uri/,如果请求无法找到,则返回 404 错误。
完成虚拟主机配置后,我们需要使用 ln 命令创建一个符号链接到 /etc/nginx/sites-enabled/ 目录。该目录包含了 Nginx 服务器实际使用的虚拟主机配置文件。
sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
然后重新加载 Nginx 服务器配置文件,使其生效。
sudo systemctl reload nginx
现在,您可以通过访问 example.com 或 www.example.com 来访问您的网站了。
以上是关于如何配置虚拟主机的介绍。需要注意的是,我们还可以使用 HTTPS 来保护您的网站,使其更加安全。在下一节中,我们将介绍如何使用 SSL 证书来启用 HTTPS。
DDoS 攻击是一种常见的网络攻击,攻击者会使用多个计算机向目标服务器发送大量请求,以使服务器不可用。在 Nginx 中,您可以使用限制请求速率和连接速率来防止 DDoS 攻击。
限制请求速率可以防止攻击者发送大量请求来消耗服务器资源。您可以使用 Nginx 的 limit_req 模块来限制请求速率。
在 http 块中添加以下配置:
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
在上述配置中,我们定义了一个名为 one 的请求限制区域,使用客户端的 IP 地址进行区分。我们将请求速率限制为每秒一次。
接下来,我们需要在虚拟主机中启用限制请求速率。在虚拟主机的 server 块中添加以下配置:
limit_req zone=one burst=5;
在上述配置中,我们将请求限制区域 one 应用于该虚拟主机,并设置了 burst 参数为 5。burst 参数指定了允许的最大瞬时请求数,超出该数值的请求将被拒绝。
除了限制请求速率,您还可以使用 Nginx 的 limit_conn 模块来限制连接速率。该模块可以限制来自每个 IP 地址的并发连接数,从而防止攻击者使用过多的连接资源。
在 http 块中添加以下配置:
limit_conn_zone $binary_remote_addr zone=addr:10m;
在上述配置中,我们定义了一个名为 addr 的连接限制区域,使用客户端的 IP 地址进行区分。我们将连接限制区域的大小设置为 10MB。
接下来,我们需要在虚拟主机中启用限制连接速率。在虚拟主机的 server 块中添加以下配置:
limit_conn addr 10;
在上述配置中,我们将连接限制区域 addr 应用于该虚拟主机,并设置了最大连接数为 10。
本教程介绍了如何使用 Nginx 搭建个人网站。我们首先安装了 Nginx,然后配置了虚拟主机和 SSL 证书。最后,我们介绍了如何使用限制请求速率和连接速率来防止 DDoS 攻击。
通过本教程,您现在应该已经了解了如何使用 Nginx 搭建个人网站,并掌握了一些基本的 Nginx 配置技巧。如有任何问题,请随时在评论区留言。