Nginx的搭建与核心配置

一、Nginx

1、Nginx概述

  • 一款高新能、轻量级Web服务软件
  • 系统资源消耗低
  • 对HTTP并发连接的处理能力高
  • 单台物理服务器可支持30 000~50 000个并发请求。

2、Nginx主要功能:

  1. 静态文件服务:nginx可直接提供静态文件服务,HTML、CSS、JAVAScrippt、图片等/能够高效地处理并响应静态文件请求

  2. 反向代理:可作为反向代理服务器,客户端在请求时,会通过代理服务器将流量按照轮询算法,转发到后台不同的服务器,实现负载均衡和高可用

  3. 缓存服务: nginx自带缓存功能

  4. 动态服务: 可代理请求,将动态请求模块发送到后端的动态服务进行处理,处理完成后,在返回nginx,nginx响应客户端

  5. 虚拟主机服务:nginx可以在一台服务器上设置多个虚拟机,同一个服务器上可有多个域名或站点

  6. URL重定向:可以实现灵活的url重定向和重写

  7. SSL/TLS加密:https加密方式,数字证书验证机制

  8. 日志功能:可以详细的记录请求信息,包括访问时间,请求路径IP地址、响应状态有助于故障排查(系统控制日志:/var/log/messages 业务日志:access.log访问成功记录;error访问失败记录)

 3、nginx主要文件功能

/usr/local/nginx下

  1. conf:保存nginx所有的配置文件,其中nginx.conf是nginx服务器的最核心最主要的配置文件

  2. html:目录中保存了nginx服务器的web文件,但是可以更改为其他目录保存web文件,另外还有一个50x的web文件是默认的错误页面提示页面。

  3. logs:用来保存nginx服务器的访问日志错误日志等日志, logs目录可以放在其他路径,比如/var/logs/nginx里面。

  4. sbin:保存nginx二进制启动脚本,可以接受不同的参数以实现不同的功能

 4、nginx常用命令

  1. nginx -t:检查配置文件是否配置正确

  2. nginx -v:查看nginx的版本号

  3. nginx -s:向主进程传输信号,停止、开启、重启、重新加载

  4. nginx -c:设置配置文件的默认路径

5、Nginx主配置文件各模块与作用 

  • 全局块:全局配置,对全局生效

  •  events块:配置影响 Nginx 服务器与用户的网络连接
  • http块:主要针对HTTP请求的配置,包括代理,缓存,日志反向代理,虚拟web主机,server块
  • server块:配置虚拟主机的相关参数,一个 http 块中可以有多个 server 块

  • location块:用于配置匹配的 uri  

6、locatin模块当中root和alias的区别

root:拼接,root指定的目录和location匹配的uri之间做的一个拼接,/opt/ ky30/这两个路径都要真实存在,而且都是目录,并且,在uri目录离面要有web文件

alias:匹配指定路径下的web文件

访问时:/root后面有没有/无所谓,alias加了/,后面也必须有/,否则匹配不到

二、实验 

1、 访问状态统计配置

1、先使用命令/usr/local/nginx/sbin/nginx -V 查看已安装的 Nginx 是否包含HTTP_STUB_STATUS 模块
2、修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置

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

打开:http://192.168.247.40/status
验证:

  •  Active connections :表示当前的活动连接数;
  • server accepts handled requests:表示已经处理的连接信息
  • 三个数字依次表示已处理的连接数、成功的TCP握手次数、 已处理的请求数。
     

2、 基于域名的 Nginx 虚拟主机

为虚拟主机提供域名解析
echo "192.168.247.40 www.kgc_test.com www.accp.com" >> /etc/hosts

为虚拟主机准备网页文档
mkdir -p /var/www/html/kgc
mkdir -p /var/www/html/accp
echo "<h1>www.kgc.com</h1>" > /var/www/html/kgc/index.html
echo "<h1>www.accp.com</h1>" > /var/www/html/accp/index.html

修改Nginx的配置文件
vim /usr/local/nginx/conf/nginx.conf
......
http {
......
	server {
		listen 80;
		server_name www.kgc.com;					#设置域名www.kgc.com
		charset utf-8;
		access_log logs/www.kgc.access.log; 
		location / {
			root /var/www/html/kgc;					#设置www.kgc.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.accp.com;					#设置域名www.accp.com
		charset utf-8;
		access_log logs/www.accp.access.log; 
		location / {
			root /var/www/html/accp;
			index index.html index.php;
		}
		error_page 500 502 503 504 /50x.html;
		location = 50x.html{
			root html;
		}
	}	
}

 验证1:访问域名www.kgc.com

 验证2:访问域名www.accp.com

 3、基于IP 的 Nginx 虚拟主机:

ifconfig ens33:0 192.168.247.100 netmask 255.255.255.0 
#添加虚拟网卡
vim /usr/local/nginx/conf/nginx.conf
......
http {
......
server {
		listen 192.168.247.40:80;					#设置监听地址
		server_name www.kgc.com;
		charset utf-8;
		access_log logs/www.kgc.access.log; 
		location / {
			root /var/www/html/kgc;
			index index.html index.php;
		}
		error_page 500 502 503 504 /50x.html;
		location = 50x.html{
			root html;
		}
	}

server {
	listen 192.168.247.100:80;					#设置监听地址
	server_name www.accp.com;
	charset utf-8;
	access_log logs/www.accp.access.log; 
	location / {
		root /var/www/html/accp;
		index index.html index.php;
	}
	error_page 500 502 503 504 /50x.html;
	location = 50x.html{
		root html;
	}
}	
}
systemctl restart nginx
#重启服务

 

 验证1:访问192.168.247.100:80

 验证2:访问192.168.247.40:80

4、基于端口的 Nginx 虚拟主机:
 

 验证1:访问888端口

  验证1:访问8080端口

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32CubeMX+VSCODE+EIDE+RT-THREAD 工程创建

Eide环境搭建暂且不表&#xff0c;后续补充。主要记录下Vscode环境下 创建Rt-thread工程的过程。分别介绍STM32CubeMX添加rtt支持包的方式和手动添加rtt kernel方式。STM32CubeMX生成工程的时候有"坑"&#xff0c;防止下次忘记&#xff0c;方便渡一下有缘人&#xff…

maven发布到中央仓库

创建账号 https://issues.sonatype.org 【第二步】登录申请新项目 右上角点击Create&#xff0c;Project选择第一项&#xff0c;有的时候带不出来第二个New Project&#xff0c;可以再选一次Project的选项。

centos7 ‘xxx‘ is not in the sudoers file...

如题 执行命令输入密码后时报错&#xff1a; [sudo] password for admin &#xff08;我的账户&#xff09;原因&#xff0c;当前用户还没有加入到root的配置文件中。 解决 vim打开配置文件&#xff0c;如下&#xff1a; #切换到root用户 su #编辑配置文件 vim /etc/sudoe…

2023软件测试面试热点300问(接口自动化测试篇)

分享100道涉及到的接口自动化测试面试题&#xff0c;供大家参考&#xff1a; 我已经把这些面试题全部整理在一个文档里面了&#xff0c;同时还有这些面试题的视频教程分享&#xff0c;全部放在文末了&#xff0c;需要的可以直接去观看&#xff0c;或者直接点击文末小卡片免费领…

路由器DHCP实验

拓扑图 配置 # 配置ip地址并开启dhcp [Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip addr 192.168.1.1 255.255.255.0 [Huawei-GigabitEthernet0/0/0]dhcp enable## 配置dns地址 [Huawei-GigabitEthernet0/0/0]dhcp dns-list 192.168.1.5## 指定某个接口开通DHCP 功能…

Zebec Payroll :计划推出 WageLink On-Demand Pay,进军薪酬发放领域

“Zebec Protocol 生态旨以 Web3 的方式建立全新的公平秩序&#xff0c;基于其流支付体系构建的薪酬支付板块&#xff0c;就是解决问题的一把利刃” Zebec Protocol 在创立之初就有着一个十分宏大的愿景&#xff0c;其希望通过 Web3 的方式来进一步打破世界上一些不公平现象。 …

【小沐学NLP】在线AI绘画网站(百度:文心一格)

文章目录 1、简介2、文心一格2.1 功能简介2.2 操作步骤2.3 使用费用2.4 若干示例2.4.1 女孩2.4.2 昙花2.4.3 山水画2.4.4 夜晚2.4.5 古诗2.4.6 二次元2.4.7 帅哥 结语 1、简介 当下&#xff0c;越来越多AI领域前沿技术争相落地&#xff0c;逐步释放出极大的产业价值&#xff0…

OpenCV之信用卡识别实战

文章目录 代码视频讲解模板匹配文件主程序(ocr_template_match.py)myutils.py 代码 链接: https://pan.baidu.com/s/1KjdiqkyYGfHk97wwgF-j3g?pwdhhkf 提取码: hhkf 视频讲解 模板匹配文件 主程序(ocr_template_match.py) # 导入工具包 from imutils import contours # 从…

【LeetCode】236.二叉树的最近公共祖先

题目 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个节点也可以是它…

刷了3个月的华为OD算法题,总结了270多道,谈谈自己的感悟

目录 一、考研二战&#xff0c;入职华为&#xff0c;反向调剂电子科大深圳二、题目描述三、输入描述四、输出描述五、解题思路六、Java算法源码七、效果展示1、输入2、输出3、说明 大家好&#xff0c;我是哪吒。 最近一直在刷华为OD机试的算法题&#xff0c;坚持一天三道题的节…

STL空间配置器入门

STL简介   STL&#xff08;Standard Template Library&#xff0c;标准模板库&#xff09;&#xff0c;从根本上说&#xff0c;STL是一些“容器”的集合&#xff0c;这些“容器”有list,vector,set,map等&#xff0c;STL也是算法和其他一些组件的集合。 谈及组件&#xff0c…

如何在免费版 pycharm 中使用 github copilot (chatGPT)?

起因 在 vscode 中使用了 github copilot 以后&#xff0c;感觉这个人工智能还不错。 但 vscode 对于 python 项目调试并不是特别方便&#xff0c;所以想在 Pycharm 中也能使用同一个 github 账号&#xff0c;用上 copilot 的功能。 不需要等待&#xff0c;安装即用&#xff…

C++和Lua交互总结

C和Lua交互总结 Chapter1. C和Lua交互总结一、Lua与C的交互机制——Lua堆栈二、堆栈的操作三、C 调用 Lua1&#xff09;C获取Lua值2&#xff09;C调用Lua函数示例&#xff1a; 四、Lua 调用 C包装C函数 最后总结一下 Chapter1. C和Lua交互总结 原文链接&#xff1a;https://bl…

数据结构: 线性表(带头双向循环链表实现)

之前一章学习了单链表的相关操作, 但是单链表的限制却很多, 比如不能倒序扫描链表, 解决方法是在数据结构上附加一个域, 使它包含指向前一个单元的指针即可. 那么怎么定义数据结构呢? 首先我们先了解以下链表的分类 1. 链表的分类 链表的结构非常多样, 以下情况组合起来就有…

【图论】无向图连通性(tarjan算法)

割边&#xff1a;dfn[u]<low[v] 割点&#xff1a;dfn[u]<low[v] (若为根节点&#xff0c;要有两个v这样的点) 一.知识点&#xff1a; 1.连通&#xff1a; 在图论中&#xff0c;连通性是指一个无向图中的任意两个顶点之间存在路径。如果对于图中的任意两个顶点 u 和 v&…

06 HTTP(下)

06 HTTP&#xff08;下&#xff09; 介绍服务器如何响应请求报文&#xff0c;并将该报文发送给浏览器端。介绍一些基础API&#xff0c;然后结合流程图和代码对服务器响应请求报文进行详解。 基础API部分&#xff0c;介绍stat、mmap、iovec、writev。 流程图部分&#xff0c;描…

写材料使用恰当的词汇和专业术语,不要使用生僻或不恰当的词汇

注意使用恰当的词汇和专业术语是公文写作中的关键&#xff0c;不要使用过于生僻或不恰当的词汇。 首先&#xff0c;在选择词汇和专业术语时&#xff0c;需要了解公文所涉及的领域和专业知识。对于不同领域和专业的公文&#xff0c;需要选择恰当的词汇和术语&#xff0c;以确保公…

Akuity Certified ArgoCD课程学习与认证

今天是「DevOps云学堂」与你共同进步的第 48天 第⑦期DevOps实战训练营 7月15日已开营 实践环境升级基于K8s和ArgoCD 本文主要分享&#xff0c;如何免费地参与由Akuity Academy提供的ArgoCD GitOps 培训课程并取得认证证书。 目前Akuity Academy只发布了Introduction to Contin…

王道计网 第四章笔记

4.1 生活在网络层的“工人”是路由器,他负责各种异构网络的连接,但是因为他只生活在前三层所以从网络层之上的东西他不能管理,所以网路层之上的数据对于路由器来说必须是相同的、透明的。 常见的网络层协议有IP 和 ICMPTCP IP传输层协议FTP应用层协议一句话区分IP和MAC地址…

GO语言的垃圾回收机制

内存垃圾的产生 程序在内存上被分为堆区、栈区、全局数据区、代码段、数据区五个部分。对于C等早期编程语言栈上的内存回由编译器负责管理回收&#xff0c;而堆上的内存空间需要编程人员负责申请和释放。在Go中栈上内存仍由编译器负责管理回收&#xff0c;而堆上的内存由编译器…