服务器上怎么安装虚拟主机,Nginx私有证书安装怎么做

在Nginx服务器上安装虚拟主机和私有证书,核心流程是:先通过server块配置虚拟主机,再生成或获取SSL证书,最后在server块中指定证书路径并强制HTTPS跳转。这套操作在个人服务器和中小企业业务中非常常见,配置难度不算高,但细节容易出错,下面按照实际部署顺序,把每一步拆开讲清楚。

虚拟主机在Nginx里的本质是什么

Nginx的虚拟主机,本质上就是配置文件里的server块,每个server块监听一个端口、绑定一个域名,并指定对应的站点根目录,服务器上创建多个虚拟主机,就是写多个server块,让一台Nginx同时服务多个网站。

Nginx实战 - 配置HTTPS | 数字证书和私钥 | Docker Compose容器
加载中
Nginx实战 - 配置HTTPS | 数字证书和私钥 | Docker Compose容器

配置虚拟主机的常规路径是:

  • 主配置文件:/etc/nginx/nginx.conf
  • 子配置文件目录:/etc/nginx/conf.d/ 或 /etc/nginx/sites-available/

大多数Linux发行版都支持在conf.d目录下按域名拆分配置文件,比如/etc/nginx/conf.d/example.com.conf,这样做的好处是,后续修改或删除某个站点,不影响其他配置。

Nginx服务器上怎么安装虚拟主机:分步实操

第一步:确认Nginx已安装并运行

先检查环境:

nginx -v
systemctl status nginx

如果尚未安装,在Ubuntu/Debian上执行:

sudo apt update
sudo apt install nginx -y

CentOS/RHEL系列则用:

sudo yum install nginx -y

安装完成后启动服务并设置开机自启:

sudo systemctl start nginx
sudo systemctl enable nginx

第二步:创建站点目录和测试文件

每个虚拟主机要有独立的根目录,以/var/www/example.com为例:

sudo mkdir -p /var/www/example.com
sudo chown -R $USER:$USER /var/www/example.com
echo "<h1>Hello from example.com</h1>" > /var/www/example.com/index.html

目录权限建议设置为755,文件权限为644,避免Nginx因权限不足返回403。

第三步:编写虚拟主机配置文件

在/etc/nginx/conf.d/下新建example.com.conf:

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com;
    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;
    }
}

这段配置的含义是:监听80端口,当请求的域名是example.com或www.example.com时,将请求映射到/var/www/example.com目录。

第四步:测试配置并重载Nginx

写完后先检查语法:

sudo nginx -t

如果输出syntax is ok和test is successful,重载配置:

sudo systemctl reload nginx

此时在浏览器访问http://example.com,如果能看到测试页面,说明虚拟主机已经生效。

第五步:添加更多虚拟主机

复制同样的步骤,创建第二个配置文件another-site.conf,修改server_name和root即可,一台Nginx可以承载几十个虚拟主机,只要服务器资源够用。

在Nginx服务器上安装私有证书的完整流程

私有证书通常指自签名SSL证书或内网使用的私有CA签发的证书,简米云服务器和酷番云服务器上的操作基本一致,区别只在安全组或防火墙是否放行443端口。

第一步:生成自签名证书

使用OpenSSL生成私钥和证书:

sudo mkdir -p /etc/nginx/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
    -keyout /etc/nginx/ssl/example.com.key \
    -out /etc/nginx/ssl/example.com.crt

执行过程中会提示输入国家、省份、组织等信息,其中Common Name要填域名或IP地址。-nodes参数表示不加密私钥,这样Nginx启动时不需要手动输入密码,如果需要更长的有效期,可以把-days 365改成-days 3650,业内专家指出,私有证书的有效期不宜超过两年,内网环境可以适当放宽,但公网业务强烈建议使用受信任的CA证书。

第二步:修改虚拟主机配置以支持HTTPS

在原配置文件example.com.conf中新增一个443端口的server块:

server {
    listen 443 ssl;
    server_name example.com www.example.com;
    ssl_certificate /etc/nginx/ssl/example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/example.com.key;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    root /var/www/example.com;
    index index.html;
    location / {
        try_files $uri $uri/ =404;
    }
}

同时添加一个80端口的跳转规则,把HTTP请求强制转到HTTPS:

server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

行业共识认为,强制HTTPS跳转是部署SSL证书后的必要步骤,否则用户仍可能通过明文HTTP访问,证书形同虚设。

第三步:放行防火墙和安全组

本机防火墙需要放行443端口:

sudo ufw allow 443/tcp

如果是在简米云服务器或酷番云服务器上,还要在云控制台的安全组规则中添加入方向TCP 443端口,这一步经常被忽略,导致证书配置正确但外部无法访问。

第四步:重载Nginx并验证

sudo nginx -t
sudo systemctl reload nginx

验证方式:

curl -I https://example.com

或者用浏览器访问,地址栏会出现锁形图标(自签名证书会提示不受信任,这是正常现象,因为浏览器不认私有CA),想要彻底消除浏览器警告,需要把自签名的CA证书导入到操作系统的信任库中,这在企业内部可以通过组策略批量下发。

私有证书和公网证书的区别,怎么选

证书类型 适用场景 浏览器信任 成本
自签名证书 内网测试、开发环境 不信任,需手动导入 免费
私有CA签发的证书 企业内部系统、局域网应用 导入CA后信任 视内部CA建设成本而定
公网CA证书(如Let’s Encrypt) 公网网站、小程序后端 全信任 免费或数百元/年

如果只是本地联调或内网服务,自签名证书完全够用,但涉及公网用户访问、小程序接口、App支付回调等场景,还是建议用Let’s Encrypt或云厂商提供的免费证书,需要注意,自签名证书的私钥如果泄露,攻击者可以伪造证书实施中间人攻击,内网环境也不能掉以轻心。

常见报错和排查思路

部署过程中容易遇到以下几类问题,对应的排查方向如下:

  • Nginx启动失败,报错ssl_certificate不存在:检查证书文件路径是否写错,确认Nginx用户(通常是www-data或nginx)对证书文件有读取权限。
  • 访问HTTPS站点提示”连接不安全”:自签名证书的预期行为,检查证书的Common Name是否和访问域名一致。
  • HTTP能访问,HTTPS超时:大概率是安全组或防火墙没有放行443端口,用telnet 域名 443测试连通性。
  • 配置了多个server块,但访问时总是跳到同一个站点:检查server_name是否重复,如果两个server块监听了同一个端口且server_name相同,Nginx会使用先加载的那个配置,多数情况下,这类问题源于配置文件里存在语法错误或重复的默认server块。

关于Nginx配置虚拟主机和SSL证书,常见问题解答

Nginx服务器上怎么安装虚拟主机但不影响现有站点?

只要新虚拟主机的server_name不与其他站点冲突,在conf.d目录下新增独立的配置文件,nginx -t检查通过后reload即可,Nginx的reload是平滑重载,不会中断现有请求。

自己生成私有证书后,浏览器仍然提示不安全,是否说明配置失败了?

不是,自签名证书和私有CA签发的证书天然不被浏览器信任,这是客户端侧的机制,配置本身可能已经成功,用openssl s_client -connect 域名:443可以看到证书链信息,如果确认证书链完整且服务端配置正确,只需将自签名证书导入客户端信任库即可消除警告。

一台Nginx服务器上可以同时配置虚拟主机和多个私有证书吗?

可以,Nginx支持SNI(Server Name Indication),每个server块可以指定不同的ssl_certificate和ssl_certificate_key,只要各自的server_name不同即可,注意Nginx版本不低于1.11.0时SNI支持比较完善,老版本可能会有兼容性问题。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/558777.html

赞 (0)
上一篇 2026年8月9日 12:45
下一篇 2026年8月9日 12:46

相关推荐

  • 云服务器安全怎么保障?云服务器被攻击了怎么办

    关于云服务器的安全问题在数字化转型的浪潮中,云服务器已成为企业IT架构的核心基石,随着网络攻击手段的日益复杂化,安全性不再仅仅是技术部门的考量指标,而是决定业务连续性的生命线,本文将基于真实部署体验,深入剖析主流云服务器的安全机制,并结合2026年的最新市场动态,为您提供一份兼具专业深度与实用价值的测评报告……

    2026年6月7日
    4000
  • 个人证书导入失败怎么办?证书导入失败解决方法

    个人证书导入失败怎么办在服务器配置与网站安全维护的日常工作中,SSL/TLS 证书导入失败是运维人员、开发者乃至个人站长最常遇到的技术痛点之一,这不仅仅是一个简单的操作步骤失误,更往往暴露出文件格式不兼容、私钥匹配错误、中间证书缺失或服务器环境配置不当等深层问题,对于追求高可用性和安全性的服务器环境而言,解决这……

    2026年6月29日
    2510
  • 郑州android开发公司哪家好?郑州安卓开发费用多少钱

    在移动互联网深度普及的今天,企业进行移动端布局已不再是“选择题”,而是“生存题”,对于郑州本地企业而言,选择原生技术路线,尤其是寻求专业的郑州android开发服务,是构建稳固数字业务基石、实现长期降本增效的最佳策略,原生开发不仅在性能上具有不可比拟的优势,更能针对本地企业的业务特性提供深度定制,避免混合开发带……

    2026年3月17日
    8700
  • Oculus Rift开发难吗?Oculus Rift开发教程详解

    Oculus Rift 开发的核心在于构建高性能、低延迟的虚拟现实交互系统,其技术实现依赖于硬件优化、软件架构设计以及用户体验的深度整合,以下是分层展开的技术要点与实践方案,核心结论:高性能渲染与精准追踪是Oculus Rift开发的关键Oculus Rift的开发需优先解决两大技术瓶颈:渲染延迟控制:保持帧率……

    2026年3月27日
    10800
  • 2D游戏开发怎么入门,零基础新手如何快速自学?

    C语言凭借其极简的运行时开销和直接的内存控制能力,依然是构建高性能图形渲染引擎的基石,在追求极致帧率和底层硬件交互的场景下,它提供了高级语言无法比拟的执行效率,核心结论在于:掌握C语言进行2D游戏开发,本质上是掌握数据在内存中的布局与CPU指令的高效调度,通过构建严谨的循环架构与渲染管线,能够实现无与伦比的运行……

    2026年2月22日
    13100
  • FTP服务器登录名密码如何设置?,有哪些步骤?

    FTP服务器登录名密码设置的核心要素对于FTP服务器而言,登录名和密码是访问控制的基石,直接关系到数据安全,很多运维人员遇到的首要问题就是 ftp服务器登录名密码怎么设置 才既便捷又安全,以下以业界广泛使用的 Serv‑U FTP Server 为例,详细演示配置过程,并从专业角度进行深度测评,Serv‑U F……

    2026年7月15日
    900
  • 发号网站源码哪个好用,发号系统源码怎么搭建才稳定?

    高并发环境下发号网站源码的服务器运行效能测评在运行发号网站源码这类对并发请求、数据库读写以及网络响应速度有极高要求的自动化业务时,服务器的底层硬件架构与网络稳定性直接决定了业务的成败,本次测评旨在通过压力测试与实际业务场景模拟,评估主流高性能服务器在承载此类高频发号业务时的真实表现,硬件架构与底层性能分析发号网……

    程序开发 2026年7月14日
    600
  • Android移动开发入门难吗?零基础如何快速上手

    Android移动开发服务器深度测评:构建高性能后端架构的终极指南在移动互联网浪潮持续迭代的今天,Android应用的后端支撑能力直接决定了用户体验的流畅度与数据的稳定性,对于开发者而言,选择一款合适的云服务器,不仅是技术架构的基石,更是业务稳定运行的保障,本文基于2026年的最新技术环境,从性能基准、网络延迟……

    2026年6月16日
    3300
  • Android 4.0虚拟机怎么用才流畅,兼容性好吗?

    Android 4.0虚拟机完全可以用,只要电脑支持硬件虚拟化(VT-x或AMD-V),装个VirtualBox或VMware就能跑起来,但系统本身是2011年的老产物,兼容性和性能问题必须提前心里有数,这篇文章就把安装步骤、兼容性坑位和性能优化一次性讲清楚,全程用可验证的操作路径说话,Android 4.0虚……

    2026年8月31日
    500
  • 均衡型60GHadoop服务器多少钱,独享型负载均衡怎么配?

    均衡型60G Hadoop服务器搭配独享型负载均衡,整体投入参考范围在5万元到15万元之间,具体取决于硬件选型和部署方式,这是2026年市场上多数场景下的基础成本区间,均衡型60G Hadoop服务器多少钱?配置独享型负载均衡成本解析硬件成本和负载均衡配置费用是决定总额的核心,两者比例随业务场景变化,以下从组件……

    2026年7月31日
    400

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注