服务器上怎么安装虚拟主机,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.comwww.example.com时,将请求映射到/var/www/example.com目录。

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

写完后先检查语法:

sudo nginx -t

如果输出syntax is oktest is successful,重载配置:

sudo systemctl reload nginx

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

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

复制同样的步骤,创建第二个配置文件another-site.conf,修改server_nameroot即可,一台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-datanginx)对证书文件有读取权限。
  • 访问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_certificatessl_certificate_key,只要各自的server_name不同即可,注意Nginx版本不低于1.11.0时SNI支持比较完善,老版本可能会有兼容性问题。

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

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

相关推荐

  • moack韩国独立服务器测评:53.9美元/月实测数据与性能表现

    moack韩国独立服务器提供无需备案、低延迟直连中国大陆的网络方案,适合外贸建站、游戏应用及对亚太区域网络质量有极高要求的业务场景,本次测评针对其月付53.9美元的爆款机型,从硬件性能、网络链路、磁盘IO及负载能力进行深度实测,并同步解析2026年限时优惠活动详情, 测评机型与核心配置本次实测的moack韩国独……

    2026年5月2日
    5700
  • 如何用ASP.NET生成数据库报表?报表开发全攻略

    ASP.NET数据库报表核心实现方案ASP.NET数据库报表开发的核心在于选择合适工具、优化数据访问、设计高效模板并确保安全分发,主流方案包括SQL Server Reporting Services (SSRS)、Telerik Reporting、Stimulsoft Reports及RDLC,结合Enti……

    2026年2月13日
    12900
  • Excel两表求和怎么操作?多表数据汇总求和公式

    在Excel中实现两表求和,最核心的方法是使用SUMIF或SUMIFS函数进行条件匹配求和,若数据量极大且需频繁更新,建议结合Power Query进行自动化关联,彻底告别手动复制粘贴,日常办公中,我们常遇到需要将“销售明细表”中的金额汇总到“客户汇总表”的场景,这种需求看似简单,实则暗藏陷阱,很多人第一反应是……

    2026年7月7日
    17700
  • AI智能语音打折是真的吗?语音识别技术哪家强

    AI智能语音打折的核心在于利用自动化技术降低人力成本并提升转化率,目前市场主流方案通过混合云部署与动态定价策略,可实现综合运营成本降低30%以上,AI智能语音打折的技术逻辑与成本重构传统呼叫中心依赖大量人工坐席,人力成本随业务量线性增长,且受限于员工情绪、疲劳度及培训周期,AI智能语音系统通过自然语言处理(NL……

    程序开发 2026年6月9日
    3800
  • Android开发广告如何变现?广告联盟SDK接入教程

    Android应用变现的核心在于构建高效、用户体验友好的广告系统,其成功关键取决于技术架构的稳定性、广告聚合策略的精细化运营以及对用户留存率的平衡,一个优秀的广告变现方案,绝非简单的SDK接入,而是基于数据驱动的流量分配与用户体验的深度优化,开发者必须在代码层面实现高内聚低耦合的架构设计,在运营层面通过瀑布流机……

    2026年3月23日
    11000
  • AI剪辑哪里买合适?AI剪辑软件哪个好用又便宜

    购买AI剪辑软件,最合适的渠道是官方授权渠道与头部云服务市场,这不仅能保障软件功能的完整性与安全性,还能确保售后服务的及时响应,避免因使用破解版或非正规渠道软件带来的法律风险与数据泄露隐患,选择购买渠道时,不应仅看价格高低,而应综合考量软件迭代能力、算力稳定性以及商业授权合规性,核心结论:官方渠道是首选,云市场……

    2026年3月2日
    13400
  • 服务器挂软件配置教程_参数配置实践教程

    参数配置顺序比单个参数值更重要,先摸清硬件与业务场景,再针对性调整关键参数,最后回归监控和压测验证,才能让软件真正跑稳,很多朋友在服务器上装完软件,发现跑起来要么卡顿、要么崩溃,第一反应就是机器不行,其实近年来大多数问题出在参数配置上,系统默认参数照顾的是通用场景,不可能适配你的具体业务,下面我把常见软件挂载时……

    2026年8月20日
    500
  • web前端开发用什么ide好,web前端开发ide推荐

    选择合适的 Web 前端开发 IDE,是提升开发效率、保障代码质量、降低维护成本的关键决策, 在主流前端技术栈(React、Vue、Angular)持续演进、工程化复杂度显著提升的当下,一款专业、高效的 Web 前端开发 IDE 不仅能加速迭代,更能从源头规避常见错误,为团队协作与项目长期可维护性打下坚实基础……

    2026年4月13日
    6900
  • ASP中如何精确判断变量类型和值的30种高效方法?

    在ASP中,判断主要通过条件语句实现,用于根据特定条件执行不同的代码块,从而控制程序流程,核心方法包括If…Then…Else语句、Select Case语句以及逻辑运算符的组合使用,这些工具能有效处理数据验证、用户输入响应和动态内容生成等场景,ASP中判断语句的基本结构ASP使用VBScript作为默……

    2026年2月3日
    15330
  • 百度app开发怎么做,百度app开发公司哪家好

    百度App开发的核心价值在于通过智能小程序生态实现“搜索+信息流”的双引擎赋能,帮助企业在百亿级流量池中低成本获取高粘性用户,其技术门槛低、流量来源精准、转化路径短的特点,使其成为当前企业移动端布局的最优解之一,流量重构:搜索与推荐的双重红利百度App区别于其他平台的本质特征,在于其独特的流量分发机制,传统的A……

    2026年3月21日
    8900

发表回复

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