【Linux】-Pve下的Nginx安装

linux pve 系统安装nginx

pve系统和普通系统的区别

  1. ‌核心定位与功能差异‌
    ‌PVE‌:是专为虚拟化场景设计的Linux发行版,内置KVM虚拟机和LXC容器管理功能,提供统一的Web界面及集群管理能力,支持高可用性、虚拟机迁移等企业级特性‌23。
    ‌普通Linux‌:作为通用操作系统,需通过手动安装KVM、Docker等工具实现虚拟化/容器化功能,缺乏原生的集中式虚拟化平台管理界面‌67。
  2. ‌系统架构与组件‌
    ‌PVE‌:基于Debian构建,整合了KVM(全虚拟化)和LXC(轻量级容器)两种虚拟化技术,并预装存储管理、网络配置等虚拟化专用模块‌24。
    ‌普通Linux‌:如Ubuntu、CentOS等,默认不集成虚拟化平台,用户需自行配置虚拟化环境,核心组件仅包含操作系统基础服务和工具链‌67。
  3. ‌管理方式与用户界面‌
    ‌PVE‌:提供Web管理界面,支持图形化操作虚拟机/容器、存储卷、网络配置等,降低运维复杂度,适合多节点集群管理‌23。
    ‌普通Linux‌:主要依赖命令行工具(如virsh、qemu)或第三方管理工具(如VirtualBox),需较高技术门槛‌67。
  4. ‌适用场景‌
    ‌PVE‌:面向虚拟化环境集中管理场景,适用于企业私有云、家庭实验室等需要同时运行多个虚拟机/容器的场景‌34。
    ‌普通Linux‌:广泛用于服务器、开发环境、嵌入式设备等通用计算场景,侧重灵活性和基础系统功能‌67。
  5. ‌存储与网络特性‌
    ‌PVE‌:支持本地存储、NFS、Ceph等多种存储类型,提供磁盘快照、备份、超分配等高级功能;网络配置支持SDN(软件定义网络)和VLAN划分‌25。
    ‌普通Linux‌:存储和网络需通过LVM、iptables等基础工具手动配置,缺乏针对虚拟化的优化集成‌67。

简单来说还是有很多优点的,自带虚拟化、自带web监控界面,恩,不错不错。
装好系统之后可以访问ip:8006默认端口,即可 进入控制台页面,如下:
【Linux】-Pve下的Nginx安装_第1张图片

替换apt镜像

这个都懂,国外资源慢如蜗牛,必须替换下镜像源:
‌1. 更换主系统源(Debian基础源)‌
‌备份原文件‌

cp /etc/apt/sources.list /etc/apt/sources.list.bak

‌修改源地址‌
编辑 /etc/apt/sources.list,替换为清华源或中科大源(以 ‌PVE 8.0(基于Debian Bookworm)‌为例):

# 清华大学镜像源 ‌:ml-citation{ref="4,5" data="citationList"}
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security/ bookworm-security main contrib non-free

# 中科大镜像源 ‌:ml-citation{ref="1,2" data="citationList"}
# deb https://mirrors.ustc.edu.cn/debian/ bookworm main contrib non-free
# deb https://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib non-free
# deb https://mirrors.ustc.edu.cn/debian-security/ bookworm-security main contrib non-free

‌安装依赖‌
确保启用 HTTPS 协议支持:

apt install -y apt-transport-https ca-certificates

‌2. 更换PVE专用源‌
‌禁用企业订阅源‌
编辑 /etc/apt/sources.list.d/pve-enterprise.list,注释所有行(添加 #)‌:

# deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise

‌添加非订阅源‌
创建或编辑 /etc/apt/sources.list.d/pve-no-subscription.list,使用国内镜像(中科大为例)‌:

deb https://mirrors.ustc.edu.cn/proxmox/debian/pve bookworm pve-no-subscription

Pve安装Nginx

在 Proxmox VE (PVE) 上安装 Nginx,实际上和在普通 Debian 系统上安装是类似的。下面是安装步骤:

1. 更新系统

首先,更新你的系统包管理器缓存,并确保系统是最新的:

apt update && apt upgrade -y

2. 安装 Nginx

使用 apt 包管理器安装 Nginx:

apt install nginx -y

3. 启动并启用 Nginx 服务

安装完成后,你可以启动 Nginx,并设置它开机自启:

systemctl start nginx
systemctl enable nginx

4. 检查 Nginx 是否正常运行

可以通过访问你的服务器 IP 或主机名来验证 Nginx 是否正常工作。默认情况下,Nginx 会监听 80 端口。

  • 打开浏览器,访问你的服务器 IP(例如:http://<你的服务器IP>),应该看到 Nginx 的欢迎页面。

或者,你也可以通过命令行检查 Nginx 服务状态:

systemctl status nginx

5. 配置防火墙(如果适用)

如果你在使用 ufw 等防火墙工具,确保允许 HTTP (80) 和 HTTPS (443) 流量:

ufw allow 'Nginx Full'

6. 配置 Nginx

默认情况下,Nginx 配置文件位于 /etc/nginx/nginx.conf,而站点配置文件位于 /etc/nginx/sites-available/ 目录中。你可以根据需要创建虚拟主机并进行相应的配置。

例如,编辑默认的站点配置:

nano /etc/nginx/sites-available/default

完成配置后,重启 Nginx 使配置生效:

systemctl restart nginx

这样就完成了在 Proxmox VE 上安装和配置 Nginx。

站点配置

在 Nginx 中,站点配置的作用是定义如何处理和路由特定的 HTTP 请求。每个站点配置文件通常用于配置虚拟主机(server block),指定不同网站或应用的规则和设置。

站点配置主要用来定义以下内容:

1. 服务器块 (Server Block)

一个站点配置文件通常包含一个或多个 服务器块(即 server 块),它定义了 Nginx 如何响应特定的域名或 IP 地址的请求。每个服务器块可以针对不同的域名、端口或路径进行配置。

例如:

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example;
    
    location / {
        index index.html index.htm;
    }
}

这里的配置指定了:

  • 监听 80 端口。
  • 当访问 example.comwww.example.com 时,将请求发送到 /var/www/example 目录下。
  • 配置了默认的首页文件 index.htmlindex.htm

2. 域名和 IP 路由

通过站点配置,你可以将不同的域名指向不同的目录和应用。例如,你可以为每个网站创建不同的配置块:

  • example.com 的配置。
  • test.com 的配置。

这使得你可以在同一台服务器上托管多个网站,称为 虚拟主机

3. URL 重写和重定向

你可以在站点配置中设置 URL 重写规则(例如,将 http 强制重定向到 https),或者改变请求的 URL 路径:

server {
    listen 80;
    server_name example.com;
    
    # HTTP 到 HTTPS 重定向
    return 301 https://$host$request_uri;
}

4. 反向代理配置

Nginx 常常用作反向代理服务器,即将请求转发到后端的应用服务器(如 Node.js、PHP-FPM 或其他)。通过站点配置,你可以定义反向代理规则:

server {
    listen 80;
    server_name app.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;
    }
}

在此例中,当访问 app.example.com 时,Nginx 会将请求转发到本地的 3000 端口。

5. SSL/TLS 配置

如果你希望使用 HTTPS,你可以在站点配置中启用 SSL 证书:

server {
    listen 443 ssl;
    server_name example.com;
    
    ssl_certificate /etc/nginx/ssl/example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/example.com.key;
    
    location / {
        root /var/www/example;
    }
}

这个配置将使得 example.com 使用 HTTPS(即加密的连接)。

6. 自定义错误页面

你可以为特定的 HTTP 错误码(如 404 或 500)配置自定义的错误页面:

server {
    listen 80;
    server_name example.com;
    
    location / {
        root /var/www/example;
    }

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

这将当访问一个不存在的页面时,显示 /var/www/errors/404.html 页面。

7. 访问控制

通过站点配置,你还可以控制哪些用户可以访问哪些资源。例如,基于 IP 地址的访问控制:

server {
    listen 80;
    server_name example.com;

    location /admin {
        allow 192.168.1.0/24;  # 允许来自特定子网的访问
        deny all;  # 拒绝所有其他访问
    }
}

8. 缓存配置

你可以在站点配置中设置缓存规则来优化性能。例如,启用静态文件的缓存:

server {
    listen 80;
    server_name example.com;

    location / {
        root /var/www/example;
        expires 30d;  # 缓存静态文件 30 天
    }
}

总结:

站点配置在 Nginx 中的作用就是通过 server 块定义不同网站或应用的行为和规则,主要包括:

  • 配置监听端口和域名。
  • 定义站点的根目录和静态文件的默认页面。
  • 配置反向代理、SSL、错误页面、重定向等。
  • 设置访问控制、缓存等。

通过合理配置不同的站点配置文件,你可以在同一台服务器上托管多个网站,且每个网站都可以有不同的配置,灵活应对不同的需求。

你可能感兴趣的:(Linux,linux,nginx,运维)