初学者指南:如何搭建和配置 Nginx 服务器
Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。本文将详细介绍如何在 Linux 上安装、配置和管理 Nginx 服务器。
一、安装 Nginx
Nginx 可以安装在多种操作系统上,如 Ubuntu、Debian、CentOS 等。以下是分别在 Ubuntu 和 CentOS 上的安装步骤:
在 Ubuntu 上安装 Nginx:
-
更新包索引:
sudo apt update
-
安装 Nginx:
sudo apt install nginx
-
启动 Nginx 服务:
sudo systemctl start nginx
-
设置 Nginx 开机自启动:
sudo systemctl enable nginx
在 CentOS 上安装 Nginx:
-
安装 EPEL 仓库:
sudo yum install epel-release
-
安装 Nginx:
sudo yum install nginx
-
启动 Nginx 服务:
sudo systemctl start nginx
-
设置 Nginx 开机自启动:
sudo systemctl enable nginx
二、基本配置
安装完成后,Nginx 的默认配置文件位于 /etc/nginx/nginx.conf
。我们可以通过编辑该文件或添加新的配置文件来配置 Nginx。
检查 Nginx 状态:
sudo systemctl status nginx
重新加载 Nginx 配置:
每次修改 Nginx 配置文件后,需要重新加载配置以使更改生效:
sudo systemctl reload nginx
三、配置虚拟主机
虚拟主机允许你在一台服务器上托管多个网站。我们可以通过编辑 /etc/nginx/sites-available/
目录中的文件来配置虚拟主机。
-
创建虚拟主机配置文件:
在
/etc/nginx/sites-available/
目录中创建一个新的配置文件,例如example.com
:sudo nano /etc/nginx/sites-available/example.com
-
添加以下内容到配置文件中:
server { listen 80; server_name example.com www.example.com; #server_name该为自己的域名 root /var/www/example.com/html; index index.html index.htm; location / { try_files $uri $uri/ =404; } }
-
创建网站根目录并添加测试文件:
sudo mkdir -p /var/www/example.com/html sudo chown -R $USER:$USER /var/www/example.com/html sudo chmod -R 755 /var/www/example.com
创建一个简单的
index.html
文件:echo "<html><body><h1>Welcome to example.com!</h1></body></html>" > /var/www/example.com/html/index.html
-
启用虚拟主机配置:
创建一个指向
sites-available
目录中配置文件的符号链接到sites-enabled
目录:sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
-
测试 Nginx 配置并重新加载:
sudo nginx -t sudo systemctl reload nginx
四、设置防火墙
确保防火墙允许 HTTP 和 HTTPS 流量。
在 Ubuntu 上使用 UFW:
sudo ufw allow 'Nginx Full'
sudo ufw enable
sudo ufw status
在 CentOS 上使用 Firewalld:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
五、使用 HTTPS
为了增强网站的安全性,可以使用 Let’s Encrypt 提供的免费 SSL 证书来启用 HTTPS。
-
安装 Certbot 和 Nginx 插件:
在 Ubuntu 上:
sudo apt install certbot python3-certbot-nginx
在 CentOS 上:
sudo yum install certbot python2-certbot-nginx
-
获取 SSL 证书:
使用 Certbot 获取并自动配置 SSL 证书:
sudo certbot --nginx -d example.com -d www.example.com
-
验证 SSL 证书的自动续期:
Certbot 自动创建了一个 cron 任务以每 12 小时检查和自动续期证书。你可以使用以下命令模拟续期过程以确保其正常工作:
sudo certbot renew --dry-run
六、总结
通过以上步骤,你已经成功地在 Linux 上安装并配置了 Nginx 服务器。你学习了如何设置虚拟主机、配置防火墙以及使用 Let’s Encrypt 启用 HTTPS。希望这篇初学者指南对你有所帮助。