乐于分享
好东西不私藏

Nginx 安装配置极简教程,3分钟搭好自己的网站/博客,新手也不会错

Nginx 安装配置极简教程,3分钟搭好自己的网站/博客,新手也不会错
有没有过这种经历?想搭个自己的个人博客/网站,搜Nginx安装教程,全是让你下载源码编译安装,又是装依赖又是configure、make、make install,搞半天各种报错,好不容易装完,配置文件又看不懂,改完一重启服务直接挂,网站死活打不开?

好不容易把网站跑起来,又搞不定HTTPS证书,手动申请的证书3个月就过期,忘记续期用户打开网站就提示「不安全」,访客直接走了。

这篇教你Debian13专属的Nginx极简配置方法,不用编译,复制粘贴命令3分钟就能搭好一个带HTTPS的网站,新手也不会出错,所有配置都是生产环境可用的标准配置,小网站用3年不用改。

一、为什么推荐新手用Nginx而不是Apache?

很多新手看老教程都推荐Apache,现在完全没必要:

  1. 更轻量
    :Nginx占用内存只有Apache的1/10,1核2G的服务器跑Nginx能扛上万并发,跑Apache几百并发就卡了
  2. 配置更简单
    :Nginx配置文件通俗易懂,新手也能看懂,Apache的.htaccess配置能把人绕晕
  3. 功能更全
    :静态文件托管、反向代理、负载均衡、防CC攻击,Nginx原生支持,不用装额外模块
  4. 生态更好
    :现在90%的网站都用Nginx,遇到问题随便搜都能找到解决方案

新手不用纠结,直接用Nginx就对了。

二、Debian13安装配置Nginx一步一步来(复制粘贴就能用)

所有命令都是Debian13专属适配,不用改参数,直接复制执行就行,全程3分钟搞定。

2.1 第一步:一键安装Nginx

Debian13官方源里的Nginx就是最新稳定版,不用加第三方源,不用编译,一行命令搞定:

# 先更新apt源
apt update -y
# 一键安装Nginx
aptinstall-y nginx

安装完自动启动,直接在浏览器输你的服务器公网IP,能看到Nginx的默认欢迎页就是安装成功了。

2.2 第二步:Nginx基础常用命令

新手记住这几个命令就够了,其他的不用记:

# 查看Nginx运行状态
systemctl status nginx
# 启动Nginx
systemctl start nginx
# 停止Nginx
systemctl stop nginx
# 重启Nginx(改完配置要重启生效)
systemctl restart nginx
# 重载Nginx配置(平滑重启,不会中断正在访问的用户)
systemctl reload nginx
# 设置开机自启(一定要开,服务器重启后网站自动恢复)
systemctl enable nginx
# 测试Nginx配置文件语法是否正确(改完配置一定要先执行这个,没问题再重启,不然服务会挂)
nginx -t

⚠️ 新手必看:改完配置一定要先执行nginx -t,输出test is successful再重启/重载,不然配置语法错了直接重启会导致Nginx服务挂掉,网站直接打不开,很多新手都踩过这个坑。

2.3 第三步:配置第一个虚拟主机,搭自己的网站

虚拟主机就是一台服务器上可以跑多个网站,用不同域名区分,比如你的服务器上可以同时跑a.comb.com两个网站,互相不影响。

2.3.1 先准备好域名和代码

  1. 把你的域名解析到服务器公网IP,比如blog.yourdomain.com解析到你的服务器IP
  2. 把你的网站代码上传到服务器,比如放在/var/www/blog目录下
  3. 设置网站目录权限,不然Nginx读不到文件会报403错误:
# 新建网站根目录
mkdir-p /var/www/blog
# 设置目录所有者为Nginx运行用户www-data
chown-R www-data:www-data /var/www/blog
# 设置目录权限
chmod-R755 /var/www/blog

2.3.2 写虚拟主机配置文件

Debian13的Nginx虚拟主机配置都放在/etc/nginx/sites-available/目录下,启用的配置软链接到/etc/nginx/sites-enabled/目录。
新建一个配置文件:

nano /etc/nginx/sites-available/blog

把下面的配置复制进去,把blog.yourdomain.com改成你自己的域名,/var/www/blog改成你自己的网站根目录:

server {
    # 监听80端口(HTTP默认端口)
    listen 80;
    # 你的域名,多个域名用空格分开
    server_name blog.yourdomain.com;
    # 网站根目录
    root /var/www/blog;
    # 默认首页文件
    index index.html index.htm index.php;
    # 日志路径
    access_log /var/log/nginx/blog.access.log;
    error_log /var/log/nginx/blog.error.log;
    # 静态文件缓存配置,提升访问速度
    location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff2?)$ {
        expires 30d;
        add_header Cache-Control "public, no-transform";
    }
    # 禁用敏感文件访问
    location ~ /\.ht {
        deny all;
    }
}

Ctrl+O保存,Ctrl+X退出,然后启用这个配置:

# 软链接到sites-enabled目录
ln-s /etc/nginx/sites-available/blog /etc/nginx/sites-enabled/
# 测试配置是否正确
nginx -t
# 重载Nginx配置生效
systemctl reload nginx

现在直接在浏览器输你的域名,就能看到你的网站了,HTTP的网站已经跑通了。

2.4 第四步:一键配置免费HTTPS证书,自动续期

现在所有浏览器访问HTTP网站都会提示「不安全」,影响用户体验,还影响SEO排名,我们用免费的Let’s Encrypt证书,一键申请,自动续期,不用花钱。

2.4.1 安装certbot工具

certbot是官方推荐的证书申请工具,Debian13源里直接有,不用pip安装:

aptinstall-y certbot python3-certbot-nginx

2.4.2 一键申请证书

执行下面的命令,按照提示操作就行:

certbot --nginx

运行之后会提示你输入邮箱,同意协议,选择要配置HTTPS的域名,然后问你要不要把HTTP自动跳转到HTTPS,选2(强制跳转)就行,全程自动化,不用你改任何配置。
申请完成之后,证书会自动配置到Nginx里,而且自动设置了定时任务,证书到期前会自动续期,不用你手动管,永久免费。
现在打开你的网站,地址栏就会出现安全锁了,HTTPS配置完成。

2.5 第五步:常用实用配置(直接复制就能用)

下面这些配置都是生产环境常用的,直接加到你的虚拟主机配置里就行,能提升网站性能和安全性。

2.5.1 开启gzip压缩,提升访问速度30%

/etc/nginx/nginx.conf的http块里加下面的配置:

gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml+rss application/javascript application/json;

2.5.2 配置404页面

在虚拟主机的server块里加:

error_page 404 /404.html;
location = /404.html {
    root /var/www/blog;
    internal;
}

2.5.3 限制单个IP的并发连接数,防CC攻击

在http块里加:

limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn perip 10;

三、新手必看避坑指南,90%的人都踩过

3.1 网站打开报403 Forbidden错误

90%的原因是网站根目录权限不对,Nginx的运行用户是www-data,要确保网站目录的所有者是www-data,执行chown -R www-data:www-data /var/www/blog就能解决。

3.2 网站打开报502 Bad Gateway错误

一般是你后面对接的PHP-FPM/后端服务没启动,或者配置的fastcgi_pass地址不对,先看Nginx的错误日志/var/log/nginx/error.log就能定位问题。

3.3 certbot申请证书失败

常见两个原因:

  1. 域名没解析到当前服务器IP,先ping你的域名看看是不是指向你的服务器IP
  2. 防火墙没开80端口,certbot申请证书需要用80端口做验证,执行ufw allow 80/tcp开端口再申请

3.4 证书到期自动续期失败

Debian13安装完certbot会自动加定时任务,一般不会失败,如果发现没续期,手动执行certbot renew --dry-run测试,有错误按照提示修复就行。

最后总结

Debian13搭Nginx网站四步走,3分钟搞定:

  1. apt一键安装Nginx
  2. 配置虚拟主机,上传网站代码
  3. certbot一键申请HTTPS证书,自动续期
  4. 加常用优化配置,提升性能和安全性

整个过程不用编译,不用复杂配置,复制粘贴命令就行,新手也能一次成功。

下期预告

下一篇讲《MySQL 8 生产环境安装配置全指南,默认配置就够小公司用3年》,教你在Debian13上一键安装MySQL8、安全初始化、基础优化、常用操作,新手也能配出生产环境可用的数据库。

往期推荐

👉 刚买的Debian13云服务器第一步怎么配置?3分钟搞定安全初始化,再也不怕被黑
👉 一文搞定Debian防火墙配置!ufw入门到精通,极简教程,新手也能看懂

感谢你读到最后,如果觉得有帮助,点个“赞”+“推荐”,“分享”给更多人