Nginx服务配置

一、Nginx服务的主配置文件nginx.conf

vim /usr/local/nginx/conf/nginx.conf 

  1. 全局块:全局配置,对全局生效;
  2. events块:配置影响 Nginx 服务器与用户的网络连接;
  3. http块:配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置;
  4. server块:配置虚拟主机的相关参数,一个 http 块中可以有多个 server 块;
  5. location块:用于配置匹配的 uri ;
  6. upstream:配置后端服务器具体地址,负载均衡配置不可或缺的部分。

 二、配置文件

1、全局配置

vim /usr/local/nginx/conf/nginx.conf 

  1.  user nobody;                        #运行用户,若编译时未指定则默认为 nobody
  2. worker_processes 1;             #工作进程数量,一般设置为和 CPU 核数一样;设置为auto,nginx将会自己获取这个数值
  3. error_log logs/error.log;         #错误日志文件的位置
  4. pid logs/nginx.pid;                  #PID 文件的位置
  5. worker_rlimit_nofile 65535;        #指定 worker 子进程可以打开的最大文件句柄数,默认为1024

 2、I/O 事件配置

events {
    use epoll;         #使用 epoll I/O模型,2.6及以上版本的系统内核,使用epoll模型可以提高性能
    worker_connections 65535;     #每个 worker 子进程能够处理的最大并发连接数
    multi_accept on;     #是否一次性将监听到的连接全接收进来,默认为off,关闭时一次接收一条连接
    accept_mutex on;   #默认为on,开启时表示以串行方式接入新连接,否则将通报给所有worker。这可能会浪费资源并产生不可预计的后果,例如惊群问题
}

设置Nginx最大连接数

注意点:不仅要在全局配置中通过work_rlimit_nofile命令配置进程能打开的文件数,还要在I/O配置中通过worker_connections命令配置一个进程的最大连接数。

首先可以通过ulimit -a 查看系统最大能够打开的文件数量,此时为1024个

vim /etc/security/limits.conf  在其中永久配置

相关配置介绍: 

 在配置文件中加上软硬限制并重启即可

重启并查看 

 vim /usr/local/nginx/conf/nginx.conf

工作进程数×进程连接数=Nginx并发数

验证结果

 3、http配置

http {##文件扩展名与文件类型映射表include       mime.types;##默认文件类型default_type  application/octet-stream;##日志格式设定#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  logs/access.log  main;##开启高效的文件传输模式sendfile        on;##开启tcp_nopush和tcp_nodelay用于防止网络阻塞tcp_nopush     on;tcp_nodelay    on;##连接保持超时时间,单位是秒#keepalive_timeout  0;keepalive_timeout  65;##gzip模块设置,设置是否开启gzip压缩输出#gzip  on;

 4、Web 服务的监听配置
 

server {##监听地址及端口listen 80; ##站点域名,可以有多个,用空格隔开server_name www.kgc.com;##网页的默认字符集charset utf-8;##根目录配置location / {##网站根目录的位置/usr/local/nginx/htmlroot html;##默认首页文件名index index.html index.php;}##内部错误的反馈页面error_page 500 502 503 504 /50x.html;##错误页面配置location = /50x.html {root html;}}
}

5、日志格式设定:

$remote_addr与$http_x_forwarded_for用以记录客户端的ip地址;
$remote_user:用来记录客户端用户名称;
$time_local: 用来记录访问时间与时区;
$request: 用来记录请求的url与http协议;
$status: 用来记录请求状态;成功是200,
$body_bytes_sent :记录发送给客户端文件主体内容大小;
$http_referer:用来记录从哪个页面链接访问过来的;
$http_user_agent:记录客户浏览器的相关信息;
通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。

补充:location常见配置指令,root、alias、proxy_pass

 nginx 的 root 和 alias 指定路径的区别

root(根目录)
location /abc {
    root /var/www;
}
处理方式: root路径+location路径    http://192.168.80.20/abc/xy101/scj.html  -->  /var/www/abc/xy101/scj.html

alias(别名目录、虚拟目录)
location /abc {
    alias /var/www;               
}
处理方式: alias路径替换location路径  http://192.168.80.20/abc/xy101/scj.html  -->   /var/www/xy101/scj.html
 

 三、 访问状态统计与控制

查看统计配置的相关模块

cat /opt/nginx-1.22.0/auto/options | grep YES   #查看 nginx 已安装的所有模块

[root@localhost ~]# cd /opt/
[root@localhost opt]# ls
apache  nginx-1.24.0  nginx-1.24.0.tar.gz  nginx-1.26.1  nginx-1.26.1.tar.gz
[root@localhost opt]# cd nginx-1.26.1/
[root@localhost nginx-1.26.1]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  Makefile  man  objs  README  src
[root@localhost nginx-1.26.1]# cd auto/
[root@localhost auto]# ls
cc      endianness  have          headers  init     lib   module   nohave   os       stubs    threads  unix
define  feature     have_headers  include  install  make  modules  options  sources  summary  types
[root@localhost auto]# cat options | grep YES

 修改主配置文件,添加访问状态统计模块

  1. cd /usr/local/nginx/conf

  2. cp nginx.conf nginx.conf.bak

vim /usr/local/nginx/conf/nginx.conf 

  server {listen       80;server_name  www.yang.com;charset utf-8;#access_log  logs/host.access.log  main;location / {root   html;index  index.html index.htm;}location /status {stub_status on;access_log off;}

重启nginx服务,访问测试

基于授权的访问控制

1、生成用户密码认证文件 

yum install -y httpd-tools
htpasswd -c /usr/local/nginx/passwd.db zhangsan
chown nginx /usr/local/nginx/passwd.db
chmod 400 /usr/local/nginx/passwd.db

2  、修改主配置

vim /usr/local/nginx/conf/nginx.confserver {location / {......##添加认证配置##auth_basic "secret";				#设置密码提示框文字信息auth_basic_user_file /usr/local/nginx/passwd.db;}}

基于客户端的访问控制

访问控制规则如下:

deny IP/IP 段:拒绝某个 IP 或 IP 段的客户端访问。
allow IP/IP 段:允许某个 IP 或 IP 段的客户端访问。
规则从上往下执行,如匹配则停止,不再往下匹配。

vim /usr/local/nginx/conf/nginx.conf
......server {location / {......##添加控制规则##allow 192.168.73.105;                     #允许访问的客户端 IPdeny all;                                #拒绝其它IP客户端访问}}

四、Nginx的虚拟主机设置

1、基于域名的虚拟主机 

server {
    server_name XXX;         #指定不同的域名
}

2、 基于IP的虚拟主机

server {
    listen  <IP>:端口;       #指定不同的IP
}

3、基于端口的虚拟主机

server {
    listen   IP:<端口>;      #指定不同的端口
}

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

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

相关文章

C语言怎样初始化图形模式?

一、问题 在C语⾔中&#xff0c;initgraph( ) 函数⽤于初始化图形模式。初始化时&#xff0c;那么多参数都是⼲什么的&#xff1f;怎样设置&#xff1f; 二、解答 initgraph( ) 函数⽤于初始化图形模式&#xff0c;其语法格式如下。 void far initgraph(int far * gdriver, i…

Nginx学习笔记(十)如何配置HTTPS协议?(公网)

目录 一、简介二、SSL 证书类型介绍三、公网 SSL 证书3.1 证书管理工具3.2 下载安装 acme.sh3.3 申请并下载证书报错1&#xff1a;没有指定账号报错2&#xff1a;DNS无法解析的域名报错3&#xff1a;无效的响应 404 3.4 配置 Nginx3.5 证书过期刷新 四、补充4.1 同一域名的不同…

局域网测速

对于网管来说&#xff0c;企业局域网络的速度是知道的&#xff0c;因为网管清楚企业局域网络的拓扑结构、网络链路、网络设备以及实际到桌面的情况。 有时候即使千兆到桌面实际因为影响的因素多&#xff0c;实际的网络速度可能会打一定的折扣&#xff0c;那么就需要清楚实际的网…

【数学建模】微分方程的数值求解

微分方程的数值求解 一阶差分求解微分方程原理:四阶龙格-库塔方法应用:小船渡河问题: 进阶求二阶微分方程 一阶差分求解微分方程原理: d y d x f ( x n , y n ) \dfrac{dy}{dx}f(x_n,y_n) dxdy​f(xn​,yn​) y n 1 − y n x n 1 − x n f ( x n , y n ) \dfrac{y_{n1}-y_n…

VMware导入vmdk文件(亲测有效)

场景&#xff1a;从别的地方拷贝了一个系统镜像&#xff0c;实际测试案例是从vulnhub下载的Kioptix Level #4靶场解压缩以后的文件是【Kioptrix4_vmware.vmdk】后缀为名为vmdx,使用常规的方式【文件-----打开】的方式&#xff0c;不能导入虚拟机&#xff0c;现在演示如何导入到…

Java——类和对象

在Java中&#xff0c;类与对象是面向对象编程&#xff08;OOP&#xff09;的核心概念。那面向对象又是什么呢。 一、面向对象和面向过程 1、面向对象 面向对象&#xff08;Object-oriented&#xff09;是一种程序设计的方法和编程范式&#xff0c;它以对象作为程序的基本单位…

matlab 异常值检测与处理——Z-score法

目录 一、算法原理1、算法概述2、主要函数3、参考文献二、代码实现三、结果展示四、相关链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 1、算法概述 使用Z分数法,可以找出距离平均值有多少个标准差值…

品牌渠道健康发展的关键与方法

一个品牌的渠道健康与否对其长期发展至关重要。品牌虽多&#xff0c;但并非所有产品都能成为品牌&#xff0c;创建品牌需大量精力&#xff0c;而让品牌长久健康发展则需多方面努力。 力维网络服务众多知名品牌&#xff0c;总结出一些渠道治理方法供品牌参考。首先&#xff0c;管…

前端JS必用工具【js-tool-big-box】学习,获取当前浏览器向上滚动还是向下滚动,获取当前距离顶部和底部的距离

这一小节&#xff0c;我们说一下 js-tool-big-box 添加的最新工具方法&#xff0c;在日常前端开发工作中&#xff0c;如果网页很长&#xff0c;我们就需要获取当前浏览器是在向上滚动&#xff0c;还是向下滚动。如果向上滚动&#xff0c;滚动到0的时候呢&#xff0c;需要做一些…

【Mongodb】Mongodb亿级数据性能测试和压测

一&#xff0c;mongodb数据性能测试 如需转载&#xff0c;请标明出处&#xff1a;https://zhenghuisheng.blog.csdn.net/article/details/139505973 mongodb数据性能测试 一&#xff0c;mongodb数据性能测试1&#xff0c;mongodb数据库创建和索引设置2&#xff0c;线程池批量…

React+TS前台项目实战(六)-- 全局常用组件Button封装

文章目录 前言Button组件1. 功能分析2. 代码注释说明3. 使用方式4. 效果展示 总结 前言 今天这篇主要讲全局按钮组件封装&#xff0c;可根据UI设计师要求自定义修改。 Button组件 1. 功能分析 &#xff08;1&#xff09;可以通过className属性自定义按钮样式&#xff0c;传递…

【计算机网络基础】OSI七层网络模型 TCPIP四层网络模型

文章目录 ISO介绍网络模型介绍OSI七层模型OSI七层模型介绍OSI七层特点一、TCP/IP四层模型介绍二、TCP/IP四层模型TCP/IP协议簇一次C/S通信 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f388;欢迎踏入我的博客世界&#xff0c;能与您在此邂逅&#xff0c;真是缘分…

校验参数个数工具类

项目中有个需求&#xff1a;前后端参数一致性校验&#xff0c;在某业务场景下后端代码需要校验参数个数&#xff0c;因此设计了1个工具类方便大伙使用&#xff0c;特此简单记录下。 校验参数个数工具类 一、校验工具类CheckNumInsideParamters二、单元测试ParameterSizeTest三…

从零手写实现 nginx-17-nginx.conf 全局的默认配置

前言 大家好&#xff0c;我是老马。很高兴遇到你。 我们为 java 开发者实现了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何处理的&#xff0c;可以参考我的另一个项目&#xff1a; 手写从零实现简易版 tomcat minicat 手写 nginx 系列 …

哪里有宣传海报制作模板?盘点可以套用的海报软件

不论是精心筹备的盛会、充满爱意的婚礼仪式&#xff0c;还是家庭聚会的温馨时光&#xff0c;一份设计精巧的邀请函都是主人诚挚邀请的最好证明。它不仅传递着邀请&#xff0c;更承载着对宾客的尊重与期待。但你知道在哪里可以找到那些让人眼前一亮的邀请函海报制作模板吗&#…

Simscape Multibody与RigidBodyTree:机器人建模

RigidBodyTree&#xff1a;主要用于表示机器人刚体结构的动力学模型&#xff0c;重点关注机器人的几何结构、质量和力矩&#xff0c;以及它们如何随时间变化。它通常用于计算机器人的运动和受力情况。Simscape Multibody&#xff1a;作为Simscape的一个子模块&#xff0c;专门用…

ICRA 2024:北京工业大学马楠教授联合中科原动力公司推出番茄采摘自主机器人AHPPEBot,实现32.46秒快速准确采摘

当前&#xff0c;农业生产正深受劳动力短缺困扰&#xff0c;这一现状对生产规模的进一步拓展构成了严重制约。为了突破这一瓶颈&#xff0c;实施自动化已成为提升农业生产力的关键途径&#xff0c;这也使得机器人采收技术备受关注。 现今的机器人采收系统普遍采用先进感知方法&…

Android面试题之说说系统的启动流程(总结)

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 启动流程 Boot Rom -> Boot Loader -> Kernel -> 启动Init进程 -> Zygote进程 -> system_server进程 -> 启动AMS、WMS、PMS…

linux 服务器上离线安装 node nvm

因为是离线环境 如果你是可以访问外网的 下面内容仅供参考 也可以继续按步骤来 node 安装路径 Node.js — Download Node.js nvm 安装路径 Tags nvm-sh/nvm GitHub 后来发现 nvm安装后 nvm use 版本号 报错 让我去nvm install 版本 我是内网环境 install不了 下面 你要 把安…

Nginx 配置防护 缓慢的 HTTP拒绝服务攻击+点击劫持:X-Frame-Options未配置

一 安全团队检测网站 1 检测到目标主机可能存在缓慢的HTTP拒绝服务攻击 缓慢的HTTP拒绝服务攻击是一种专门针对于Web的应用层拒绝服务攻击&#xff0c;攻击者操纵网络,对目标Web服务器进行海量HTTP请求攻击&#xff0c;直到服务器带宽被打满&#xff0c;造成了拒绝服务。 慢…