Ubuntu 上安装 Nginx 并进行自定义配置的详细教程:
1. 安装 Nginx
更新软件包列表
确保软件包列表是最新的:
sudo apt update
安装 Nginx
使用以下命令安装 Nginx:
sudo apt install nginx -y
启动 Nginx 服务
安装完成后,启动并设置 Nginx 为开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx
检查 Nginx 状态
确保 Nginx 正常运行:
sudo systemctl status nginx
访问服务器的 IP 地址,确认是否显示 Nginx 欢迎页面:
http://<your_server_ip>
2. Nginx 基本文件结构
Nginx 的主要配置文件和目录:
- 主配置文件:
/etc/nginx/nginx.conf
- 站点配置文件:
- 默认站点配置:
/etc/nginx/sites-available/default
- 启用的站点配置:
/etc/nginx/sites-enabled/
- 默认站点配置:
- 日志文件:
- 访问日志:
/var/log/nginx/access.log
- 错误日志:
/var/log/nginx/error.log
- 访问日志:
- 网页根目录:
/var/www/html
3. 自定义 Nginx 配置
3.1 创建自定义站点配置
新建网站目录: 假设我们要配置一个域名
example.com
,可以这样操作: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
创建测试文件: 在目录中创建一个测试文件:
echo "<h1>Welcome to example.com</h1>" > /var/www/example.com/html/index.html
新建站点配置文件: 创建一个新的配置文件:
sudo nano /etc/nginx/sites-available/example.com
在文件中添加以下内容:
server { 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; } }
启用站点配置: 创建符号链接到
sites-enabled
:sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
测试 Nginx 配置: 确保配置文件语法正确:
sudo nginx -t
重新加载 Nginx 服务: 应用新配置:
sudo systemctl reload nginx
3.2 配置 HTTPS(使用 Let’s Encrypt)
为站点配置 HTTPS:
安装 Certbot 和 Nginx 插件:
sudo apt install certbot python3-certbot-nginx -y
使用 Certbot 自动生成 SSL 证书:
sudo certbot --nginx -d example.com -d www.example.com
Certbot 会自动修改配置文件,并设置自动续期。
验证 HTTPS:
https://example.com
3.3 配置反向代理
假设你有一个运行在端口 3000
的应用程序,可以将请求转发到该端口。
修改站点配置文件:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
重新加载 Nginx:
sudo systemctl reload nginx
4. 常见操作和管理命令
重启 Nginx
sudo systemctl restart nginx
重新加载配置
sudo systemctl reload nginx
停止 Nginx
sudo systemctl stop nginx
检查 Nginx 配置语法
sudo nginx -t
查看 Nginx 日志
访问日志:
tail -f /var/log/nginx/access.log
错误日志:
tail -f /var/log/nginx/error.log
5. 高级配置(可选)
限流与防止 DDoS
在 server
块中添加限流配置:
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
server {
location / {
limit_req zone=one burst=5;
}
}
Gzip 压缩
启用 Gzip 压缩以优化传输效率:
gzip on;
gzip_types text/plain application/json application/javascript text/css;
以上是安装和自定义配置 Nginx 的详细指南。如果有任何问题或特殊需求(如负载均衡、缓存配置等),可以告诉我! 😊