安装和配置nginx(含https)

文章目录

    • 安装Nginx
    • 配置
      • 单独的配置:
      • https配置
    • nginx为什么可以处理高并发

安装Nginx

sudo yum update
sudo yum install epel-release
sudo yum install nginx
sudo systemctl start nginx

安装好后可以打开自己的域名 看一下默认的页面

配置

具体参考Link
位置

/etc/nginx/nginx.conf

nginx默认文件的结构:

...              #全局块

events {         #events块
   ...
}

http      #http块
{
    ...   #http全局块
    server        #server块
    { 
        ...       #server全局块
        location [PATTERN]   #location块  #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
        {
           #root path;  #根目录
           #index vv.txt;  #设置默认页
           proxy_pass  http://mysvr;  #请求转向mysvr 定义的服务器列表
           deny 127.0.0.1;  #拒绝的ip
           allow 172.18.5.54; #允许的ip  
        }
        location [PATTERN] 
        {
            ...
        }
    }
    server
    {
      ...
    }
    ...     #http全局块
}

1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。
5、location块:配置请求的路由,以及各种页面的处理情况。

默认监听的是80端口
单独服务的配置可以写新的文件
比如,把配置文件拆分开来,在/etc/nginx/conf.d/ 文件建立对应的域名配置文件,比如 /etc/nginx/conf.d/123.com.conf
然后在这个nginx.conf中进行引用
在原来文件/etc/nginx/nginx.conf 的http 块下加一句话就可以了:

include /etc/nginx/conf.d/*.conf;

在这里插入图片描述

单独的配置:

server {
    listen       8080; # 监听的端口
    server_name #你的域名 可以有多个;

    location / {
        proxy_pass http://127.0.0.1:9028;  # 转发的地址 比如这是我网站VUE前端的地址
        root   /home/daily_5_web/前端项目地址;  #根目录
        index  index.html index.htm; #设置默认页
    }

配置好后重启

sudo nginx -t
If there are no errors, restart Nginx with:
sudo systemctl restart nginx

现在就可以通过你配置的域名:8080来访问到我的前端界面了
xxx.cn:8080

https配置

需要监听443
需要已经准备好SSL证书(有免费的,可以申请,申请后得到文件,证书一般是pem文件和key文件
将下载好的证书上上传到服务器
比如腾讯云的可以参考这个连接

server {
     #SSL 默认访问端口号为 443
     listen 443 ssl; 
     #请填写绑定证书的域名
     server_name 域名 ; 
     #请填写证书文件的相对路径或绝对路径
     ssl_certificate /etc/nginx/xxx/xxx.crt; 
     #请填写私钥文件的相对路径或绝对路径
     ssl_certificate_key  /etc/nginx/xxx.key; 
     ssl_session_timeout 5m;
     #请按照以下协议配置
     ssl_protocols TLSv1.2 TLSv1.3; 
     #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
     ssl_prefer_server_ciphers on;
     location / {
         #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
         #例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。
         proxy_pass http://127.0.0.1:5000; # 这是我后端的地址和端口号
         root   /home/xxx/backend; # 后端服务根目录
     }
     # 静态文件配置
location /fonts/SourceHanSansCN.ttf {
        add_header Access-Control-Allow-Origin *;
        alias /home/daily_5_web/backend/project/services/SourceHanSansCN-Medium.ttf;
        expires 1h;
    }
 }

修改完同样重启Nginx
用https+域名来访问网站 看是否成功
比如:
https://你的域名.cn/xcx/接口

nginx为什么可以处理高并发

Nginx实现支持并发请求的关键在于其事件驱动的架构和高效的处理机制。下面以一个用户访问网站的例子来解释Nginx如何支持并发请求:

用户发起HTTP请求:假设一个用户在浏览器中输入网站的URL并按下回车,发送HTTP请求到服务器。

Nginx接收请求:Nginx作为前端服务器监听在特定端口上,接收到用户的HTTP请求。

并发连接处理:Nginx使用事件驱动的架构,采用异步非阻塞的方式处理并发连接。它通过使用多个工作进程或线程来处理多个连接,每个连接都是一个独立的事件。

请求路由:Nginx根据预先配置的路由规则,将接收到的请求路由到适当的后端服务器。这可以是本地的Gunicorn服务器或其他远程服务器。

反向代理:作为反向代理服务器,Nginx可以在后端服务器和客户端之间进行代理。它将用户的请求转发到后端服务器,并将响应返回给用户,实现了负载均衡和高可用性。

静态文件服务:如果请求的是静态文件(如HTML、CSS、JavaScript、图像等),Nginx可以直接提供这些文件,而无需将请求转发到后端服务器。它可以通过配置缓存和文件压缩来提高静态文件的传输效率。

并发请求处理:Nginx的事件驱动机制允许同时处理多个请求。它使用高效的I/O多路复用技术(如epoll、kqueue等)来监听多个连接的状态,并在连接有数据可读或可写时触发相应的事件。

高性能处理:Nginx使用事件驱动和非阻塞I/O模型,在处理请求时能够高效利用服务器资源。它避免了每个连接都创建一个新的线程或进程的开销,相比传统的多线程或多进程模型,更节省资源并提供更高的并发能力。

通过上述过程,Nginx能够有效地支持并发请求。它的事件驱动架构和非阻塞I/O机制使得它能够处理大量的并发连接,同时提供高性能和可靠性的服务。无论是静态文件服务还是反向代理转发,Nginx都能够有效地处理用户的请求,并将响应迅速返回给用户,实现快速的网站访问体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/35138.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件工程——第7章实现知识点整理

本专栏是博主个人笔记,主要目的是利用碎片化的时间来记忆软工知识点,特此声明! 文章目录 1.实现由哪两个部分组成? 2.编码是什么?所选用的程序设计语言对程序的哪些特性有着深远影响? 3.软件测试在软件生…

Python编程实现针对回撤的交易策略

在金融交易市场上,回撤是一个常见的现象。因此,对于投资者来说,研究和设计针对回撤的交易策略是非常必要的。本文将介绍如何使用Python编程实现针对回撤的交易策略,以帮助投资者更好地进行交易。 一、回撤分析 在设计针对回撤的…

Cisco Catalyst 9000 Series Switches, IOS-XE Release Dublin-17.11.1 ED

Cisco Catalyst 9000 Series Switches, IOS-XE Release Dublin-17.11.1 ED Cisco Catalyst 9000 交换产品系列 请访问原文链接:https://sysin.org/blog/cisco-catalyst-9000/,查看最新版。原创作品,转载请保留出处。 作者主页:…

Basler相机一丢包就断开问题解决

问题描述: 两个相机, 一个相机aca2500-14gm连接电脑主板100M网卡没问题,帧率3帧,但是不会断。 一个相机aca2500-14gm连接USB转网口(千兆),pylon Viewer采图丢包严重并且几秒后相机断开。 解决…

Centos 7 下安装Redis

官网地址(英文):Redis 官网地址(中文):CRUG网站 or redis中文文档 Redis源码地址:GitHub - redis/redis: Redis is an in-memory database that persists on disk. The data model is key-v…

数据结构-排序

数据结构排序 1 知识框架2 插入排序2.1 直接插入排序2.2 折半插入排序2.3 希尔排序 3 交换排序3.1 冒泡排序3.2 快排 4 选择排序4.1 简单选择排序4.2 堆排序 5 归并和基数排序5.1 归并排序5.2 基数排序 1 知识框架 算法的稳定性:;两个相同的元素在排序算…

swiftUI和swift的区别

概述 SwiftUI是苹果公司推出的一种用于构建iOS、macOS、watchOS和tvOS应用程序界面的框架。它是基于Swift编程语言开发的,旨在简化UI开发过程并提供实时预览功能,使开发人员可以更快地构建出漂亮的应用程序界面。 Swift是苹果公司推出的一种面向对象的…

c++ word简单的写文本与画表格只支持docx

简单使用的代码如下所示&#xff1a; #include "stdafx.h" #include <windows.h> #include "minidocx.hpp" using namespace docx; using namespace std; std::string GB2312ToUTF8(const std::string& gb2312) { int len MultiByteToWid…

RK3588平台开发系列讲解(Camera篇)V4L2 主要特性

文章目录 一、V4L2 介绍1.1、模块化的架构1.2、统一的设备节点1.3、统一的视频数据格式1.4、支持多种视频设备1.5、支持流式 I/O1.6、支持控制参数1.7、支持事件通知二、V4L2使用场景沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇章主要讲解V4L2 主要特性。 一、…

首发价11999元?华为智慧屏S3Pro电视7月10日上市

华为最新推出了两款全新的智慧屏 S3 Pro&#xff0c;分别是65英寸和75英寸版本&#xff0c;售价分别为5999元和7999元。除此之外&#xff0c;华为还推出了全新的S3 Pro 86英寸型号&#xff0c;首发价为11999元。这款电视将于7月10日上市&#xff0c;对于感兴趣的用户来说&#…

视频关键帧AI化的多种方法

视频关键帧AI化的逻辑是将视频切分成一帧帧的画面&#xff0c;然后使用SD绘画固定风格&#xff0c;最后统一在拼接在一起成为一个新的视频。 不管是Mov2Mov还是Multi Frame都能制作这种视频。但是这些操作起来比较麻烦&#xff0c;经过尝试处理较稳定的方法是可以通过img2im的…

C语言学习准备-编辑器选择

今天继续给大家更新C语言经典案例 今天的案例会比昨天稍微有一些难度&#xff0c;但是同时还是非常经典的案例 本来是想给大家继续更新C语言经典案例&#xff0c;但是有朋友反应C语言编辑器的选择&#xff0c;刚好我自己也是想更换一下C语言的编辑器&#xff0c;跟大家分享一下…

基于Web的智慧交通3D可视化系统

前言 城市交通是城市社会活动、经济活动的纽带和动脉&#xff0c;智慧交通系统对城市经济发展和人民生活水平起着极其重要的作用。 背景 随着我国城市化进程不断加快&#xff0c;现代城市交通问题日益受到人们的关注。特别是汽车数量的与日俱增&#xff0c;给城市带来了大量…

中国物流,驶入大航海时代

出海的一体化&#xff0c;不仅仅是物流的一体化&#xff0c;更是产业链、供应链的一体化。在诸多问题下&#xff0c;想要帮助企业更好地出海&#xff0c;就不能只专注于自身的长板&#xff0c;而是需要先补齐短板。 作者|斗斗 编辑|皮爷 出品|产业家 出海时代真的要来了。…

类Twitter风格的RSS阅读器

本文完成于 2 月中旬&#xff0c;其中的反代还是 frp npm 方案&#xff1b; 什么是 RSS ? RSS 是用 PHP、Laravel、Inertia.js、Tailwind 和 Vue.js 编写的简单的类Twitter 风格的 RSS阅读器&#xff0c;支持 RSS和ATOM 格式。 命令行安装 在群晖上以 Docker 方式安装。 官…

刷题日记06《回溯算法》

问题描述 力扣https://leetcode.cn/problems/Ygoe9J/ 给定一个无重复元素的正整数数组 candidates 和一个正整数 target &#xff0c;找出 candidates 中所有可以使数字和为目标数 target 的唯一组合。 candidates 中的数字可以无限制重复被选取。如果至少一个所选数字数量不同…

【容器起不来~tomcat】

记录一次线上容器~tomcat起不来的场景: **部门由于资金有限,只能用tomcat去部署,话不多说直接贴图: Docker 镜像 Tomcat 启动失败– 查看线上日志,日志报错了,报错内容如下: 1,Error response from daemon: driver failed programming external connectivityon endpoint jen…

离线安装ffmpeg源码包【详细教程】

今天分享一下ffmpeg源码包的安装过程&#xff0c;针对在没有网络环境下&#xff0c;且不能直接使用yum如何成功安装ffmpeg源码包。博主本人通过正式服务器测试&#xff0c;记录整个安装过程。值得大家收藏 同时&#xff0c;我会分享一下如何使用ffmpeg对H.264格式视频(MP4)进行…

ss客服让您在Facebook 的客户服务更便捷

ss客服让您在Facebook Messenger 的客户服务更便捷 在这个信息时代&#xff0c;新兴通讯软件蓬勃兴起&#xff0c;比如Facebook Messenger。事实证明&#xff0c;这对企业来说非常有利&#xff0c;同时突出了电子邮件、网络聊天和电话等传统渠道的局限性。在传统渠道上&#xf…

PostGIS(2):PostGreSQL数据库空间扩展模块安装

正式开始解读PostGIS 3.1.10文档之前&#xff0c;我们还是先简单叙述一下如何安装PostGIS。 从引言篇已经了解到&#xff1a;PostGIS是对象关系型数据库PostGreSQL的一个拓展模块。既然如此&#xff0c;我们必须先安装PostGreSQL数据库&#xff08;详细教程可参考&#xff1a;P…