当前位置: 首页 > news >正文

初学者指南:如何搭建和配置 Nginx 服务器

初学者指南:如何搭建和配置 Nginx 服务器

Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。本文将详细介绍如何在 Linux 上安装、配置和管理 Nginx 服务器。

一、安装 Nginx

Nginx 可以安装在多种操作系统上,如 Ubuntu、Debian、CentOS 等。以下是分别在 Ubuntu 和 CentOS 上的安装步骤:

在 Ubuntu 上安装 Nginx:

  1. 更新包索引:

    sudo apt update
    
  2. 安装 Nginx:

    sudo apt install nginx
    
  3. 启动 Nginx 服务:

    sudo systemctl start nginx
    
  4. 设置 Nginx 开机自启动:

    sudo systemctl enable nginx
    

在 CentOS 上安装 Nginx:

  1. 安装 EPEL 仓库:

    sudo yum install epel-release
    
  2. 安装 Nginx:

    sudo yum install nginx
    
  3. 启动 Nginx 服务:

    sudo systemctl start nginx
    
  4. 设置 Nginx 开机自启动:

    sudo systemctl enable nginx
    
二、基本配置

安装完成后,Nginx 的默认配置文件位于 /etc/nginx/nginx.conf。我们可以通过编辑该文件或添加新的配置文件来配置 Nginx。

检查 Nginx 状态:

sudo systemctl status nginx

重新加载 Nginx 配置:

每次修改 Nginx 配置文件后,需要重新加载配置以使更改生效:

sudo systemctl reload nginx
三、配置虚拟主机

虚拟主机允许你在一台服务器上托管多个网站。我们可以通过编辑 /etc/nginx/sites-available/ 目录中的文件来配置虚拟主机。

  1. 创建虚拟主机配置文件:

    /etc/nginx/sites-available/ 目录中创建一个新的配置文件,例如 example.com

    sudo nano /etc/nginx/sites-available/example.com
    
  2. 添加以下内容到配置文件中:

    server {listen 80;server_name example.com www.example.com;  #server_name该为自己的域名root /var/www/example.com/html;index index.html index.htm;location / {try_files $uri $uri/ =404;}
    }
    
  3. 创建网站根目录并添加测试文件:

    sudo mkdir -p /var/www/example.com/html
    sudo chown -R $USER:$USER /var/www/example.com/html
    sudo chmod -R 755 /var/www/example.com
    

    创建一个简单的 index.html 文件:

    echo "<html><body><h1>Welcome to example.com!</h1></body></html>" > /var/www/example.com/html/index.html
    
  4. 启用虚拟主机配置:

    创建一个指向 sites-available 目录中配置文件的符号链接到 sites-enabled 目录:

    sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
    
  5. 测试 Nginx 配置并重新加载:

    sudo nginx -t
    sudo systemctl reload nginx
    
四、设置防火墙

确保防火墙允许 HTTP 和 HTTPS 流量。

在 Ubuntu 上使用 UFW:

sudo ufw allow 'Nginx Full'
sudo ufw enable
sudo ufw status

在 CentOS 上使用 Firewalld:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
五、使用 HTTPS

为了增强网站的安全性,可以使用 Let’s Encrypt 提供的免费 SSL 证书来启用 HTTPS。

  1. 安装 Certbot 和 Nginx 插件:

    在 Ubuntu 上:

    sudo apt install certbot python3-certbot-nginx
    

    在 CentOS 上:

    sudo yum install certbot python2-certbot-nginx
    
  2. 获取 SSL 证书:

    使用 Certbot 获取并自动配置 SSL 证书:

    sudo certbot --nginx -d example.com -d www.example.com
    
  3. 验证 SSL 证书的自动续期:

    Certbot 自动创建了一个 cron 任务以每 12 小时检查和自动续期证书。你可以使用以下命令模拟续期过程以确保其正常工作:

    sudo certbot renew --dry-run
    
六、总结

通过以上步骤,你已经成功地在 Linux 上安装并配置了 Nginx 服务器。你学习了如何设置虚拟主机、配置防火墙以及使用 Let’s Encrypt 启用 HTTPS。希望这篇初学者指南对你有所帮助。

相关文章:

初学者指南:如何搭建和配置 Nginx 服务器

初学者指南&#xff1a;如何搭建和配置 Nginx 服务器 Nginx 是一个高性能的 HTTP 和反向代理服务器&#xff0c;也是一个 IMAP/POP3/SMTP 代理服务器。本文将详细介绍如何在 Linux 上安装、配置和管理 Nginx 服务器。 一、安装 Nginx Nginx 可以安装在多种操作系统上&#x…...

[AHK] WinHttpRequest.5.1报错 0x80092004 找不到对象或属性

目录 背景描述 用浏览器访问&#xff0c;正常返回 ​编辑 AHK v2官方示例源代码 AHK v2运行结果报错(0x80092004) 找不到对象或属性 用thqby大佬的WinHttpRequest.ahk库测试报错 0x80092004 找不到对象或属性 附&#xff1a; 用Apifox访问&#xff0c;也正常返回 AHK v1 …...

`speech_recognition` 是一个流行的库

在Python中&#xff0c;speech_recognition 是一个流行的库&#xff0c;用于从各种来源&#xff08;如麦克风、文件等&#xff09;进行语音识别。以下是您提到的技术名称和相应的Python代码示例。 技术名称 语音识别&#xff08;Speech Recognition&#xff09;&#xff1a;这…...

MFC Ribbon菜单 - 中英文实时切换方法

简介 最近在搞一个老外的项目&#xff0c;本来谈的好好的&#xff0c;纯英文界面。项目接近尾声了&#xff0c;又提出了中英文实时切换的新需求&#xff0c;没办法就只能想办法&#xff0c;毕竟客户最大嘛。 实现方法 还好本来的ribbon英文菜单不复杂&#xff0c;就用纯C编码…...

MFC程序创建word,创建表格,写入数据

文章目录 1、MFC程序功能&#xff1a;2、MFC程序实现2.1 创建项目2.2 添加word操作类2.3 添加word资源2.4 编写代码&#xff0c;实现将数据写入到word2.5 运行程序、验证功能3、工程代码下载 1、MFC程序功能&#xff1a; 创建word文档&#xff1b;向文档中写入字符串&#xff…...

FPGA:基于复旦微FMQL10S400 /FMQL20S400 国产化核心板

复旦微电子是国内集成电路设计行业的领军企业之一&#xff0c;早在2000年就在香港创业板上市&#xff0c;成为行业内首家上市公司。公司的RFID芯片、智能卡芯片、EEPROM、智能电表MCU等多种产品在市场上的占有率位居行业前列。 今天介绍的是搭载复旦微 FMQL10S400/FMQL20S400的…...

centos下使用yum安装keepalived工具

1、安装如下rpm包&#xff0c;不安装此包在装keepalived时会报错 mkdir keepalived_rpm cd keepalived_rpm/ wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-libs-compat-8.0.36-1.el7.x86_64.rpm 2、使用yum进行keepalived的安装 yum -y install keepal…...

无人机图像目标检测

本仓库是人工智能课程的课程作业仓库&#xff0c;主要是完成无人机图像目标检测的任务&#xff0c;我们对visdrone数据集进行了处理&#xff0c;在yolo和ssd两种框架下进行了训练和测试&#xff0c;并编写demo用于实时的无人机图像目标检测。 requirements依赖&#xff1a; ss…...

JSqlParser 解析 sql

目录 前言一、Maven依赖二、获取sql中的表名三、获取sql中的具体信息 前言 JSqlParser是一个 SQL 语句解析器。它将 SQL 语句转换为可遍历的 Java 类层次结构&#xff0c;可以方便的用代码对 SQL 语句进行解析&#xff0c;修改等操作。 官网 api 文档和 github 地址如下&…...

Vue中使用mind-map实现在线思维导图

概述 在前面的文章Vue中实现在线画流程图实现中介绍了流程图的在线绘制&#xff0c;在本文&#xff0c;给大家分享一下基于mind-map实现在线的思维导图&#xff0c;并实现&#xff1a;1. 导图导出为图片&#xff1b;2. 打开xmind文件。 实现效果 实现 1. mind-map简介 simp…...

ChatGPT 深度解析:技术驱动的智能对话

在当今科技飞速发展的时代&#xff0c;ChatGPT 无疑成为了最耀眼的明星之一。它以其令人惊叹的智能对话能力&#xff0c;引发了全球范围内的广泛关注和热议。 ChatGPT 背后的技术堪称精妙绝伦。它基于深度学习算法&#xff0c;通过对海量数据的学习和分析&#xff0c;从而能够理…...

Armv8-R内存模型详解

目录 1.内存模型的必要性 2.Armv8-R内存模型分类 2.1 Normal memory 2.2 Device Memory 2.2.1 Gathering 2.2.2 Reordering 2.2.3 Early Write Acknowledgement 3.小结 大家好&#xff0c;今天是悲伤的肌肉。 在调研区域控制器芯片时&#xff0c;发现了S32Z、Stellar …...

Python面经

文章目录 Python基本概念1. Python是**解释型**语言还是**编译型**语言2. Python是**面向对象**语言还是面向过程语言3. Python基本数据类型4.append和 extend区别5.del、pop和remove区别6. sort和sorted区别介绍一下Python 中的字符串编码is 和 的区别*arg 和**kwarg作用浅拷…...

海外ASO:iOS与谷歌优化的相同点和区别

海外ASO是针对iOS的App Store和谷歌的Google Play这两个主要海外应用商店进行的优化过程&#xff0c;两个不同的平台需要采取不同的优化策略&#xff0c;以下是对iOS优化和谷歌优化的详细解析&#xff1a; 一、iOS优化&#xff08;App Store&#xff09; 1、关键词覆盖 选择关…...

【C++题解】1168. 歌唱比赛评分

问题&#xff1a;1168. 歌唱比赛评分 类型&#xff1a;数组找数 题目描述&#xff1a; 四&#xff08;1&#xff09; 班要举行一次歌唱比赛&#xff0c;以选拔更好的苗子参加校的歌唱比赛。评分办法如下&#xff1a;设 N 个评委&#xff0c;打 N 个分数&#xff08; 0≤每个分…...

鸿蒙开发工程师面试-架构篇

1. 假如让你负责鸿蒙App架构设计&#xff0c;你会关注哪些方面&#xff1f; 分层架构设计&#xff1a; 将应用划分为产品定制层、基础特性层和公共能力层&#xff0c;以降低层间依赖性&#xff0c;提升代码可维护性。通过分层架构设计&#xff0c;进一步明确每层的职责和层间交…...

【Redis】持久化

对于Redis中间件来说&#xff0c;一般是作为内存型数据库或者缓存出现的。但是由于其数据是在内存中&#xff0c;因此当Redis所在的主机宕机之后&#xff0c;数据就会消失&#xff0c;再次重启之后&#xff0c;没有任何数据。这对于生产环境来说&#xff0c;是属于P0级别的灾难…...

港股指数实时行情API接口

港股 指数 实时 行情 API接口 # Restful API https://tsanghi.com/api/fin/index/HKG/realtime?token{token}&ticker{ticker}指定指数代码&#xff0c;获取该指数的实时行情&#xff08;开、高、低、收、量&#xff09;。 更新周期&#xff1a;实时。 请求方式&#xff1a…...

Qt5开发实战_图形_QPen

Qpen是Qt框架中的一个类&#xff0c;用于定义绘制线条的属性&#xff0c;包括颜色、宽度、样式、端点样式和连接样式。 具体属性(设置颜色和设置宽度直接pass从样式开始&#xff09;: 设置样式&#xff1a; pen的样式主要有以下几种&#xff1a; 分别是&#xff1a;直线样式…...

linux进程周边知识——内核对硬件的管理——计算机世界的管理

前言&#xff1a;本节主要讲解内核也就是操作系统对于硬件的管理&#xff0c; 本节内容同样为进程的周边知识。 主要是关于软件方面&#xff0c; 和我的上一篇——冯诺依曼体系结构可以说是兄弟文章&#xff0c; 这篇文章主要是关于硬件方面。 两篇文章都是为学习进程做准备。但…...

DataStore vs SharedPreferences 迁移指南:告别 ANR,拥抱类型安全

DataStore vs SharedPreferences 迁移指南&#xff1a;告别 ANR&#xff0c;拥抱类型安全 一句话收益&#xff1a;掌握从 SharedPreferences 迁移到 Jetpack DataStore 的完整路径&#xff0c;彻底消除主线程 I/O 阻塞与类型安全隐患。 适用版本&#xff1a;Android API 21&…...

HarmonyOS万能卡片开发实战:游戏状态桌面实时展示与交互实现

1. 项目概述&#xff1a;当游戏遇见万能卡片最近在HarmonyOS 3.1上折腾一个挺有意思的东西&#xff1a;把游戏的关键信息&#xff0c;比如角色状态、资源数量、离线收益&#xff0c;甚至是一键快捷操作&#xff0c;直接做成一个“万能卡片”放在桌面上。这可不是简单的应用图标…...

MyBatis拦截器实现数据权限控制:原理、实现与PageHelper兼容方案

1. 项目概述与核心痛点在开发企业级后台管理系统时&#xff0c;数据权限控制是一个绕不开的经典难题。前端菜单和按钮的权限&#xff0c;我们通常可以通过配置角色与资源的关系来实现&#xff0c;相对直观。但到了后端&#xff0c;特别是数据库查询层面&#xff0c;问题就复杂多…...

给电力行业装上“地理大脑”:百度智能云图云做了一次“地址大模型”变革

“我家在老三中对面那条巷子&#xff0c;供电局以前的老院子旁边……”当95598客服接到这样的报修电话时&#xff0c;系统该如何精准定位&#xff1f;这并非个例。城市快速扩张、街巷小区不断新建更名&#xff0c;而电力系统的地址数据往往跟不上现实变化。同时&#xff0c;传统…...

气动黄油机核心技术解析:泵的选择与厂家评估方法论

工业黄油就是润滑脂&#xff0c;属于半固体润滑剂&#xff0c;润滑脂的作用主要是润滑、保护和密封。可以有效降低机械摩擦&#xff0c;防止磨损&#xff0c;同时还能防腐蚀及密封防尘。毫不夸张的说&#xff0c;润滑脂就是万金油&#xff0c;黄油加注机广泛应用于汽车制造业、…...

浙大联合腾讯让AI“看懂“三维世界

这项由浙江大学、腾讯混元大模型团队、香港科技大学及深圳湾区研究院联合完成的研究&#xff0c;以预印本形式发布于2026年5月&#xff0c;论文编号为arXiv:2605.15876&#xff0c;有兴趣深入了解的读者可通过该编号查询完整论文。当你拿起手机拍下一张客厅照片&#xff0c;现在…...

Supervisely完整指南:5步打造AI视觉标注神器

Supervisely完整指南&#xff1a;5步打造AI视觉标注神器 【免费下载链接】supervisely Supervisely SDK for Python - convenient way to automate, customize and extend Supervisely Platform for your computer vision task 项目地址: https://gitcode.com/gh_mirrors/su…...

3个步骤掌握Betaflight飞控固件:从零开始打造专业级无人机飞行体验

3个步骤掌握Betaflight飞控固件&#xff1a;从零开始打造专业级无人机飞行体验 【免费下载链接】betaflight Open Source Flight Controller Firmware 项目地址: https://gitcode.com/gh_mirrors/be/betaflight Betaflight作为全球最受欢迎的开源飞控固件&#xff0c;为…...

【ChatGPT】锂电卷绕机深度拆解、信息图、爆炸图、C++代码框架

深度拆解信息图...

Claude 3.5架构升级:请求编排器层的零成本蒸发

1. 项目概述&#xff1a;这不是一次普通更新&#xff0c;而是一次架构级“蒸发”“Anthropic Just Shipped the Layer That’s Already Going to Zero”——这个标题乍看像科技媒体的夸张头条&#xff0c;但作为连续跟踪Claude模型演进三年、亲手部署过从Haiku到Sonnet再到Opus…...