Nginx在实际使用中的常用基本配置

一、什么是Nginx

Nginx 是开源的轻量级 Web 服务器、反向代理服务器,以及负载均衡器和 HTTP 缓存器。其特点是高并发,高性能和低内存。
Nginx 专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,最大能支持 50000 个并发连接数。 Nginx 还支持热部署,它的使用特别容易,几乎可以做到 7x24 小时不间断运行。

二、Nginx 的常用功能
1、正向代理及反向代理

其主要有以下几点区别:

  • 代理对象不同。正向代理代理的是客户端,反向代理代理的是服务器。正向代理帮助客户访问其无法访问的服务器资源,反向代理帮助服务器做负载均衡,另外,由于客户端跟真实服务器不直接接触,能起到一定安全防护的作用。
  • 架设主体不同。正向代理一般是客户端架设的,比如在自己的机器上装一个代理软件,反向代理一般是服务器架设的,通常是在机器集群中部署个反向代理服务器。
  • 保护对象不同。正向代理保护对象是客户端,反向代理保护对象是原始资源服务器。
  • 作用目的不同。正向代理主要目的是解决访问限制问题,而反向代理一方面是作为负载均衡,再就是起到安全防护的作用。
2、负载均衡

Nginx提供的负载均衡策略有2种:内置策略和扩展策略。
内置策略为轮询,加权轮询,Ip hash。
扩展策略,就天马行空,只有你想不到的没有他做不到的啦。
我们日常中最常见的三种nginx的负载均衡策略应当为(轮询、权重、ip绑定)。

3、web缓存

Nginx可以对不同的文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache,主要用于对FastCGI的动态程序进行缓存。配合着第三方的ngx_cache_purge,对制定的URL缓存内容可以的进行增删管理。

三、Nginx配置文件结构

安装nginx的时候默认配置文件位置为/etc/nginx 下,默认的配置文件为nginx.conf ,nginx配置文件在/etc/nginx/nginx.conf

nginx.conf

Nginx服务器的基础配置,默认的配置也存放在nginx.conf中,它的配置文件都是以block的形式组织的,每个block一般都是以括号“{}”来表示的。主要包括全局,event,http,server等设置,event主要定义nginx的工作模式,http提供web功能,server用来设置虚拟主机,server可以存在多个。主要包含以下几个部分:

1、 全局块

主要设置一些影响 nginx 服务器整体运行的配置指令。包括运行 nginx 的用户组,进程存放,日志,配置文件等。

比如: worker_processes 1; worker_processes 值越大,可以支持的并发处理量就越多。

2、events块

events 块涉及的指令主要影响Nginx服务器与用户的网络连接。包括进程最大连接数,数据驱动模型,序列化等。

比如: worker_connections 1024; ,支持的最大连接数。

3、http块

http 块又包括 http 全局块和 server 块,是服务器配置中最频繁的部分,包括配置代理,缓存,日志,第三方模块等,可嵌套多个 server。

server块:配置虚拟主机的相关参数。

location块(URL匹配特定位置的设置):配置请求路由,以及各种页面的处理情况。

upstream(负载均衡服务器设置):指令主要用于负载均衡,设置一系列的后端服务器,upstream后的名称和后面的 proxy_pass要对应起来。

四、配置示例
#全局配置 =========================================================#指定nginx运行的用户及用户组,默认为nobody。
#user administrator administrators;  #允许生成的进程数,默认为1
#worker_processes 2;  #指定nginx进程运行文件存放地址
#pid /nginx/pid/nginx.pid;  #定位全局错误日志文件,级别。这个设置可以放入全局块,http块,server块。
#级别以此为:debug|info|notice|warn|error|crit|alert|emerg。
#debug输出最多,crir输出最少,根据实际环境而定
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#events 配置 =======================================================
events {#设置网路连接序列化,防止惊群现象发生,默认为onaccept_mutex on;   #设置一个进程是否同时接受多个网络连接,默认为offmulti_accept on;  #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport#use epoll; #最大连接数,默认为512worker_connections  1024;    
}#http 配置 =========================================================
http {#文件扩展名与文件类型映射表include       mime.types;   #默认文件类型,默认为text/plaindefault_type  application/octet-stream;#自定义格式,main为日志格式的名称,可自行设置,后面引用#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                            '$status $body_bytes_sent "$http_referer" '#                          '"$http_user_agent" "$http_x_forwarded_for"';#引用日志main格式    #access_log  logs/access.log  main; #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。sendfile on;   #连接超时时间,默认为75s,0;  无限时间,可以在http,server,location块。keepalive_timeout 65;  #开启gzip压缩gzip  on;#负载均衡服务器设置upstream mysvr {   server 127.0.0.1:7878;server 192.168.10.121:3333 backup;  #热备}#访问异常页面配置error_page 404 https://www.baidu.com; #配置虚拟主机的相关参数server {#单连接请求上限次数。keepalive_requests 120; #监听端口listen       4545;   #监听地址,可以是ip,可以是域名server_name  127.0.0.1; #设置主机基本信息,请求路由,以及各种页面的处理情况   location / {  #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。#根目录root   html; #设置默认页index  index.html index.htm; #请求转向mysvr 定义的服务器列表#proxy_pass  http://mysvr;  }}}
五、nginx http模块配置实例及日常使用命令
1、反向代理
server {listen       80;   server_name  192.168.4.32;   #监听地址location  / {       root html;  #/html目录proxy_pass http://127.0.0.1:8080;  #请求转向index  index.html index.htm;      #设置默认页       } }
2、负载均衡

在浏览器地址栏输入 http://192.168.4.32:80,平均到 5000 和 8080 端口中,实现负载均衡效果。

upstream myserver {   server 192.167.4.32:5000;server 192.168.4.32:8080;}server {listen       80;   #监听端口server_name  192.168.4.32;   #监听地址location  / {       root html;  #html目录index index.html index.htm;  #设置默认页proxy_pass  http://myserver;  #请求转向 myserver 定义的服务器列表      } }
3、Log排错

在conf中有两个log地址, 一个定义在全局块 ,一个定义在http的access.log中。

/var/log/nginx/error.log
/var/log/nginx/access.log
4、不重启的情况下加载配置

测试是否写对了:

nginx -t

不重启服务的情况下,加载新的内容:

nginx -s reload

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

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

相关文章

Linux应用开发基础知识——电阻屏和电容屏(八)

触摸屏分为电阻屏、 电容屏。电阻屏结构简单, 在以前很流行;电容屏支持 多点触摸,现在的手机基本都是使用电容屏。 注意:LCD、触摸屏不是一回事,LCD 是输出设备,触摸屏是输入设备。制作触摸 屏时特意把它的…

数据结构八种内部排序算法c++实现

文章目录 直接插入排序希尔排序冒泡排序快速排序选择排序堆排序归并排序桶排序 直接插入排序 vector<int> insertSort(vector<int> num) {int i, j, temp;for (i 1; i < num.size(); i){temp num[i];for (j i - 1; j > 0 && temp<num[j]; j-…

mysqldump常用操作示例/命令

以下是一些常用的mysqldump操作示例&#xff0c;以备份和还原MySQL数据库为例&#xff1a; 1. 备份单个数据库&#xff1a; mysqldump -u your_username -p your_password your_database > backup.sql将 your_username 替换为你的MySQL用户名&#xff0c;your_password 替…

反序列化漏洞(1), 原理, 实验, 魔术方法

反序列化漏洞(1), 原理, 实验, 魔术方法 一, 介绍 反序列化漏洞是一种存在于反序列化过程中的漏洞&#xff0c;它允许攻击者通过控制反序列化的数据来操纵序列化对象&#xff0c;并将有害数据传递给应用程序代码。 这种漏洞可能造成代码执行、获取系统权限等一系列不可控的后…

【ES6标准入门】JavaScript中的模块Module的加载实现:循环加载和Node加载,非常详细,建议收藏!!!

&#x1f601; 作者简介&#xff1a;一名大四的学生&#xff0c;致力学习前端开发技术 ⭐️个人主页&#xff1a;夜宵饽饽的主页 ❔ 系列专栏&#xff1a;JavaScript进阶指南 &#x1f450;学习格言&#xff1a;成功不是终点&#xff0c;失败也并非末日&#xff0c;最重要的是继…

IDEA写mybatis程序,java.io.IOException:Could not find resource mybatis-config.xml

找不到mybatis-config.xml 尝试maven idea:module&#xff0c;不是模块构造问题 尝试检验pom.xml&#xff0c;在编译模块添加了解析resources内容依旧不行 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.or…

chrome 浏览器个别字体模糊不清

特别是在虚拟机里&#xff0c;有些字体看不清&#xff0c;但是有些就可以&#xff0c;设置办法&#xff1a; chrome://settings/fonts 这里明显可以看到有些字体就是模糊的状态&#xff1a; 把这种模糊的字体换掉即可解决一部分问题。 另外&#xff0c;经过观察&#xff0c;…

【C++】数组中出现次数超过一半的数字

代码&#xff1a; class Solution { public:/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可** * param numbers int整型vector * return int整型*/int MoreThanHalfNum_Solution(vector<int>& numbers) {int …

h5(react ts 适配)

一、新建项目并放在码云托管 1、新建项目&#xff1a;react ts h5 考虑到这些 用 create-react-app 脚手架来搭建项目。 首先&#xff0c;确保你已经安装了 Node.js。如果没有安装&#xff0c;请先从官方网站 https://nodejs.org/ 下载并安装 Node.js。打开命令行工具&#x…

vue3 + ts项目(无vite)报错记录

记录项目创建后遇到的报错 1.类型“Window & typeof globalThis”上不存在属性“_CONFIG”。ts(2339) 问题描述&#xff1a; 使用全局 window 上自定义的属性&#xff0c;TypeScript 会报属性不存在 解决&#xff1a;需要将自定义变量扩展到全局 window 上&#xff0c…

word文档转换为ppt文件,怎么做?

大家是否会遇到需要将word文档转换为ppt文件的情况&#xff1f;除了反反复复粘贴复制以外&#xff0c;还有其他方法可以转换文件格式&#xff0c;今天给大家分享word转换ppt方法。 首先我们先将word文件打开大纲模式 然后我们将文中的大标题设置为1级标题&#xff0c;副标题设…

服务器集群配置LDAP统一认证高可用集群(配置tsl安全链接)-centos9stream-openldap2.6.2

写在前面 因之前集群为centos6&#xff0c;已经很久没升级了&#xff0c;所以这次配置统一用户认证也是伴随系统升级到centos9时一起做的配套升级。新版的openldap配置大致与老版本比较相似&#xff0c;但有些地方配置还是有变化&#xff0c;另外&#xff0c;铺天盖地的帮助文…

已安装的nginx追加ssl模块

Nginx开启SSL模块1 切换到源码包&#xff1a; cd /usr/local/src/nginx-1.11.3 2 查看nginx原有的模块 /usr/local/nginx/sbin/nginx -V 在configure arguments:后面显示的原有的configure参数如下&#xff1a; –prefix/usr/local/nginx --with-http_stub_status_module …

C/C++高频面经-秋招篇

自己在秋招找工作过程中遇到的一些C/C面试题&#xff0c;大中小厂都有&#xff0c;分享出来&#xff0c;希望能帮到有缘人。 C语言 snprintf()的使用 函数原型为int snprintf(char *str, size_t size, const char *format, …) 两点注意&#xff1a; (1) 如果格式化后的字符…

对于koa中间件的理解

洋葱模型 大家都知道koa是洋葱模型&#xff0c;先一层一层通过next往下&#xff0c;之后再回去执行next后面的内容&#xff0c;next即使没写&#xff0c;最后也会进入下一个中间件。 那么什么是ctx呢&#xff0c;ctx顾名思义就是上下文&#xff0c;也就是上一层传给下一层的东…

【广州华锐互动】消防安全宣传知识3D交互展示提升公众学习沉浸感

随着科技的快速发展&#xff0c;我们的生活与工作环境愈发复杂&#xff0c;火灾风险也随之提高。为了提高公众的消防灭火能力&#xff0c;普及消防安全知识&#xff0c;广州华锐互动开发了消防安全宣传知识3D交互展示系统。 这是一种全新的教育方式&#xff0c;它利用3D技术&am…

【EI会议征稿】第三届图像,信号处理与模式识别国际学术会议(ISPP 2024)

第三届图像&#xff0c;信号处理与模式识别国际学术会议&#xff08;ISPP 2024) 2024 3rd International Conference on Image, Signal Processing and Pattern Recognition&#xff08;ISPP 2024&#xff09; 第三届图像&#xff0c;信号处理与模式识别国际学术会议&#xf…

WPF的总体架构、类对象结构介绍

一、WPF总体结构 Windows Presentation Foundation (WPF) 是 Microsoft .NET Framework 的一部分&#xff0c;用于构建丰富的桌面应用程序。它提供了一种统一的编程模型&#xff0c;用于构建现代的用户界面。 以下是 WPF 的主要组件和其关系&#xff1a; PresentationFramewo…

Cow Lineup S——离散化、单调队列、双指针

题目描述 思路 x、id不大于1亿&#xff0c;数据量太大&#xff0c;使用离散化将id离散化成一串从1开始连续的编号&#xff0c;使用map集合进行离散化使用双指针维护一段区间&#xff0c;这段区间满足每个编号都包含 如何使用map集合进行离散化&#xff1f; 维护一个变量nums…

工业镜头中的远心镜头与普通镜头的光路

普通镜头&#xff1a; 主光线与镜头光轴有角度&#xff0c;工件上下移动时&#xff0c;像的大小有变化。 FOV&#xff1e;镜头前端直径。 物方远心镜头&#xff1a; 物方主光线平行于光轴&#xff0c;物距发生改变时&#xff0c;像高不会发生改变&#xff0c;测得的物体尺寸大…