Nginx web服务器入门及其在Linux中的搭建

news2024/10/7 8:22:51

目录

​编辑

一、Nginx基本概述

1.介绍

2.优点

3.应用场景

(1)负载均衡

(2)代理缓存

(3)静态资源

(4)安全应用场景

4.Nginx的组成

(1)Nginx二进制可执行文件

(2)Nginx.conf文件

(3)access.log

(4)error.log

二、Nginx的部署

1.安装方法

(1)源码编译

(2)epel仓库

(3)官方仓库

2.安装Nginx依赖

3.配置Nginx源

4.安装Nginx服务

5.检查Nginx版本

6.Nginx目录结构

三、Nginx目录结构

1.主配置文件

(1)/etc/nginx.conf

(2)/etc/nginx/conf.d/default.conf

2.代理配置文件

(1)/etc/nginx/fastcgi_params

(2)/etc/nginx/scgi_params

(3)/etc/nginx/uwsgi_params

3.编码配置文件

(1)/etc/nginx/win-utf

(2)/etc/nginx/koi-utf

(3)/etc/nginx/koi_win

(4)/etc/nginx/mime.types

4.Nginx管理命令文件

(1)/usr/sbin/nginx

(2)/usr/sbin/nginx-debug

5.Nginx日志相关文件

(1)/var/log/nginx

(2)/etc/logrotate.d/nginx

四、Nginx基本配置

1.主配置文件配置

2.Global全局模块

3.Events事件模块

4.HTTP核心模块

5.检查配置语法重启服务生效

6.核心模块的总结


一、Nginx基本概述

1.介绍

nginx是一个开源、高性能,可靠的HTTP WEB服务、代理服务

2.优点

高性能、高并发、搞扩展,高可靠、热部署、应用广泛、拥有高效网络模型

3.应用场景

(1)负载均衡

(2)代理缓存

(3)静态资源

(4)安全应用场景

4.Nginx的组成

(1)Nginx二进制可执行文件

是nginx本身的框架以及相关模块等构建的一个二进制文件,所有功能都由他提供

(2)Nginx.conf文件

功能是否开启,开之后用何种方式处理请求,就由它来决定

(3)access.log

会记录HTTP的请求信息,响应信息

(4)error.log

当出现一些不可预期的问题,这个文件可以将问题找到

二、Nginx的部署

1.安装方法

(1)源码编译

版本随意,安装复杂,升级繁琐

(2)epel仓库

版本低,安装简单,配置可读性不高

(3)官方仓库

常用方法,版本新,安装简单,配置可读性高

2.安装Nginx依赖

[root@oldxu ~] yum install -y gcc gcc-c++ autoconf pcre pcre-devel make automake httpd-tools

3.配置Nginx源

[root@oldxu ~] vim /etc/yum.repos.d/nginx.repo
 
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

4.安装Nginx服务

[root@oldxu ~] yum install nginx -y 
[root@oldxu ~] systemctl enable nginx 
[root@oldxu ~] systemctl start nginx

5.检查Nginx版本

#检查版本
nginx -v

# 检查编译参数
nginx -V

6.Nginx目录结构

rpm -ql nginx

三、Nginx目录结构

1.主配置文件

(1)/etc/nginx.conf

配置文件,nginx主配置文件

(2)/etc/nginx/conf.d/default.conf

配置文件,默认网站配置文件

2.代理配置文件

(1)/etc/nginx/fastcgi_params

配置文件,fastcgi代理配置文件

(2)/etc/nginx/scgi_params

配置文件,scgi代理配置文件

(3)/etc/nginx/uwsgi_params

配置文件,uwsgi代理配置文件

3.编码配置文件

(1)/etc/nginx/win-utf

配置文件、nginx编码转换映射文件

(2)/etc/nginx/koi-utf

配置文件、nginx编码转换映射文件

(3)/etc/nginx/koi_win

配置文件、nginx编码转换映射文件

(4)/etc/nginx/mime.types

content-Type与扩展名

4.Nginx管理命令文件

(1)/usr/sbin/nginx

命令,nginx命令行管理终端工具

(2)/usr/sbin/nginx-debug

命令,nginx命令行管理终端工具

5.Nginx日志相关文件

(1)/var/log/nginx

目录,nginx默认存在日志目录

(2)/etc/logrotate.d/nginx

配置文件,nginx默认的日志切割

四、Nginx基本配置

1.主配置文件配置

[root@oldxu ~]vim /etc/nginx/nginx.conf

#全局
user nginx;  #nginx的运行身份为nginx用户;
worker_processes 2; #启动的worker进程数量;
error_log /var/log/nginx/error.log warn;# 错误日志的路径;从warning;
pid /var/run/nginx.pid;# 存储进程的pid Number

# 4c *16GB
events {
    worker_connections 1024; # 一个worker最大连接数,worker_connections * worker_processes = 最大连接数
    use epoll; # 默认是采用epoll网络IO模型;
}

# 主要负责接受与响应http请求
http {
      include /etc/nginx/mime.types;
# 支持的类型:
      default_type application/octet-stream;

#默认类型(下载的方式)
# 1.提供下载包zip
# 2.后端并没有将代码解析成功,所以直
接成了下载;
    
#定义日志的格式
log_format main '$remote_addr
$remote_user [$time_local] "$request'
'$status
$body_bytes_sent "$http_referer"
"$http_user_agent"
"$http_x_forwarded_for"';

# 访问日志
access_log /var/log/nginx/access.log
 main;
sendfile on;

#tcp_nopush on;
keepalive_timeout 65;

#长连接超时时间;
#gzip on;
include_/etc/nginx/conf.d/*.conf;

#包含的子文件;
}
######
#一个server就是一个站点
server {
   listen 80; # 监听的端口
   server_name www.oldxu.net; #站点的域名
   location / { #uri路径匹配的
   root /usr/share/nginx/html; #root:定义网站的路径;
   index
 index.html index.htm; #index:定义默认返回的页面;
# root+index =
 /usr/share/nginx/html/index.html;
   }
}

# 一个server就是一个站点
server {
   listen 80; # 监听端口80
   server_name www.oldxu.net; #站点的域名
   location / { #uri路径匹配的
      root /usr/share/nginx/html; #root:定义网站的路径;
      index index.html index.htm;
#index:定义默认返回的页面;
# root+index
/usr/share/nginx/html/index.html;
   }
}

2.Global全局模块

user www; #Nginx进程所使用的用户
worker_processes 1; #Nginx运行的
work进程数量(建议与CPu数量一致或auto)
error_log /log/nginx/error.log #Nginx错误日志存放路径
pid /var/run/nginx.pid #Nginx服务运行后产生的pid进程号

3.Events事件模块

events {
     worker_connections 25535;#每个worker进程支持的最大连接数
     use epoll; #事件驱动模型,epol1默认
}

4.HTTP核心模块

http { #http层开始
#使用Server配置网站,每个server{}代表一个网
站(简称虚拟主机)
   'server' {
       listen 80; #监听端口,默认80
       server_name bgx.com; #提供的域名
       access_log access.log; #该网站的访问日志
       
#控制网站访问的路径
 'location' / {
        root /usr/share/nginx/html; #存放网站源代码的位置
        index index.html index.htm; #默认返回网站的文件
}
...

#第二个虚拟主机配置
   'server' {
        }
    include /etc/nginx/conf.d/*.conf;#包
含/etc/nginx/conf.d/目录下所有以.conf结尾的文件
   #include作用是:简化主配置文件写太多造成臃肿,
这样会让整体的配置文件更加的清晰。
} 
#http层结束

5.检查配置语法重启服务生效

[root@oldxu code] nginx -t
[root@oldxu code] systemctl restart nginx

6.核心模块的总结

http标签主要用来解决用户的请求与响应

server标签主要用于响应具体的某一个网站

location标签主要用于匹配网站具体URI路径

http{}下允许有多个server{},一个server{}下又允许又多个location{}

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

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

相关文章

Canal同步数据

canal同步数据 canal可以用来监控数据库数据的变化,从而获得新增数据,或者修改的数据。 canal是应阿里巴巴存在杭州和美国的双机房部署,存在跨机房同步的业务需求而提出的。 阿里系公司开始逐步的尝试基于数据库的日志解析,获取…

(9)Qt中信号与槽重载的解决方案

信号与槽重载的解决方案 一、通过函数指针解决 //信号 void (Me::*funchungury)() &Me::hungury; void (Me::*funchungury_QString)(QString) &Me::hungury; //槽 void (Me::*funceat)() &Me::eat; void (Me::*funceat_QString)(QString) &Me::eat;//有参…

Oracle与MySQL语法转换

前言 Oracle与MySQL语法转换 场景:系统改造,需要由Oracle切换为MySQL,因而要对代码中的Oracle语法的sql调整为MySQL语法 博客地址:芒果橙的个人博客 【http://mangocheng.com】 sysdate–当前日期 Oracle 使用sysdate select s…

hdl_graph_slam代码解析

hdl SLAM和定位的关系:HDL和cartographer一样,是离线建图的 整个SLAM系统的架构 包含四个节点: 预处理、 帧匹配、hdl_slam、地面检测 输入点云首先经过预处理进行降采样,然后传给下一个节点。帧匹配通过迭代获取两帧之间运动变化…

【SpringCloud01】微服务架构入门

1.微服务架构理论入门 SpringCloud微服务 2.Boot和Cloud版本选型 上篇:SpringBoot2.X版和SpringCloud H版 下篇:SpringCloud Alibaba 官网强烈推荐SpringBoot2.0以上的版本 Cloud与Boot之间的版本关系 技术选型相关的网站使用在线解析json字符串 由于…

第2章 马尔可夫决策过程

2.1 马尔可夫决策过程(上) Markov Decision Process(MDP) Markov Decision Process can model a lot of real-world problem. It formally describes the framework of reinforcement learningUnder MDP, the environment is ful…

Promise 实现 (从简易版到符合Promise A+规范)

前言 手写 Promise 是面试的时候大家都逃避的送命题,在学些了解后发现通过实现源码更能将新一代的异步方案理解的通透,知其然知其所以然的运用。 如果直接将源码贴到此处势必不能有更大的收获,下面就按实现版本来看做简要分析。 回顾 Prom…

SpringBoot测试类编写

前置要求: a.测试类上需要的注解 SpringBootTest AutoConfigureMockMvc Slf4j b.引入MockMvc类 Autowired private MockMvc mockMvc; c.如果需要前置条件可以用before注解 1.get/delete请求 // 查询Testvoid testQuery() throws Exception {String content mockMvc.perfor…

Django(15):身份和权限认证

目录1.Django中的身份认证模块1.1 用户模型1.2 认证模块1.3 项目搭建演示2.权限管理架构2.1 权限相关数据模型2.2 权限相关功能函数2.3 权限分配函数2.4 权限设置3.资源访问管理1.Django中的身份认证模块 1.1 用户模型 Django中有内建的用户模块django.contrib.auth.models.U…

2022 CNCC 中国计算机大会参会总结

前言 第 19 届 CNCC 于2022年12月8-10日召开,本届大会为期三天,首次采取全线上举办形式,主题为“算力、数据、生态”,重点在保持多样性、聚焦热点前沿话题、平衡学术界和产业界参与等维度展开讨论。大会由CCF会士、中国科学院院士…

【SpringBoot】一文带你入门SpringBoot

✅作者简介:热爱Java后端开发的一名学习者,大家可以跟我一起讨论各种问题喔。 🍎个人主页:Hhzzy99 🍊个人信条:坚持就是胜利! 💞当前专栏:【Spring】 🥭本文内…

【职场进阶】做好项目管理,先从明确职责开始

优秀的项目管理一定是高效协调各方资源、反馈及时、调整迅速的。 同时可以做到让参与各方在整个项目过程中张弛有序、愉快合作,最终实现产品项目的效益最大化。 那什么是项目呢? 项目是为向客户提供独特的产品或服务而进行的临时性任务,项目有…

TypeScript 对象key为number时的坑

首先在js的对象中有一个设定,就是对象的key可以是字符串,也可以是数字。 不论key是字符串还是数字,遍历对象key的时候,这个key会变成字符串 通过[] 操作符访问key对应值时候,不论是数字还是字符串都转成了 字符串的k…

Chromedriver安装教程

第一步 查看你当前Chrome浏览器的版本,如下图所示: 第二步 查看当前Chrome浏览器的版本号,如下图所示,版本 108.0.5359.125(正式版本) (64 位)中的,108就是我们的版本号。 第三…

VTK-PointPlacer

前言:本博文主要研究VTK中点转换到曲面上的应用,相关的接口为vtkPolygonalSurfacePointPlacer,为深入研究将基类vtkPointPlacer开始讲解。主要应用为在PolyData表面进行画线。 vtkPointPlacer 描述:将2D display位置转换为世界坐…

ospf知识点汇总

OSPF : 开放式最短路径优先协议使用范围:IGP 协议算法特点: 链路状态型路由协议,SPF算法协议是否传递网络掩码:传递网络掩码协议封装:基于IP协议封装,协议号为 89一.OSPF 特点1.OSPF 是一种典型…

基于javaweb(springboot+mybatis)网上酒类商城项目设计和实现以及文档报告

基于javaweb(springbootmybatis)网上酒类商城项目设计和实现以及文档报告 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏…

【Linux】Linux项目自动化构建工具—make/Makefile

目录一.什么是make/MakefileMakefilemake二.Makefile逻辑1.简单依赖2.复杂依赖三.make指令1.make的使用2.clean清理3.伪目标4.make如何确定是否编译访问时间的影响修改时间的影响一.什么是make/Makefile Makefile 在Windows下,我们使用VS、VS Code这些ide编写C/C程…

MySQL的客户端/服务器架构

以我们平时使用的微信为例,它其实是由两部分组成的,一部分是客户端程序,一部分是服务器程序。客户端可能有很多种形式,比如手机APP,电脑软件或者是网页版微信,每个客户端都有一个唯一的用户名,就…

赶紧收藏 | 50个超实用微信小程序,巨好用|||内含免费配音软件

现在App太多了,想用的功能都要下载,但是手机有258g内存不允许这么放肆呀,只能挖掘不占用存的方法了,小程序就解决了这个痛,节省内存,让手机不再卡顿,打游戏也舒服.给大家整理了50个很好用的小程…