跳到主要内容
Linux
1. trojan-qt5代理上网工具客户端介绍
2. Trojan代理上网节点服务器介绍专门为Trojan-qt5打造
3. Trojan节点订阅以及服务器端一键搭建教程
4. Trojan qt5图形化代理工具使用配置及设置教程
5. V免签PHP二开版源码兼容所有易支付接口系统
6. V免签二开支付PHP源码|带监控APP
7. 支持多协议多用户的xray面板支持Trojan及vmess协议
8. 如何在Debian 12上安装Nginx Web服务器
9. 如何在Debian 12系统上安装MySQL数据库

介绍

Nginx 是一款开源的高性能 Web 服务器,还可用作后端应用程序的反向代理和负载均衡器。Nginx 与 Python、Golang 和 PHP 等现代服务器端脚本语言集成,以运行动态数据驱动的 Web 应用程序。

本文介绍如何在 Debian 12 上安装 Nginx、设置虚拟主机以及使用 Let’s Encrypt 保护 Web 服务器。

先决条件

开始之前:

安装 Nginx

Nginx 在 Debian 12 的默认软件包存储库中可用。按照以下步骤更新服务器软件包索引并使用 APT 包管理器安装 Nginx。

  1. 更新服务器的包信息索引。
    $ sudo  apt 更新
    
  2. 安装 Nginx。
    $ sudo  apt  install  nginx  -y
    
  3. 允许 HTTP 端口80通过防火墙。
    $ sudo  ufw 允许80 /tcp
    
  4. 重新加载 UFW 以应用防火墙更改。
    $ sudo  ufw 重新加载
    
  5. 使用 Chrome 等网络浏览器访问您服务器的公共 IP 地址,以测试对默认 Nginx 欢迎页面的访问。
    http://SERVER-IP
    如何在debian 12上安装nginx Web服务器
    如何在debian 12上安装nginx Web服务器

管理Nginx系统服务

Nginx 使用nginxsystemd 服务配置文件来管理 Web 服务器应用程序进程。请按照以下步骤使用 来管理服务systemctl

  1. 启用 Nginx 服务在启动时自动启动。
    $ sudo  systemctl启用nginx
    

    输出:

    Synchronizing state of nginx.service with SysV service script with /lib/systemd/systemd-sysv-install.
    Executing: /lib/systemd/systemd-sysv-install enable nginx
    Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /lib/systemd/system/nginx.service.
  2. 启动 Nginx 服务。
    $ sudo  systemctl 启动 nginx
    
  3. 查看 Nginx 服务状态并验证其正在运行。
    $ sudo  systemctl 状态 nginx
    

    输出:

    ● nginx.service - A high performance webserver and a reverse proxy server
    Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled)
    Active: active (running) since Sat 2024-08-24 07:00:58 UTC; 1min 35s ago
    Docs: man:nginx(8)
    Process: 2560 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 2561 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Main PID: 2584 (nginx)
    Tasks: 2 (limit: 1091)
    Memory: 1.7M
    CPU: 12ms
    CGroup: /system.slice/nginx.service
    ├─2584 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
    └─2585 "nginx: worker process"
  4. 停止 Nginx 服务。
    $ sudo  systemctl 停止 nginx
    
  5. 重新启动 Nginx 服务。
    $ sudo  systemctl 重启 nginx
    

创建新的Nginx虚拟主机

Nginx 虚拟主机配置使 Web 服务器能够在单个服务器上托管多个网站。虚拟主机配置由多个指令组成,这些指令定义特定域名的根目录、服务器名称、错误文件和索引页。请按照以下步骤创建新的 Nginx 虚拟主机。

  1. 创建一个新的 Nginx 虚拟主机配置文件。例如,app.example.com.conf
    $ sudo  touch  /etc/nginx/conf.d/app.example.com.conf
    
  2. 使用文本编辑器(如)打开文件nano
    $ sudo  nano  /etc/nginx/conf.d/app.example.com.conf
    
  3. 将以下内容添加到文件中。替换app.example.com为您的实际域名。
    服务器{监听80 ;监听[::]:80 ;服务器名称app.example.com ; 
    根/var/www/html/app.example.com ;索引index.html ; 
    位置/ { try_files $uri $uri/ = 404 ; } }  
    

    保存并关闭文件。

    上述 Nginx 配置创建了一个新的虚拟主机,用于监听app.example.com域的传入连接并从目录中提供 Web 应用程序文件/var/www/html/app.example.com

  4. 创建虚拟主机的Web根目录。
    $ sudo  mkdir  -p  /var/www/html/app.example.com
    
  5. index.html在目录中创建一个新的Web 应用程序文件。
    $ sudo  nano  /var/www/html/app.example.com/index.html
    
  6. 在文件中添加以下内容。
    < html > 
    < head ></ head > 
    < body > 
    < h1 >来自 Vultr 的问候</ h1 > 
    </ body > 
    </ html >
    

    保存并关闭文件。

    Greetings from Vultr当您在 Web 浏览器中访问上述 HTML Web 应用程序时,它会显示一条消息。

  7. 授予www-dataWeb 服务器用户和组对该/var/www/html/app.example.com目录的所有权权限。
    $ sudo  chown  -R  www-data:www-data  /var/www/html/app.example.com
    
  8. 测试 Nginx 配置是否有错误。
    $ sudo  nginx  -t
    

    输出:

    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
  9. 重新启动 Nginx 服务以应用更改。
    $ sudo  systemctl 重启 nginx
    
  10. 在 Web 浏览器上访问您的域并验证您的 Web 应用程序是否显示。
    http://app.example.com

保护 Nginx Web 服务器

Nginx 在端口 上监听传入的 HTTP 连接80。要通过 HTTP 端口 保护 Nginx 虚拟主机的安全443,您必须安装受信任的 SSL 证书。请按照以下步骤安装 Let’s Encrypt SSL 证书。

  1. 安装 Certbot Let’s Encrypt 客户端工具和 Nginx 插件。
    $ sudo  apt  install  python3-certbot-nginx  certbot  -y
    
  2. 为虚拟主机生成新的 SSL 证书。将其替换app.example.com为您的实际虚拟主机域名和hello@example.com您的有效电子邮件地址。
    $ sudo  certbot  --nginx  -d  app.example.com  -m  hello@example.com  --agree-tos
    
  3. 确保 Certbot 可以更新 SSL 证书。
    $ sudo  certbot  renew  --dry-run
    
  4. 重新启动 Nginx 以应用配置更改。
    $ sudo  systemctl 重启 nginx
    

设置防火墙规则

简单防火墙 (UFW) 默认在 Vultr Debian 实例上可用且处于活动状态。请按照以下步骤允许 HTTP 和 HTTPS 端口通过防火墙。

  1. 查看 UFW 状态并验证其是否处于活动状态。
    $ sudo  ufw 状态
    
  2. 允许 HTTP 端口80通过防火墙。
    $ sudo  ufw 允许80 /tcp
    
  3. 允许 HTTPS 端口443通过防火墙。
    $ sudo  ufw 允许443 /tcp
    
  4. 查看 UFW 状态并验证新的连接规则是否可用。
    $ sudo  ufw 状态 编号
    

    输出:

    Status: active
    To                         Action      From
    --                         ------      ----
    [ 1] 22/tcp                     ALLOW IN    Anywhere
    [ 2] 80/tcp                     ALLOW IN    Anywhere
    [ 3] 443/tcp                    ALLOW IN    Anywhere
    [ 4] 22/tcp (v6)                ALLOW IN    Anywhere (v6)
    [ 5] 80/tcp (v6)                ALLOW IN    Anywhere (v6)
    [ 6] 443/tcp (v6)               ALLOW IN    Anywhere (v6)
  5. 使用 HTTPS 访问您的虚拟主机域并验证您的 Web 应用程序是否显示。
    https://app.example.com

结论

您已在 Debian 12 上安装了 Nginx,设置了新的虚拟主机,并安装了 Let’s Encrypt 证书。Nginx 可用作 Web 服务器、负载均衡器或反向代理。有关更多信息,请访问Nginx 文档

回到顶部