Nginx服务的主配置文件及配置举例

Nginx服务的主配置文件

    • 安装Nginx
    • 认识Nginx服务
      • 全局配置
      • I/O 事件配置
      • HTTP 配置
      • 日志格式设定
    • 访问状态统计配置
      • 查看Nginx已安装模块
      • 修改 nginx.conf 配置文件
      • 重启服务,访问测试
    • 基于授权的访问控制
      • 准备用户密码认证文件
      • 修改 nginx.conf 配置文件
      • 重启服务,访问测试
    • 基于客户端的访问控制
      • 访问控制规则
      • 示例
        • 修改 nginx.conf 配置文件
        • 重启服务,访问测试
      • 访问控制注意事项
    • Nginx虚拟主机
      • 准备工作
        • 为虚拟主机准备网页文档
      • 基于域名的 Nginx 虚拟主机
        • 为虚拟主机提供域名解析
        • 修改Nginx的配置文件
        • 重启服务,访问测试
      • 基于IP 的 Nginx 虚拟主机
        • 新增网卡配置
        • 修改Nginx的配置文件
        • 重启服务,访问测试
      • 基于端口的 Nginx 虚拟主机
        • 修改Nginx的配置文件
        • 重启服务,访问测试

安装Nginx

链接: 安装Nginx

安装Nginx服务请转移到上文博客

认识Nginx服务

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

配置文件位置
/usr/local/nginx/conf/nginx.conf

全局配置

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

在这里插入图片描述

默认全局配置

I/O 事件配置

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。这可能会浪费资源并产生不可预计的后果,例如惊群问题
}

#如提高每个进程的连接数还需执行“ulimit -HSn 65535”命令临时修改本地每个进程可以同时打开的最大文件数。
#在Linux平台上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。
#可使用ulimit -a命令查看系统允许当前用户进程打开的文件数限制。
#epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著的减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。
#worker_processes的值和work_connections的值决定了最大并发数量,最大并发数计算方式为:worker_processesworker_connections。但在反向代理场景中计算方法不同,因为nginx既要维持和客户端的连接,又要维持和后端服务器的连接,因此处理一次连接要占用2个连接,所以最大并发数计算方式为:worker_processesworker_connections/2。

在这里插入图片描述

默认I/O 事件配置

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;##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;}}
}

日志格式设定

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

location常见配置指令,root、alias、proxy_pass
root(根路径配置,可以写在 http、server、location 等配置中):root /var/www/html
请求www.kgc.com/test/1.html,会返回文件/var/www/html/test/1.html

alias(别名配置,只能写在 location 中):alias /var/www/html/ 注:使用 alias 末尾要添加 /
请求www.kgc.com/test/1.html,会返回文件/var/www/html/1.html

proxy_pass(反向代理配置)

在这里插入图片描述

默认HTTP事件配置

访问状态统计配置

查看Nginx已安装模块

查看已安装的 Nginx 是否包含HTTP_STUB_STATUS 模块

cat /opt/nginx-1.12.0/auto/options | grep YES     #可查看 nginx 已安装的所有模块/usr/local/nginx/sbin/nginx -V 查看已安装的模块

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改 nginx.conf 配置文件

cd /usr/local/nginx/confcp nginx.conf nginx.conf.bak		#备份原来的配置文件vim /usr/local/nginx/conf/nginx.confhttp {......server {listen 80;server_name www.kgc.com;charset utf-8;location / {root html;index index.html index.php;}##添加 stub_status 配置##location /status { 					#访问位置为/statusstub_status on; 				#打开状态统计功能access_log off; 				#关闭此位置的日志记录}}}

在这里插入图片描述
在这里插入图片描述

重启服务,访问测试

nginx -t		#检查配置文件是否配置正确
systemctl restart nginx

在这里插入图片描述
在这里插入图片描述

浏览器访问 http:///status

在这里插入图片描述

Active connections:表示当前的活动连接数,即当前与 Nginx 服务器建立的连接数。
server accepts handled requests :表示已经处理的连接信息
三个数字依次表示服务器已接收的连接数;服务器成功处理的连接数;服务器累计处理的总请求数(在保持连接模式下,请求数量可能会大于连接数量)
Reading:表示当前正在从客户端读取数据的连接数。
Writing:表示当前正在向客户端写入数据的连接数。
Waiting:表示当前空闲并等待请求的连接数。

可 curl -Ls http://192.168.80.10/status 结合 awk与if 语句进行性能监控。

基于授权的访问控制

准备用户密码认证文件

yum install -y httpd-tools	#下载安装httpd-toolshtpasswd -c /usr/local/nginx/passwd.db wl	#创建文件并在文件内创建用户wlchown nginx /usr/local/nginx/passwd.db	#更改文件拥有者chmod 400 /usr/local/nginx/passwd.db	#更改用户访问权限

在这里插入图片描述
在这里插入图片描述

修改 nginx.conf 配置文件

vim /usr/local/nginx/conf/nginx.conf
####只对访问状态统计站点生效......server {location /status {......##添加认证配置##auth_basic "secret";				#设置密码提示框文字信息auth_basic_user_file /usr/local/nginx/passwd.db;}}

在这里插入图片描述
在这里插入图片描述

重启服务,访问测试

nginx -t		#检查配置文件是否配置正确
systemctl restart nginx

在这里插入图片描述
浏览器访问 http:///status
输入刚刚创建的用户和密码,才可以继续访问
在这里插入图片描述

如需要再次测试,请提前清楚浏览器访问数据

基于客户端的访问控制

访问控制规则

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

示例

除本机外其他地址均拒绝访问 “status” 站点

修改 nginx.conf 配置文件
vim /usr/local/nginx/conf/nginx.conf......server {location /status {......##添加控制规则##allow 192.168.80.200; 					#允许访问的客户端 IPdeny all;								#拒绝其它IP客户端访问}}

在这里插入图片描述

重启服务,访问测试
nginx -t		#检查配置文件是否配置正确
systemctl restart nginx

在这里插入图片描述

  • 本机访问测试
    在这里插入图片描述
    可以访问
  • 其他端访问测试
    在这里插入图片描述
    无法访问

访问控制注意事项

  • 在 http{…}配置块(对所有站点生效)
  • server{…}配置块(对当前站点所有的访问路径生效)
  • location{…}配置块(只对当前站点指定的URL访问路径生效) 中添加配置

Nginx虚拟主机

准备工作

为虚拟主机准备网页文档
mkdir -p /var/www/html/wl	echo "<h1>www.wl.com</h1>" > /var/www/html/wl/index.htmlcat /var/www/html/wl/index.htmlmkdir -p /var/www/html/tjecho "<h1>www.tj.com</h1>" > /var/www/html/tj/index.htmlcat /var/www/html/tj/index.html

在这里插入图片描述

基于域名的 Nginx 虚拟主机

为虚拟主机提供域名解析
echo "<IP> <域名1> <域名2>" >> /etc/hosts

在这里插入图片描述

修改Nginx的配置文件
vim /usr/local/nginx/conf/nginx.conf
......
http {
......server {listen 80;server_name www.tj.com;					#设置域名www.tj.comcharset utf-8;access_log logs/www.tj.access.log; 		#设置日志名location / {root /var/www/html/tj;					#设置www.tj.com 的工作目录index index.html index.php;}error_page 500 502 503 504 /50x.html;location = 50x.html{root html;}}server {listen 80;server_name www.wl.com;					#设置域名www.wl.comcharset utf-8;access_log logs/www.wl.access.log; location / {root /var/www/html/wl;index index.html index.php;}error_page 500 502 503 504 /50x.html;location = 50x.html{root html;}}	
}

在这里插入图片描述

重启服务,访问测试
nginx -t		#检查配置文件是否配置正确
systemctl restart nginx

在这里插入图片描述
浏览器访问

  • http://www.tj.com
    在这里插入图片描述

  • http://www.wl.com
    在这里插入图片描述

基于IP 的 Nginx 虚拟主机

新增网卡配置

在这里插入图片描述

nmcli connection modify ens36 ipv4.addresses 10.190.33.50/24 ipv4.gateway 10.190.33.2nmcli connection up ens36

在这里插入图片描述

修改Nginx的配置文件
......
http {
......server {listen <网卡1IP>:80;					#设置监听地址10.190.33.30server_name www.tj.com;charset utf-8;access_log logs/www.tj.access.log; location / {root /var/www/html/tj;index index.html index.php;}error_page 500 502 503 504 /50x.html;location = 50x.html{root html;}}server {listen <网卡2IP>:80;					#设置监听地址10.190.33.50server_name www.wl.com;charset utf-8;access_log logs/www.wl.access.log; location / {root /var/www/html/wl;index index.html index.php;}error_page 500 502 503 504 /50x.html;location = 50x.html{root html;}}	
}

在这里插入图片描述

重启服务,访问测试
nginx -t		#检查配置文件是否配置正确
systemctl restart nginx

在这里插入图片描述
浏览器访问

  • "IP1"访问
    在这里插入图片描述

  • “IP2”访问

基于端口的 Nginx 虚拟主机

修改Nginx的配置文件
......
http {
......server {listen 10.190.33.30:8014;					#设置监听 8014 端口server_name www.tj.com;charset utf-8;access_log logs/www.tj.access.log; location / {root /var/www/html/tj;index index.html index.php;}error_page 500 502 503 504 /50x.html;location = 50x.html{root html;}}server {listen 10.190.33.30:8888;					#设置监听 8888 端口server_name www.wl.com;charset utf-8;access_log logs/www.wl.access.log; location / {root /var/www/html/wl;index index.html index.php;}error_page 500 502 503 504 /50x.html;location = 50x.html{root html;}}	
}

在这里插入图片描述

重启服务,访问测试
nginx -t		#检查配置文件是否配置正确
systemctl restart nginx

在这里插入图片描述
浏览器访问

  • 8014端口访问
    在这里插入图片描述

  • 8888端口访问
    在这里插入图片描述

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

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

相关文章

java向上转型

介绍 代码 父类 package b;public class father_ {//father classString name"动物";int age10;public void sleep() {System.out.println("睡");}public void run() {System.out.println("跑");}public void eat() {System.out.println("…

ISCC2024之Misc方向WP

目录 FunZip Magic_Keyboard Number_is_the_key RSA_KU 成语学习 钢铁侠在解密 工业互联网模拟仿真数据分析 精装四合一 时间刺客 有人让我给你带个话 FunZip 题目给了一个txt&#xff0c;内容如下 一眼丁真&#xff0c;base隐写&#xff0c;使用工具即可得到flag Fl…

在Centos上为Tesla T4显卡安装NVIDIA驱动以及cuda和cudnn

前期准备&#xff1a; 升级gcc编译环境&#xff1a; 查看gcc版本&#xff1a; gcc -v &#xff08;centos默认好像是4.8.5版本&#xff09; 升级gcc&#xff1a; yum install centos-release-scl yum install devtoolset-9-gcc* 备份旧链接创建新链接&#xff1a;…

----JAVA 继承----

引言 再java中你能创造出很多的类&#xff0c;但如果这些类中的成员再另一个类中也要使用&#xff0c;那么就要用到继承来实现指定类中成员的使用了 那么也就可以写出这样的代码 再类Cat中使用了类Animal的成员&#xff0c;这里我们称Cat叫子类&#xff0c;Animal叫父类 概念…

【UE+GIS】UE5GIS CAD或shp构建3D地形

贴合地形的矢量图形实现方法 一、灰度图的制作和拉伸换算1、基于高程点集实现2、基于等高线实现3、拉伸计算 二、生成地形模型的实现方案1、3Dmax导入灰度图2、使用ArcMap/Arcpro/FME等GIS数据处理工具3、UE导入灰度图 三、地形上叠加地形渲染效果的实现方案1、贴花2、数据渲染…

Z字形变换 ---- 模拟

题目链接 题目: 分析: 题意如图所示:如果我们按照题意, 真的实现一个矩阵, 这样做的时间和空间复杂度很高, 所以我们可以试试看找规律, 优化一下我们观察他们的下标: 如果找到下标的规律, 那么我们就不用创建矩阵, 就能找到最终结果的下一个字符是什么特殊情况, 当numRows 1…

读AI未来进行式笔记01深度学习

1. AI 1.1. AI已经发展成一门涵盖许多子领域的重要学科 1.2. 机器学习是迄今为止AI应用最成功的子领域 1.2.1. 在这个领域中&#xff0c;最大的技术突破就是深度学习 1.3. “人工智能”“机器学习”和“深度学习”的时候&#xff…

Pointnet学习以及对代码的实现

由于点云不是常规数据格式&#xff0c;通常将此类数据转换为规则的 3D 体素网格或图像集合&#xff0c;然后再用神经网络进行处理。数据表示转换使生成的数据过于庞大。 PointNet是第一个直接处理原始点云的方法。只有全连接层和最大池化层&#xff0c;PointNet网络在推理速度…

代码随想录--哈希表--两数之和

题目 给定一个整数数组 nums 和一个目标值 target&#xff0c;请你在该数组中找出和为目标值的那 两个 整数&#xff0c;并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素不能使用两遍。 示例: 给定 nums [2, 7, 11, 15], t…

李廉洋:6.3黄金原油下周一开盘行情价格涨跌趋势分析及最新操作建议多空布局

黄金消息面分析&#xff1a;上周黄金市场的走势受到了PCE通胀数据和美联储政策预期的显着影响。尽管市场对黄金的长期看涨情绪依然存在&#xff0c;但短期内金价的波动性预计将持续。4月份的PCE通胀数据显示价格压力有所降温&#xff0c;这一结果与分析师预期一致&#xff0c;但…

2024年6月2日 (周日) 叶子游戏新闻

中医百科中药: 中医百科中药是一款非常强大的中药知识科普软件&#xff0c;该应用提供500多味中草药的文献资料&#xff0c;强大的搜索功能可根据功效、特点和关键词来快速查找中药&#xff0c;而且每味中药的图片、功效、主治、炮制方法等百科知识&#xff0c;可以很好的帮助你…

Pycharm SSH远程连接时出现报错,测试 SFTP 连接,连接到 ‘connect.westb.seetacloud.com‘ 失败

问题由来 很离谱&#xff01;今天本来打算租借AutoDL的显卡完成一项深度学习的任务&#xff0c;很离谱的是同步文件夹的时候报了标题说的错。 就很莫名奇妙&#xff0c;一天都在网上找解决办法&#xff0c;结果都不对头。 其他报错 最后摸索着&#xff0c;在使用pycharm远程登…

SpringBoot 定时任务+Quartz

1、分部解释2、整体代码 前言&#xff1a; 1、定时任务技术&#xff1a; JDK 的 Timer&#xff0c; 定义多个定时任务&#xff0c;其中某个任务出现异常&#xff0c;当时整个定时任务终止。Spring Task &#xff0c; 不支持 持久化与分布式部署&#xff0c;所有任务是单线程执行…

Prism 入门01,基础

Prism 框架是支持多平台的一种MVVM框架(Model-View-ViewModel) 除了具备一些基础的属性通知绑定,命令操作,消息聚合器等功能外。还具备一些强大的功能:例如,区域,导航,会话服务,模块注入等特性。 一.如何在WPF 项目中使用Prism 框架 1.打开Visual Studio 2022,选择创…

【排序】选择排序(含优化版)

本章我们继续讲排序算法&#xff0c;这里我们将学习选择排序&#xff0c;也是一个很普遍很常见的排序算法&#xff0c;逻辑和代码都比较简单&#xff0c;比较容易掌握&#xff0c;我们直接走起 选择排序 基本思想&#xff1a;选择排序&#xff08;SelectSort&#xff09;&…

Layui2.5.6树形表格TreeTable使用

1、问题概述? Layui2.5.6的树形表格-TreeTable终于用明白了,步骤详细,提供源码下载。 如果你使用的是Layui2.8+版本,那么点个赞,赶紧去官网看吧,官网更行了。 更新地址:树表组件 treeTable - Layui 文档 最近在项目中需要使用到树形表格,用来显示菜单的层级关系,当…

辩证 逻辑学 | 洞察 事物矛盾及变化规律 在形式逻辑基础上 学会辩证思维(40节课)

课程下载&#xff1a;辩证逻辑学洞察事物矛盾及变化规律在形式逻辑基础上学会辩证思维&#xff08;40节课&#xff09;-课程网盘链接提取码下载.txt资源-CSDN文库 更多资源下载&#xff1a;关注我。 在形式逻辑的基础上&#xff0c;学会 辩证思维 敏锐 洞察事物发展变化的规…

Linux命令篇(一):文件管理部分

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 1、cat命令常用参…

童趣盎然,米香四溢 —— 蒙自源六一儿童节特别献礼

充满欢声笑语的六一儿童节马上就要来了&#xff0c;在这个充满童真和喜悦的时刻&#xff0c;蒙自源米线品牌以一颗童心&#xff0c;为所有大朋友和小朋友准备了一份特别的礼物。 从5月25日开始&#xff0c;蒙自源诚挚邀请您和孩子们一同前往蒙自源旗下各大门店&#xff0c;品尝…

【MySQL数据库】MySQL 高可用搭建方案——MHA实战

MHA&#xff08;Master High Availability&#xff09; MHA实战 MHA&#xff08;Master High Availability&#xff09; 一、MHA简介二、MHA搭建准备要求&#xff1a;mha集群搭建&#xff0c;4台服务器&#xff0c;1主2从&#xff0c;1台mha2.1实验思路2.2实验准备 三、搭建MyS…