网站后台网址忘记了 php/营销案例分析报告模板
Nginx
- Nginx
- Nginx可以从事的用途
- Nginx安装
- Nginx自带常用命令
- Nginx启动
- Nginx停止
- Nginx重启
- Nginx配置概要
- 第一部分:全局块
- 第二部分:events 块:
- 第三部分:http块:
Nginx
Nginx是一个高性能的http和反向代理服务器,其特点是占用内存小,并发能力强。Nginx专为性能优化而开发,性能是其最重要的考量,能经受高负载的考验,有报告表明能支持高达50000个并发连接数。
Nginx可以从事的用途
web服务器:提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL。
反向代理
正向代理:在浏览器中配置代理服务器,通过代理服务器进行互联网访问。
反向代理:将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴漏的是代理服务器地址。
负载均衡
如果请求数过大,单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器的情况改为请求分发到多个服务器上,就是负载均衡。
Nginx安装
CentOS
yum install -y nginx
Ubuntu
apt-get install -y nginx
当终端显示出Complete!字样时,则代表Nginx已经安装成功了。
Docker 方式安装(linux通用,需要提前安装docker):
docker container run \--rm \--name mynginx \--volume "$PWD/html":/usr/share/nginx/html \ --volume "$PWD/conf":/etc/nginx \-p 80:80 \-d \nginx
以上参数含义:
-d:在后台运行
-p :容器的80端口映射到本地80端口,格式为本地端口:容器端口
--rm:容器停止运行后,自动删除容器文件
--name:容器的名字为mynginx
--volume "$PWD/conf":/etc/nginx 表示把容器的配置目录/etc/nginx,映射到本地的conf子目录。
Nginx自带常用命令
nginx -s stop 快速关闭Nginx,可能不保存相关信息,并迅速终止web服务。
nginx -s quit 平稳关闭Nginx,保存相关信息,有安排的结束web服务。
nginx -s reload 因改变了Nginx相关配置,需要重新加载配置而重载。
nginx -s reopen 重新打开日志文件。
nginx -c filename 为 Nginx 指定一个配置文件,来代替缺省的。
nginx -t 不运行,仅仅测试配置文件。nginx 将检查配置文件的语法的正确性,并尝试打开
配置文件中所引用到的文件。
nginx -v 显示 nginx 的版本。
nginx -V 显示 nginx 的版本,编译器版本和配置参数。
Nginx启动
查看Nginx服务状态
systemctl status nginx
执行该命令后,可以看到,初始状态,Nginx是未启动的
在centos7+ 启动Nginx服务
systemctl start nginx
centos6+ 上启动Nginx服务
service nginx start
或者是直接输入命令
nginx
Nginx服务开启后,默认使用的是80端口,如需要修改,可在配置文件中自定义配置
Nginx停止
在centos7+ 停止Nginx服务
systemctl stop nginx
centos6+ 上停止Nginx服务
service nginx stop
使用Nginx命令停止服务
nginx -s stop 快速关闭Nginx,可能不保存相关信息,并迅速终止web服务。nginx -s quit 平稳关闭Nginx,保存相关信息,有安排的结束web服务。
Nginx重启
修改了Nginx的某些配置,为了使配置生效,往往需要重启Nginx
在centos7+ 重启Nginx服务
systemctl restart nginx
centos6+ 上重启Nginx服务
service nginx restart
使用Nginx命令重启服务
nginx -s reload 因改变了Nginx相关配置,需要重新加载配置而重载。
具体使用nginx原生命令操作还是linux提供的systemctl ,这个主要看个人喜好,实际两者的功能是差不多的,并没有什么明显的不同
Nginx配置概要
nginx本身作为一个完成度非常高的负载均衡框架,和很多成熟的开源框架一样,大多数功能都可以通过修改配置文件来完成,使用者只需要简单修改一下nginx配置文件,便可以非常轻松的实现比如反向代理,负载均衡这些常用的功能,同样的,和其他开源框架比如tomcat一样,nginx配置文件也遵循着相应的格式规范,并不能一顿乱配,在了解如何使用nginx实现反向代理,负载均衡等这些功能的配置前,需要先了解一下nginx配置文件的结构
既然要了解nginx的配置文件,需知道nginx配置文件所在位置,nginx配置文件默认都放在nginx安装路径下的conf目录,而主配置文件nginx.conf自然也在这里面
如果不知道nginx装哪了,可以运行nginx -t
命令,下面除了给出nginx配置文件是否OK外,同时也包括了配置文件的路径。
[root@localhost ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
配置文件位置:
/etc/nginx/nginx.conf # 主配置文件
/etc/nginx/conf.d/*.conf # 次配置文件
/etc/nginx/default.d/*.conf # 次配置文件
nginx配置文件不一定只有主配置文件一个,还可能在/etc/nginx/conf.d/
和/etc/nginx/default.d
目录下会有其他的次配置文件
使用 cat 命令或 vim 命令查看主配置文件:cat /etc/nginx/nginx.conf
,不同版本的配置文件可能稍有不同
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;events {worker_connections 1024;
}http {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;tcp_nodelay on;keepalive_timeout 65;types_hash_max_size 4096;include /etc/nginx/mime.types;default_type application/octet-stream;# Load modular configuration files from the /etc/nginx/conf.d directory.# See http://nginx.org/en/docs/ngx_core_module.html#include# for more information.include /etc/nginx/conf.d/*.conf;server {listen 80;listen [::]:80;server_name _;root /usr/share/nginx/html;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;error_page 404 /404.html;location = /404.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}
从include /usr/share/nginx/modules/*.conf
、 include /etc/nginx/conf.d/*.conf
和 include /etc/nginx/default.d/*.conf
这几行带include
的代码中可以得知一些次配置文件所在的位置。可以发现,这几块次配置文件所处的作用域不同
按照功能划分,我们通常将nginx配置文件分为三大块,全局块,events块,http块。
# 全局块
...
# events块
events { ...
}
# http块
http
{# http全局块... # 虚拟主机server块server { # server全局块... # location块location [PATTERN] {...}location [PATTERN] {...}}server{...}# http全局块...
}
第一部分:全局块
首先映入眼帘的这一堆:
user nginx; # 用户(组)
worker_processes auto; # 工作的进程以及允许生成的 worker process 数
error_log /var/log/nginx/error.log; # 错误日志存放的路径
pid /run/nginx.pid; # 进程 PID# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf; # 配置文件的引入
称之为全局块,这里主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配 置运行 Nginx 服务器的用户(组)、工作的进程以及允许生成的 worker process 数,进程 PID 、存放路径、日志存放路径和类型以及配置文件的引入等。
比如 worker_processes auto
; 这一行,worker_processes 值越大,nginx可支持的并发数量就越多,很多人想这不就爽了吗,我设置成正无穷,无限并发flag达成,秒杀问题轻松解决,这个,受自己服务器硬件限制的,不能乱来。设置auto表示会自动根据当前cpu的核心数来分配worker,规则是1个核心1个worker.
第二部分:events 块:
events {worker_connections 1024;
}
这一堆,就是我们配置文件的第二部分,events 块
events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 work process 可以同时支持的最大连接数等
第三部分:http块:
http {# 日志的格式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;tcp_nodelay on;keepalive_timeout 65; # 超时时间限制types_hash_max_size 4096; # hash字节块的最大值# 引入的多媒体类型include /etc/nginx/mime.types;default_type application/octet-stream;# Load modular configuration files from the /etc/nginx/conf.d directory.# See http://nginx.org/en/docs/ngx_core_module.html#include# for more information.include /etc/nginx/conf.d/*.conf;# server块server {# listen监听指令listen 80;listen [::]:80;server_name _;# 静态文件所在的根目录root /usr/share/nginx/html;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;error_page 404 /404.html;location = /404.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}
http是一个大块,里面也可以包括很多小块,比如http全局块,server块等。
http全局块 配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。
而http块中的server块则相当于一个虚拟主机,一个http块可以拥有多个server块。
server块 又包括全局server块,和location块。
全局server块主要包括了本虚拟机主机的监听配置和本虚拟主机的名称或 IP 配置
location块则用来对虚拟主机名称之外的字符串进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。比如对/usl
相关的请求交给8080来处理,/admin
则较给8081处理。
相关文章:

Nginx
NginxNginxNginx可以从事的用途Nginx安装Nginx自带常用命令Nginx启动Nginx停止Nginx重启Nginx配置概要第一部分:全局块第二部分:events 块:第三部分:http块:Nginx Nginx是一个高性能的http和反向代理服务器࿰…...

2049. 统计最高分的节点数目
2049. 统计最高分的节点数目题目算法设计:深度优先搜索题目 传送门:https://leetcode.cn/problems/count-nodes-with-the-highest-score/ 算法设计:深度优先搜索 这题的核心是计算分数。 一个节点的分数 左子树节点数 右子树节点数 除自…...

Docker 架构简介
Docker 架构 Docker 包括三个基本概念: 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。容器&am…...

玄子Share-BCSP助学手册-JAVA开发
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b2gPyAnt-1676810001349)(./assets/%E7%8E%84%E5%AD%90Share%E4%B8%89%E7%89%88.jpg)] 玄子Share-BCSP助学手册-JAVA开发 前言: 此文为玄子,复习BCSP一二期后整理的文章&#x…...

利用React实现多个场景下的鼠标跟随框提示框
前言 鼠标跟随框的作用如下图所示,可以在前端页面上,为我们后续的鼠标操作进行提示说明,提升用户的体验。本文将通过多种方式去实现,从而满足不同场景下的需求。 实现原理 实现鼠标跟随框的原理很简单,就是监听鼠标在…...

【安全知识】——如何绕过cdn获取真实ip
作者名:白昼安全主页面链接: 主页传送门创作初心: 以后赚大钱座右铭: 不要让时代的悲哀成为你的悲哀专研方向: web安全,后渗透技术每日鸡汤: 现在的样子是你想要的吗?cdn简单来说就是…...

JavaScript内存泄露和垃圾回收机制
1、是什么?内存泄露(Memory leak)是在计算机科学中,由于疏忽或错误造成程序未能释放已经不再使用的内存。并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内…...

Kubernetes02:知识图谱
Kubernetes01:知识图谱 MESOS APACHE 分布式资源管理框架 2019-5 Twitter 》 Kubernetes Docker Swarm 2019-07 阿里云宣布 Docker Swarm 剔除 Kubernetes Google 10年容器化基础架构 borg Go语言 Borg 特点 轻量级:消耗资源小 开源 弹性伸缩 负载均…...

nginx-服务器banner泄漏风险
http { server_tokens off; # 隐藏Nginx版本号 .... }...

GCC 同名符号冲突解决办法
一、绪论 作为 C/C 的开发者,大多数都会清楚课本上动态库以及静态库的优缺点,在教科书上谈及到动态库的一个优点是可以节约磁盘和内存的空间,多个可执行程序通过动态库加载的方式共用一段代码段 ;而时至今日,再看看上…...

下一代视频编码技术2023
下一代视频编码技术 下面将从这两个角度来介绍华为云视频在下一代视频编码技术上的一些工作。这些技术得益于华为2012 媒体技术院全力支持。 2.1 下一代视频编码标准技术 从上图可以看出,下一代的视频编码标准大概分为三个阵营或者三个类型: 国际标准…...

最新最全中小微企业研究数据:海量创业公司信息与获取投资信息(1985-2021年)
一、企业获取投资名单&资方信息 数据来源:搜企网、企查查、天眼查 时间跨度:1985年8月-2021年9月 区域范围:全国范围 数据字段:企业名称、时间、获得投资金额以及投资方信息 部分数据: DateCompany_nameUnit…...

springboot数据源浅析
DataSourceAutoConfiguration分析 SpringBoot有一个自动配置DataSourceAutoConfiguration 为数据源配置 /META-INF/spring.factories文件找到DataSourceAutoConfiguration配置类 一、先来看下DataSourceAutoConfiguration配置类生效的时机,观察源码发现 Configura…...

2022黑马Redis跟学笔记.实战篇(七)
2022黑马Redis跟学笔记.实战篇 七4.11.附近的店铺功能4.11.1. GEO数据结构的基本用法1. 附近商户-导入店铺数据到GEO4.11.2. 获取附近的店铺1. 附近商户-实现附近商户功能4.9. 签到功能4.9.1.BitMap原理1. 用户签到-BitMap功能演示4.9.2.实现签到功能4.9.3.实现补签功能4.9.4.统…...

QT mp3音乐播放器实现框架,Qt鼠标事件,网络编程,QSqlite,Json解析,HTTP请求等
QT mp3音乐播放器实现框架,Qt鼠标事件,网络编程,QSqlite,Json解析,HTTP请求等框架搭建UI设计mp3.hmp3.cpp隐藏窗口标题 最大化 最小化 关闭框架搭建 .pro添加 # 网络 添加多媒体 数据库 QT network multimedia sql添加头…...

硬件学习 软件Cadence day04 PCB 封装绘制
1.文章内容: 1. 贴片式电容 PCB 封装绘制 (型号 c0603 ) 2. 贴片式电阻 PCB 封装绘制 (型号 r0603 ) 3. 安规式电容 PCB 封装绘制 (这个就是 有一个电容,插入一个搞好的孔里面 …...

【Java】yield()和join()区别
一、java 线程调度的背景 java虚拟机要求在多线程中实现 preemptive和priority-based调度,这意味着java中每一个线程被分配了特定的优先级,正整数在定义好的范围内不断减。优先级可以通过开发者改变但是java虚拟机从不改变线程的优先级,即使…...

【MySQL】Java连接MySQL数据库(封装版只需会MySQL)
一、准备普通项目如果创建的是普通的Java项目,我们需要去maven仓库下载jdbc驱动包然导入项目中就能使用,具体步骤详见MySQL数据库之Java中如何使用数据库【JDBC编程】maven项目如果创建的项目是maven项目,我们只需在pom.xml文件里引入一组依赖…...

【java基础】运算符
运算符 operator 运算符优先级 Operators 操作员Precedence 优先级postfix 后缀expr expr--unary 一元的expr --expr expr -expr ~ !multiplicative 〔数〕乘法的 / %additive 添加剂 -shift 移动<< >> >>>relational 关系的< > < > insta…...

带噪学习-概述
在实际应用的时候,我们的样本不会是完全干净的,即存在噪声样本。那使用存在噪声的样本时,我们如何更有效的进行模型学习呢?Label Dependent Nose样本选择(Sample Selection)第一种很直接的想法,…...

Scratch少儿编程案例-多彩打地鼠
专栏分享 点击跳转=>Unity3D特效百例点击跳转=>案例项目实战源码点击跳转=>游戏脚本-辅助自动化点击跳转=>Android控件全解手册点击跳转=>Scratch编程案例👉关于作者...

为什么拔掉计算机网线还能ping通127.0.0.1?
前言 当我们在计算机上拔掉网线之后,发现我们仍然可以使用ping命令来ping通本机的IP地址127.0.0.1,这让很多人感到困惑,认为拔掉网线后计算机就无法与外界通信了,为什么还能ping通本机的IP地址呢? 本文的目的是通过对…...

Android kotlin 内、外部存储根目录及测试(可以实现仿微信未读消息数提示数字)
<<返回总目录 文章目录 一、内部存储与外部存储三、外部存储的写读测试(可以实现仿微信未读消息数提示数字)一、内部存储与外部存储 所有Android设备都有两个文件存储区域:内部存储空间(internal Storage)和外部存储空间(external Storage)。所以,Android系统从逻…...

Android 7.0 OTA升级(高通)
文章目录1. Full OTA 方式升级介绍1.1 Full OTA 制作第一步:生成 msm89xx-target_files-eng.XXX.zip1.2 Full OTA 制作第二步:Modem 等非 HLOS 加入升级包的方法1.3 Full OTA 制作第三步:生成 update.zip 升级包2. Incremental OTA 方式升级介…...

工作负载之DeployMent
DeployMent 无状态工作负载(Deployment):即kubernetes中的“Deployment”,无状态工作负载支持弹性伸缩与滚动升级,适用于实例完全独立、功能相同的场景,如:nginx、wordpress等。 也是公司中应…...

淘宝tmall页面数据获取,API接口对接程序
item_get-获得淘宝商品详情请求参数请求参数:num_iid652874751412&is_promotion1参数说明:num_iid:淘宝商品IDis_promotion:是否获取取促销价响应参数Version: Date:2022-04-04名称类型必须示例值描述itemitem[]1宝贝详情数据num_iidBigint152081325…...

基于粒子群优化算法的电动汽车充放电V2G研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

java并发编程原理2 (AQS, ReentrantLock,线程池)
一、AQS: 1.1 AQS是什么? AQS就是一个抽象队列同步器,abstract queued sychronizer,本质就是一个抽象类。 AQS中有一个核心属性state,其次还有一个双向链表以及一个单项链表。 首先state是基于volatile修饰&#x…...

研报精选230219
目录 【行业230219山西证券】煤炭行业周报:复工改善,港口价格企稳反弹【行业230219中航证券】农林牧渔行业周观点:一号文件落地,生物育种超势不改【行业230219华西证券】汽车行业周报:新车密集上市 自主转型提速【个股…...

【PPPoE】PPPoE拨号流程
简介 PPPoE(Point-to-Point Protocol over Ethernet)是一种在以太网上封装PPP协议的方式,常用于在宽带接入中进行拨号。 PPPoE的拨号原理如下: 客户端发起PPPoE Active Discovery Initiation (PADI)报文,广播到网络…...