Ubuntu 16.04中怎么配置和使用NGINX Web服务器

发布时间 - 2023-05-11 00:00:00    点击率:

nginx专为性能优化而开发,其最知名的优点是它的稳定性和低系统资源消耗,以及对并发连接的高处理能力(单台物理服务器可支持30000~50000个并发连接), 是一个高性能的 http 和反向代理服务器,也是一个imap/pop3/smtp 代理服。

安装 Certbot

第一步是安装 certbot,该软件客户端可以几乎自动化所有的过程。 Certbot 开发人员维护自己的 Ubuntu 仓库,其中包含比 Ubuntu 仓库中存在的软件更新的软件。

添加 Certbot 仓库:

# add-apt-repository ppa:certbot/certbot

接下来,更新 APT 源列表:

# apt-get update

此时,可以使用以下 apt 命令安装 certbot:

# apt-get install certbot

Certbot 现已安装并可使用。

获得证书

有各种 Certbot 插件可用于获取 SSL 证书。这些插件有助于获取证书,而证书的安装和 Web 服务器配置都留给管理员。

我们使用一个名为 Webroot 的插件来获取 SSL 证书。

在有能力修改正在提供的内容的情况下,建议使用此插件。在证书颁发过程中不需要停止 Web 服务器。

配置 NGINX

Webroot 会在 Web 根目录下的 .well-known 目录中为每个域创建一个临时文件。在我们的例子中,Web 根目录是 /var/www/html。确保该目录在 Let’s Encrypt 验证时可访问。为此,请编辑 NGINX 配置。使用文本编辑器打开 /etc/nginx/sites-available/default:

# $EDITOR /etc/nginx/sites-available/default

在该文件中,在 server 块内,输入以下内容:

location ~ /.well-known {
allow all;
}

保存,退出并检查 NGINX 配置:

# nginx -t

没有错误的话应该会显示如下:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重启 NGINX:

# systemctl restart nginx

使用 Certbot 获取证书

下一步是使用 Certbot 的 Webroot 插件获取新证书。在本教程中,我们将保护示例域 www.example.com。需要指定应由证书保护的每个域。执行以下命令:

# certbot certonly --webroot --webroot-path=/var/www/html -d www.example.com

在此过程中,Cerbot 将询问有效的电子邮件地址,用于进行通知。还会要求与 EFF 分享,但这不是必需的。在同意服务条款之后,它将获得一个新的证书。

最后,目录 /etc/letsencrypt/archive 将包含以下文件:

  • chain.pem:Let’s Encrypt 加密链证书。

  • cert.pem:域名证书。

  • fullchain.pem:cert.pem和 chain.pem 的组合。

  • privkey.pem:证书的私钥。

Certbot 还将创建符号链接到 /etc/letsencrypt/live/domain_name/ 中的最新证书文件。这是我们将在服务器配置中使用的路径。

在 NGINX 上配置 SSL/TLS

下一步是服务器配置。在 /etc/nginx/snippets/ 中创建一个新的代码段。 snippet 是指一段配置,可以包含在虚拟主机配置文件中。如下创建一个新的文件:

# $EDITOR /etc/nginx/snippets/secure-example.conf

该文件的内容将指定证书和密钥位置。粘贴以下内容:

ssl_certificate /etc/letsencrypt/live/domain_name/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain_name/privkey.pem;

在我们的例子中,domain_name 是 example.com。

编辑 NGINX 配置

编辑默认虚拟主机文件:

# $EDITOR /etc/nginx/sites-available/default

如下:

server {
listen 80 default_server;
listen [::]:80 default_server;
server_name www.example.comreturn 301 https://$server_name$request_uri;# SSL configuration#listen 443 ssl default_server;
listen [::]:443 ssl default_server;
include snippets/secure-example.conf## Note: You should disable gzip for SSL traffic.# See: https://bugs.debian.org/773332# ...}

这将启用 NGINX 加密功能。

保存、退出并检查 NGINX 配置文件:

# nginx -tnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重启 NGINX:

# systemctl restart nginx


# ubuntu  # nginx  # html  # var  # 并发  # default  # http  # ssl  # 性能优化  # 自动化  # 创建一个  # 服务器配置  # 重启  # 编辑器  # 该文件  # 配置文件  # 过程中  # 自己的  # 虚拟主机  # 是一个 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 怎么用AI帮你为初创公司进行市场定位分析?  javascript读取文本节点方法小结  Laravel怎么使用artisan命令缓存配置和视图  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  奇安信“盘古石”团队突破 iOS 26.1 提权  如何在Ubuntu系统下快速搭建WordPress个人网站?  Laravel如何自定义分页视图?(Pagination示例)  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  JavaScript如何实现错误处理_try...catch如何捕获异常?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  如何彻底卸载建站之星软件?  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  Laravel如何配置Horizon来管理队列?(安装和使用)  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  Laravel如何实现多对多模型关联?(Eloquent教程)  Python文件异常处理策略_健壮性说明【指导】  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  JS中对数组元素进行增删改移的方法总结  如何在云主机上快速搭建网站?  ,交易猫的商品怎么发布到网站上去?  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  如何用wdcp快速搭建高效网站?  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  浅谈redis在项目中的应用  香港网站服务器数量如何影响SEO优化效果?  微信小程序 scroll-view组件实现列表页实例代码  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  如何在IIS7上新建站点并设置安全权限?  canvas 画布在主流浏览器中的尺寸限制详细介绍  Laravel如何使用Service Container和依赖注入?(代码示例)  浅谈Javascript中的Label语句  香港服务器网站卡顿?如何解决网络延迟与负载问题?  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  如何快速选择适合个人网站的云服务器配置?  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  如何用PHP快速搭建高效网站?分步指南  原生JS实现图片轮播切换效果  Windows Hello人脸识别突然无法使用  深圳网站制作平台,深圳市做网站好的公司有哪些?  详解jQuery中基本的动画方法  用v-html解决Vue.js渲染中html标签不被解析的问题  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  Laravel如何使用.env文件管理环境变量?(最佳实践)  Android自定义控件实现温度旋转按钮效果