安装和配置nginx(含https)

news2024/9/30 7:18:19

文章目录

    • 安装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都能够有效地处理用户的请求,并将响应迅速返回给用户,实现快速的网站访问体验。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

香港大学推出创新科技教育基金,拟支持Web3和生成式AI等领域教学

区块链技术是近年来备受关注的领域之一,其应用范围已经涵盖了金融、医疗、物流等众多行业。而随着区块链技术的不断发展和完善,越来越多的企业和机构开始将其应用到实际生产和业务中。作为其中一个重要的应用领域,金融领域也成为了区块链技术的重要应用场…

CTF加密解密—CRYPTO—easyrsa1

0x00 考察知识点 CTF 加解密合集:CTF 加解密合集 本道题实际上是在考察对RSA算法的练度问题,已知n,需要将n拆解为两个质数。 工具: http://www.factordb.com/index.php (在线分离) 0x01 题目 e 6553…

青岛大学_王卓老师【数据结构与算法】Week03_11_线性表的链式表示和实现11_学习笔记

本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享,另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权,请留言作删文处理。 课程视频链接: 数据结构与算法基础–…

f(x)*g(x)的问题——C的缺陷

整理一道颇具争议的题目 #include<stdio.h> #define Mul(x,y) x*y int main() { int a1,b2,c3; printf("%d",Mul(ab,bc)); }关于这道题目&#xff0c;根据不同的编译器&#xff0c;答案会出现两种答案 11和14&#xff0c;见下面&#xff1a; 关于dev C: 关于…

【前端面试手册】CSS系列-回流与重构

本专栏收录于前端面试手册-CSS系列如果该文章对您有帮助还希望你能点一个小小的订阅&#xff0c;来增加博主创作的动力✍&#x1f3fb;话不多说开始进入正题 回流和重构在前端CSS中是一个常见的问题&#xff0c;那么你对回流何重构有哪些了解呢&#xff1f; 一、什么场景下会触…

Vulnhub: EvilBox:One靶机

kali&#xff1a;192.168.111.111 靶机&#xff1a;192.168.111.130 信息收集 端口扫描 nmap -A -sC -v -sV -T5 -p- --scripthttp-enum 192.168.111.130 secret目录爆破 feroxbuster -k -d 1 --url http://192.168.111.130/secret/ -w /opt/zidian/SecLists-2022.2/Disco…

【深度学习推荐系统 工程篇】二、从TF-Serving看生产环境的模型推理服务

前言 模型训练完成后&#xff0c;到在线部署是其所必须要做的一步&#xff0c;伴随模型结构复杂/算力增加&#xff0c;打造低延时/低资源占用的模型预测服务是模型上线的关键&#xff1b; tensorflow 很早就开源了tf-serving&#xff08;代码连接&#xff1a;https://github.…

Pygame中获取键盘按键的方法

1 事件与队列 在Pygame中&#xff0c;将用户对游戏的操作叫做“事件”。键盘按键是一种事件&#xff0c;鼠标点击和游戏手柄的输入也是一种事件。在Pygame的子模块locals中&#xff0c;对这些事件进行了定义。当用户通过键盘、鼠标或者游戏手柄对游戏进行操作后&#xff0c;产…

Bootstrap 代码

文章目录 Bootstrap 代码更多实例实例1实例2实例3&#xff0c;4实例5实例6 Bootstrap 代码 Bootstrap 允许您以两种方式显示代码&#xff1a; 第一种是 <code> 标签。如果您想要内联显示代码&#xff0c;那么您应该使用 <code> 标签。第二种是 <pre> 标签。…

mysql 创建用户(修改用户访问数据库权限,被外界IP访问权限)

我们执行,下面代码&#xff1a; select user,host from mysql.user;生成表: 这里面存放我们所有的用户&#xff0c;user 表示用户名, host表示 能被访问的IP范围。 1.修改用户能被访问的范围 # "%" 表示,能被所有IP访问。 update mysql.user set host "%&q…

力扣 538. 把二叉搜索树转换为累加树 1038. 从二叉搜索树到更大和树

题目来源&#xff1a; 538&#xff1a;https://leetcode.cn/problems/convert-bst-to-greater-tree/description/ 1038&#xff1a; https://leetcode.cn/problems/binary-search-tree-to-greater-sum-tree/description/ C题解1&#xff1a;递归法。二叉搜索树由大到小&#…

CST仿真半波偶极子天线学习笔记

CST仿真半波偶极子天线 文章目录 CST仿真半波偶极子天线1. 新建工程模板2.建模3. 激励方式设置4. 求解器设置5. 仿真分析6. 数据后处理 设计要求&#xff1a; 谐振频率为3.48GHz&#xff0c;基板采用Rogers RT5880板材&#xff0c;介电常数2.2&#xff0c;损耗角正切0.0009&…

Git学习笔记(三)

导航小助手 五、远程操作 5.1 理解分布式版本控制系统 5.2 远程仓库 5.2.1 新建远程仓库 5.2.2 克隆远程仓库 5.2.3 向远程仓库推送 5.2.4 拉取远程仓库 五、远程操作 5.1 理解分布式版本控制系统 前面博客所介绍的 关于 Git 的内容&#xff08;比如说&#xff1a;工作…

输入和输出处理

目录 1.File类 2.流 2.1.InputStream 2.2.OutputStream 总结 内容仅供学习交流&#xff0c;如有问题请留言或私信&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 有空您就点点赞 1.File类 文件&#xff1a;相关记录或存放在一起的数据的集合 Java程序如…

高考考了657分想重新复读一年,又害怕白费一年

高考考了657分想重新复读一年&#xff0c;又害怕白费一年。 如果你想重新复读一年&#xff0c;可能需要考虑到以下几点&#xff1a; 复读的代价&#xff1a;复读需要花费一年的时间和精力&#xff0c;而且这个过程中你可能会面临很多挑战和压力&#xff0c;包括学习上的、生活上…

多模态之论文笔记BEiT, BEiT V2, BEiT V3

文章目录 OverviewBEiT1.0. Summary1.1. BEiT VS BERT2.1. Two Views: visual tokens2.1. Two Views: image patches3. Results BEiT V21.0. Summary1.1. Motivation2.1. Methods -- VQ-KD2.2. Methods -- patch aggregation3.1. Results -- image classification & semant…

ChatGPT Plugins内幕、源码及案例实战(二)

第6章 ChatGPT Plugins内幕、源码及案例实战 检索插件的API需要以下环境变量才能工作,如表6-2所示。 ChatGPT检索插件示例中,“.well-known”目录里面的ai-plugin.json是一个插件的说明文档,插件名为Retrieval Plugin,用于搜索用户的文档(如文件、电子邮件等),该插件…

HDLbits--Exams/review2015 fsm

示例&#xff1a; 题目的主要意思是&#xff1a;复位之后寻找1101序列&#xff0c;找到之后shift ena在四个周期内为1&#xff0c;此后输出counting&#xff0c;如果done-counting0&#xff0c;则counting一直为1&#xff0c;直到done-counting1&#xff0c;counting才为0&…

Redis高可用——持久化

Redis高可用——持久化 一、Redis 高可用的相关知识1、什么是高可用2、Redis的高可用技术3、持久化的功能4 redis持久化的方式 二、RDB持久化1、RDB持久化的触发方式①.手动触发②.自动触发③.其他自动触发机制 2、bgsave执行流程3、启动时加载 三、AOF持久化1.开启AOF2.执行流…

RSUYZM9智能路侧终端使用说明书

1 产品概览 本说明 书适用于 RSUYZM8型及 RSUYZM9型智能路侧终端 产品 。智能路 侧终端 作为智能 车路协同系统 路侧的基础 设备&#xff0c; 是车载设备和路口 所有 设备的 汇 聚点&#xff0c;路侧设备和车载之间 通过 LTE-V进行 信息交互 。同时 &#xff0c;智能路侧终 端还…