在华为云上安装Nginx并配置SSL证书,只需按照以下步骤操作,即可快速实现HTTPS访问,整个过程从服务器准备到证书生效通常不超过30分钟。
华为云服务器安装Nginx的前期准备
在动手安装之前,有几项基础工作必须提前完成,这能避免后续配置时反复返工,多数初次接触云服务器的用户在这里容易卡壳,所以咱们把细节捋清楚。
选择适合的云服务器配置
华为云提供的弹性云服务器(ECS)有多种规格,影响Nginx性能的主要是CPU和内存,对于个人博客或中小型企业站,1核2GB的配置足够支撑日均几千的访问量,如果预期流量较大,建议选择2核4GB起步,操作系统的选择上,CentOS 7.9或Ubuntu 20.04是社区内最稳定的组合,Nginx官方对这两个版本的包支持也最完善。参考2
安全组与网络设置
登录华为云控制台,进入ECS实例详情页,找到“安全组”配置项,需要确保入方向规则放行以下端口:
- 22端口:SSH远程连接用
- 80端口:HTTP明文访问
- 443端口:HTTPS加密访问(SSL配置后必须开放)
如果购买的是弹性公网IP,建议绑定到实例后先测试连通性,用本地终端执行 ping 你的公网IP,确认网络无丢包。
连接服务器并更新系统
使用SSH客户端登录:
ssh root@你的公网IP
登录后第一时间更新系统包索引,避免因源版本过旧导致安装失败,CentOS系统执行:
yum update -y
Ubuntu系统执行:
apt update && apt upgrade -y
更新完成后重启一次服务器,确保内核和依赖都处于最新状态。
安装Nginx的具体操作步骤
接下来进入核心环节安装Nginx,这里以CentOS 7.9为例,Ubuntu的命令差异我会在括号中注明。
通过官方源安装Nginx
CentOS默认的EPEL源可能包含旧版本,推荐直接使用Nginx官方源,创建一个新的repo文件:
vim /etc/yum.repos.d/nginx.repo
[nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key
保存后执行:
yum install nginx -y
对于Ubuntu系统,使用apt安装官方源的方法类似,这里不再赘述,安装完成后,启动Nginx并设置开机自启:
systemctl start nginx systemctl enable nginx
验证安装是否成功
在本地浏览器输入服务器的公网IP,如果看到Nginx默认欢迎页,说明安装成功,如果没有显示,首先检查华为云安全组是否放行了80端口,接着查看Nginx服务状态:
systemctl status nginx
若服务未运行,执行 journalctl -u nginx 查看详细错误日志,配置文件语法错误是最常见的原因。
基本配置调优(可选)
Nginx主配置文件在 /etc/nginx/nginx.conf,默认站点配置在 /etc/nginx/conf.d/default.conf,建议先备份原始文件,再按需修改,例如调整worker_processes为CPU核心数,启用gzip压缩等,这些调优不影响SSL安装,但能提升后续访问体验。
华为云Nginx SSL证书配置与HTTPS部署
SSL证书是让网站支持HTTPS的关键,华为云安装nginx ssl 的核心就是把证书和私钥正确配置到Nginx中,证书可以免费获取,比如华为云提供的SSL证书管理服务,或者Let’s Encrypt的免费证书,这里以华为云证书为例。
申请SSL证书并下载
在华为云控制台找到“SSL证书管理”,购买或申请免费证书(单域名证书足够),验证域名所有权后,下载证书文件,选择Nginx格式,下载后得到一个 .crt 证书文件和一个 .key 私钥文件,注意:私钥文件必须妥善保管,不能泄露。参考1
上传证书到服务器
在Nginx配置目录下创建 ssl 文件夹:
mkdir /etc/nginx/ssl
将本地下载的证书文件上传到该目录,可以使用scp命令:
scp 你的证书.crt root@你的IP:/etc/nginx/ssl/ scp 你的私钥.key root@你的IP:/etc/nginx/ssl/
上传后修改文件权限,确保Nginx进程能读取:
chmod 600 /etc/nginx/ssl/你的私钥.key chmod 644 /etc/nginx/ssl/你的证书.crt
修改Nginx配置文件启用SSL
编辑默认站点配置文件(路径通常是 /etc/nginx/conf.d/default.conf),添加一个server块监听443端口,并指定证书和私钥路径,一个标准的HTTPS配置段如下:
server {
listen 443 ssl http2;
server_name 你的域名.com;
ssl_certificate /etc/nginx/ssl/你的证书.crt;
ssl_certificate_key /etc/nginx/ssl/你的私钥.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
保存后执行 nginx -t 测试配置文件语法,如果显示 syntax is ok,则重启Nginx:
systemctl restart nginx
配置HTTP重定向到HTTPS
为了强制所有访问者使用加密连接,添加一个额外的server块,监听80端口并自动跳转:参考2
server {
listen 80;
server_name 你的域名.com;
return 301 https://$host$request_uri;
}
再次测试并重启Nginx,至此HTTPS部署完成,在浏览器中访问 https://你的域名,应该能看到绿色锁标志。
常见问题排查与性能提升建议
部署过程中难免遇到小问题,这里整理几个高频场景,帮你快速定位。
安全组与防火墙拦截
如果证书配置无误但浏览器显示“无法连接”,请检查华为云安全组是否放通了443端口,服务器内部防火墙也可能拦截,CentOS 7默认使用firewalld,执行以下命令放行HTTPS:
firewall-cmd --permanent --add-service=https firewall-cmd --reload
证书链不完整导致浏览器警告
部分浏览器提示“证书不受信任”,通常是因为证书链文件缺失,华为云下载的证书包中可能包含一个 ca-bundle 文件,需要将服务器证书与中间证书合并,将两个内容按顺序合成一个文件,再替换原 ssl_certificate 指向的路径。
配置HTTPS后网站加载速度慢
启用SSL会增加握手开销,可以开启OCSP Stapling和SSL会话缓存来加速,在server块内添加:
ssl_stapling on; ssl_stapling_verify on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m;
Nginx的 http2 指令也能明显提升并发效率,已在示例配置中启用。
如何进一步优化Nginx性能
除了SSL本身,还有一些通用优化能提升网站响应速度。
- 启用Gzip压缩:在
nginx.conf中添加gzip on;并配置压缩类型列表。 - 调整worker连接数:根据服务器内存调整
worker_connections,通常设为1024或2048。 - 静态文件缓存:为图片、CSS、JS文件设置
expires指令,减少重复请求。
这些改动在配置文件修改后,都需要执行 nginx -t 确认语法并重启。
华为云安装nginx ssl相关问题解答
问:在华为云上安装Nginx,必须使用命令安装吗?有没有一键部署的镜像?
答: 华为云镜像市场提供多种预装Nginx的公共镜像,您可以在创建ECS时选择“LNMP”或“LEMP”等应用镜像,系统会自动完成Nginx的基础安装,但SSL证书配置仍需手动操作,因为证书关联域名和私钥,无法预置,选择纯净操作系统手动安装,更容易控制版本和配置细节。
问:Nginx配置SSL后,访问网站显示“您的连接不是私密连接”,如何解决?
答: 此问题通常由证书与域名不匹配、证书过期或证书链缺失导致,首先确认证书绑定的域名与访问地址完全一致,包括www前缀,其次检查证书有效期,华为云免费证书一般有效期为一年,查看nginx配置中 ssl_certificate 指向的文件是否包含完整证书链,必要时将中间证书与服务器证书合并。
问:配置了HTTPS,但百度收录的链接还是HTTP,需要做301重定向吗?
答: 需要,在Nginx配置中,将监听80端口的server块 return 301 https://$host$request_uri;,即可将所有HTTP流量强制跳转到HTTPS,建议在百度站长平台提交HTTPS的站点地图,并验证HTTPS版本为新主页,从而逐步替换旧链接,据业内共识,301重定向后,百度通常在一到两周内完成索引更新。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/534531.html



