当前位置: 首页 > news >正文

nginx的配置文件

nginx.conf

1、全局模块

worker_processes 1;

工作进程数,设置成服务器内核数的2倍(一般不超过8个,超过8个反正会降低性能,4个 1-2个 )

处理进程的过程必然涉及配置文件和展示页面,也就是涉及打开文件的数量。

linux默认打开的文件数就是1024个

vim  /etc/security/limits.conf

root和alias之间匹配工作目录的区别

root的匹配模式相当于拼接

root 的工作目录,访问的uri/xy102

location /xy102

/opt/test/

alias匹配nginx的工作目录,路径是绝对路径

location /xy102

/opt/test/xy102

alias只能写在http模块当中的server模块的location模块里面。

root可以写在server模块,也可以在http,也可以在location中

alias匹配工作目录,不能够使用重定向功能

全局模块

work_processes 1; 指定进程数

events模块决定了能够处理的练级数

stream 四层代理模块

http模块

转发和处理http请求,设置代理(正向代理,反向代理),缓存,定义日志格式,重定向配置。

在http模块当中,包含:

server块 http里面可以有多个server模块

在server模块当中包含:

location模块

在server当中可以有多个location。

实验1:

统计访问状态:

Active connections:1
server accepts handled requests
36 36 36
Reading:0 Writing:1 waiting:0

Active connections

当前活动的连接数

server accepts handled requests

三个数字,从左往右:已经处理的连接数,成功的建立连接的次数 已经处理的请求数

Reading:0 Writing:1 waiting:0

Reading 表示服务端正在从客户端读取请求的数据

Writing 表示服务端正在把响应数据发送给客户端

waiting 表示有连接处于空闲状态,等待新的请求。

  1 #user  nobody;2 #默认的程序用户就是nginx,这里可以保持注释无需修改3 worker_processes  1;4 5 #error_log  logs/error.log;6 #error_log  logs/error.log  notice;7 #error_log  logs/error.log  info;8 9 pid  /usr/local/nginx/run/nginx.pid;10 #pid文件的位置11 12 13 events {14     worker_connections  1024;15 }   16 #events模块,决定了nginx能够处理的连接数,连接数和worker_processes的数值相乘。17 18 #http 转发和处理http请求,设置代理(正向代理,反向代理),缓存,定义日志格式,重定向配置。19 http {20     include       mime.types;21     #文件扩展名与文件类型的映射表。nginx能够打开的文件和支持的文件类型22     default_type  application/octet-stream;23     #默认支持的文件类型.html .htm .jsp .js .php24     25     #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '26     #                  '$status $body_bytes_sent "$http_referer" '27     #                  '"$http_user_agent" "$http_x_forwarded_for"';28     #日志格式,默认的日志格式,记录了access.log,访问日志的格式,error.log也是一样的格式29     30     #access_log  logs/access.log  main;31     #默认的访问日志的存放路径32     33     sendfile        on;34     #支持文件发送或者下载35     #tcp_nopush     on;36     #默认就是异步非阻塞模式功能。38     #keepalive_timeout  0;39     keepalive_timeout  65;40     #连接保持的时间,单位是秒41 42     #gzip  on;43     #gzip模块,设置是否开启页面压缩(没啥用)44 45     server {46     #开启web服务的模块47         listen       80;48         #nginx的默认监听端口49         server_name  localhost;50         #配置站点的域名51 52         charset utf-8;53         #网页的默认字符集54 55         #access_log  logs/host.access.log  main;56         #网页匹配的工作目录的地址和支持打开页面的文件类型。57 58         location /xy102 {59             root   /opt/test1;60         #root表示的是家目录。nginx工作目录的家目录 /usr/local/nginx/html61         #alias也是指匹配nginx,root是拼接,alias是绝对路径62             index  index.html index.htm;63         }64 65         location /xy103 {66         root /opt/test1;67         index index.html index.htm;68         }69 70         location / {71         root /opt/test1;72         index index.html index.htm;73 74         }

1、进入nginx.conf的配置文件

[root@test2 nginx]# vim /usr/local/nginx/conf/nginx.conf

2、将nginx网页的根目录文件放到/opt/test1目录下

 70         location / {71         root /opt/test1;72         index index.html index.htm;73         }

3、在opt目录下建一个test1目录,并写一个index.html文件

[root@test2 opt]# cd test1
[root@test2 opt]# echo "今天下雨!" > index.html
[root@test2 test1]# ls
index.html

实验2:

基于密码的授权进行访问控制

1、先安装工具

yum -y install httpd-tools

2、创建加密文件

[root@test2 ~]# cd /usr/local/nginx/
[root@test2 nginx]# chown nginx passwd.db 
[root@test2 nginx]# chmod 400 passwd.db 
[root@test2 nginx]# ll
-r--------. 1 nginx root    48 7月   2 10:36 passwd.db

3、将nginx根目录开启用户密码验证

 70         location / {71         root /opt/test1;72         index index.html index.htm;73         auth_basic "secret";74         #开启用户密码验证75         auth_basic_user_file /usr/local/nginx/passwd.db;76         #使用指定的加密文件77         }

4、结果

实验3

基于客户端的访问控制 ip地址来进行控制

deny 就是拒绝

allow 就是允许

1、更改nginx.conf的配置文件

location / {root /opt/test1;index index.html index.htm;deny 192.168.60.30;allow all;}

2、test3访问

[root@test3 ~]# curl 192.168.60.20
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.22.0</center>
</body>
</html>

3、test4访问

[root@test4 ~]# curl 192.168.60.20
今天下雨!

实验4

基于域名的nginx主机

1、设置站点域名

[root@test2 core]# vim /usr/local/nginx/conf/nginx.confserver {#开启web服务的模块listen       80;#nginx的默认监听端口server_name  www.xy102.com;#配置站点的域名charset utf-8;#网页的默认字符集access_log  logs/www.xy102.com.access.log;#新增一个域名访问server {listen 80;server_name www.zxc.com;charset utf-8;access_log logs/www.zxc.com.access.log;location / {root /var/www/html/zxc;index index.html;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
​}

2、将ip地址映射

[root@test2 xy102]# vim /etc/hosts     #做网站的映射192.168.60.20 www.xy102.com www.zxc.com

3、在zxc目录下写一个index.html文件

[root@test2 zxc]# mkdir -p /var/www/html/zxc
[root@test2 core]# cd /var/www/html/zxc/
[root@test2 zxc]# ls
[root@test2 zxc]# echo "你好" > index.html

4、测试

[root@test2 zxc]# curl www.xy102.com
今天下雨!
[root@test2 zxc]# curl www.zxc.com
你好

实验5:

基于ip地址的虚拟主机

1、新增虚拟网卡

[root@test2 ~]# ifconfig ens 33:0 192.168.60.199/24

2、给每个服务设置对应的IP地址

    server {#开启web服务的模块listen       192.168.60.20:80;#nginx的默认监听端口server_name  www.xy102.com;#配置站点的域名charset utf-8;#网页的默认字符集access_log  logs/www.xy102.com.access.log;#网页匹配的工作目录的地址和支持打开页面的文件类型。}server {listen 192.168.60.199:80;server_name www.zxc.com;charset utf-8;access_log logs/www.zxc.com.access.log;location / {root /var/www/html/zxc;index index.html;}

3、测试

[root@test2 ~]# curl 192.168.60.20:80
今天下雨!
[root@test2 ~]# curl 192.168.60.199:80
你好

实验6:

基于端口实现多个虚拟主机

1、给每个服务设置对应的端口

    server {#开启web服务的模块listen       192.168.60.20:8080;#nginx的默认监听端口server_name  www.xy102.com;#配置站点的域名charset utf-8;#网页的默认字符集access_log  logs/www.xy102.com.access.log;}server {listen 192.168.60.20:8888;server_name www.zxc.com;charset utf-8;access_log logs/www.zxc.com.access.log;location / {root /var/www/html/zxc;index index.html;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}

2、测试

[root@test2 ~]# curl 192.168.60.20:8080
今天下雨!
[root@test2 ~]# curl 192.168.60.20:8888
你好

实验7:

多个配置文件

1、nginx能够打开的文件

include /usr/local/nginx/conf.d/*.conf 
#可以识别到conf.d下,只包含server模块的conf文件

2、创建一个conf.d目录

[root@test2 ~]# cd /usr/local/nginx/
[root@test2 nginx]# mkdir conf.d
[root@test2 nginx]# cd conf.d/

3、创建一个test1.conf文件

[root@test2 conf.d]# vim text1.conf
server {listen 8081;server_name localhost;location /test1 {root /opt/conf/index index.html
​}
}
server {listen 8082;server_name localhost;location /test2 {root /opt/conf/index index.html
​}
}

4、在opt目录下创建两个目录

[root@test2 conf.d]# cd /opt/
[root@test2 opt]# mkdir -p conf/test1
[root@test2 opt]# mkdir -p conf/test2

5、在test1和test2目录下写.html文件

[root@test2 opt]# cd conf/
[root@test2 conf]# echo "this is test1" > test1/index.html
[root@test2 conf]# echo "this is test2" > test2/index.html

6、测试

[root@test2 conf]# netstat -antp | grep nginx
tcp        0      0 192.168.60.20:8080      0.0.0.0:*               LISTEN      113233/nginx: maste 
tcp        0      0 0.0.0.0:8081            0.0.0.0:*               LISTEN      113233/nginx: maste 
tcp        0      0 0.0.0.0:8082            0.0.0.0:*               LISTEN      113233/nginx: maste 
tcp        0      0 192.168.60.20:8888      0.0.0.0:*               LISTEN      113233/nginx: maste 

nginx的优化与防盗链:

实验8:

隐藏版本号:server_tokens off;

1、在nginx.conf加一个关闭显示版本号

http {include       mime.types;#文件扩展名与文件类型的映射表。nginx能够打开的文件和支持的文件类型include /usr/local/nginx/conf.d/*.conf;#可以识别到conf.d下,只包含server模块的conf文件default_type  application/octet-stream;#默认支持的文件类型.html .htm .jsp .js .phpserver_tokens off;#关闭显示版本号

2、测试

相关文章:

nginx的配置文件

nginx.conf 1、全局模块 worker_processes 1; 工作进程数&#xff0c;设置成服务器内核数的2倍&#xff08;一般不超过8个&#xff0c;超过8个反正会降低性能&#xff0c;4个 1-2个 &#xff09; 处理进程的过程必然涉及配置文件和展示页面&#xff0c;也就是涉及打开文件的…...

艾滋病隐球菌病的病原学诊断方法包括?

艾滋病隐球菌病的病原学诊断方法包括()查看答案 A.培养B.隐球菌抗原C.墨汁染色D.PCR 在感染性疾病研究中&#xff0c;单细胞转录组学的应用包括哪些()? A.细胞异质性研究B.基因组突变检测C.感染过程单细胞分析D.代谢通路分析 开展病原微生物网络实验室体系建设&#xff0c;应通…...

jQuery Tooltip 插件使用教程

jQuery Tooltip 插件使用教程 引言 jQuery Tooltip 插件是 jQuery UI 套件的一部分,它为网页元素添加了交互式的提示框功能。通过这个插件,开发者可以轻松地为链接、按钮、图片等元素添加自定义的提示信息,从而增强用户的交互体验。本文将详细介绍如何使用 jQuery Tooltip…...

访问者模式在金融业务中的应用及其框架实现

引言 访问者模式&#xff08;Visitor Pattern&#xff09;是一种行为设计模式&#xff0c;它允许你在不改变对象结构的前提下定义作用于这些对象的新操作。通过使用访问者模式&#xff0c;可以将相关操作分离到访问者中&#xff0c;从而提高系统的灵活性和可维护性。在金融业务…...

.npy格式图像如何进行深度学习模型训练处理,亲测可行

import torchimport torch.nn as nnimport torch.nn.functional as Fimport numpy as npfrom torch.utils.data import DataLoader, Datasetfrom torchvision import transformsfrom PIL import Imageimport json# 加载训练集和测试集数据train_images np.load(../dataset/tra…...

XFeat快速图像特征匹配算法

XFeat&#xff08;Accelerated Features&#xff09;是一种新颖的卷积神经网络&#xff08;CNN&#xff09;架构&#xff0c;专为快速和鲁棒的像匹配而设计。它特别适用于资源受限的设备&#xff0c;同时提供了与现有深度学习方法相比的高速度和准确性。 轻量级CNN架构&#xf…...

普元EOS学习笔记-低开实现图书的增删改查

前言 在前一篇《普元EOS学习笔记-创建精简应用》中&#xff0c;我已经创建了EOS精简应用。 我之前说过&#xff0c;EOS精简应用就是自己创建的EOS精简版&#xff0c;该项目中&#xff0c;开发者可以进行低代码开发&#xff0c;也可以进行高代码开发。 本文我就记录一下自己在…...

动态住宅代理IP详细解析

在大数据时代的背景下&#xff0c;代理IP成为了很多企业顺利开展的重要工具。代理IP地址可以分为住宅代理IP地址和数据中心代理IP地址。选择住宅代理IP的好处是可以实现真正的高匿名性&#xff0c;而使用数据中心代理IP可能会暴露自己使用代理的情况。 住宅代理IP是指互联网服务…...

等保2.0 实施方案之信息软件验证要求

一、等保2.0背景及意义 随着信息技术的快速发展和网络安全威胁的不断演变&#xff0c;网络安全已成为国家安全、社会稳定和经济发展的重要保障。等保2.0&#xff08;即《信息安全技术 网络安全等级保护基本要求》2.0版本&#xff09;作为网络安全等级保护制度的最新标准&#x…...

【LeetCode的使用方法】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 🔮LeetCode的使用方法 🔮LeetCode 是一个在线编程平台,广泛…...

【SGX系列教程】(二)第一个 SGX 程序: HelloWorld,linux下运行

文章目录 0. SGX基础原理分析一.准备工作1.1 前提条件1.2 SGX IDE1.3 基本原理 二.程序设计2.1 目录结构2.2 源码设计2.2.1 Encalve/Enclave.edl:Enclave Description Language2.2.2 Enclave/Enclave.lds: Enclave linker script2.2.3 Enclave/Enclave.config.xml: Enclave 配置…...

网页报错dns_probe_possible 怎么办?——错误代码有效修复

当你在浏览网页时遇到dns_probe_possible 错误&#xff0c;这通常意味着你的浏览器无法解析域名系统&#xff08;DNS&#xff09;地址。这个问题可能是由多种原因引起的&#xff0c;包括网络配置问题、DNS服务问题、或是本地设备的问题。教大家几种修复网页报错dns_probe_possi…...

Vue.js 中属性绑定的详细解析:冒号 `:` 和非冒号的区别

Vue.js 中属性绑定的详细解析&#xff1a;冒号 : 和非冒号的区别 在 Vue.js 中&#xff0c;属性绑定是一个重要的概念&#xff0c;它决定了如何将数据绑定到 DOM 元素的属性上。Vue.js 提供了两种方式来绑定属性&#xff1a;使用冒号 : 进行动态绑定&#xff0c;或直接书写属性…...

使用Java实现智能物流管理系统

使用Java实现智能物流管理系统 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将探讨如何使用Java语言实现智能物流管理系统&#xff0c;这是一个涉及到…...

深圳技术大学oj C : 生成r子集

Description 输出给定序列按字典序的 &#xfffd; 组合&#xff0c;按照所有 &#xfffd; 个元素出现与否的 01 标记串 &#xfffd;&#xfffd;&#xfffd;&#xfffd;−1,...,&#xfffd;1 的字典序输出. 此处01串的字典序指&#xff1a;先输入的数字对应低位&#x…...

不同操作系统下的换行符

1. 关键字2. 换行符的比较3. ASCII码4. 修改换行符 4.1. VSCode 5. 参考文档 1. 关键字 CR LF CRLF 换行符 2. 换行符的比较 英文全称英文缩写中文含义转义字符ASCII码值操作系统Carriage ReturnCR回车\r13MacIntosh&#xff08;早期的Mac&#xff09;LinefeedLF换行/新行\…...

Transformation(转换)开发-switch/case组件

一、switch/case组件-条件判断 体育老师要做一件非常重要的事情&#xff1a;判断学生是男孩还是女孩、或者是蜘蛛&#xff0c;然后让他们各自到指定的队伍中 体育老师做的事情&#xff0c;我们同样也会在Kettle中会经常用来。在Kettle中&#xff0c;switch/case组件可以来做类似…...

Android Gradle 开发与应用 (二): Android 项目结构与构建配置

目录 1. Android 项目的 Gradle 文件结构 1.1 项目根目录 1.2 模块目录 2. Gradle 构建配置详解 2.1 配置 Android 项目的 build.gradle 2.2 配置模块的 build.gradle 2.3 使用 productFlavors 管理多版本应用 2.4 使用 buildConfigField 注入构建常量 在 Android 开发…...

02:vim的使用和权限管控

vim的使用 1、vim基础使用1.1、vim pathname 2、vim高级用法2.1、查找2.2、设置显示行号2.3、快速切换行2.4、 行删除2.5、行复制粘贴 3、权限管理3.1、普通用户和特权用户3.2、文件权限表示 vim是Linux中的一种编辑器&#xff0c;类似于window中的记事本&#xff0c;可以对创建…...

GNeRF代码复现

https://github.com/quan-meng/gnerf 之前一直去复现这个代码总是文件不存在&#xff0c;我就懒得搞了&#xff08;实际上是没能力哈哈哈&#xff09; 最近突然想到这篇论文重新试试复现 一、按步骤创建虚拟环境安装各种依赖等 二、安装好之后下载数据&#xff0c;可以用Blen…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...

在 Spring Boot 中使用 JSP

jsp&#xff1f; 好多年没用了。重新整一下 还费了点时间&#xff0c;记录一下。 项目结构&#xff1a; pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...

FFmpeg avformat_open_input函数分析

函数内部的总体流程如下&#xff1a; avformat_open_input 精简后的代码如下&#xff1a; int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...

高防服务器价格高原因分析

高防服务器的价格较高&#xff0c;主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因&#xff1a; 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器&#xff0c;因此…...

工厂方法模式和抽象工厂方法模式的battle

1.案例直接上手 在这个案例里面&#xff0c;我们会实现这个普通的工厂方法&#xff0c;并且对比这个普通工厂方法和我们直接创建对象的差别在哪里&#xff0c;为什么需要一个工厂&#xff1a; 下面的这个是我们的这个案例里面涉及到的接口和对应的实现类&#xff1a; 两个发…...

【记录坑点问题】IDEA运行:maven-resources-production:XX: OOM: Java heap space

问题&#xff1a;IDEA出现maven-resources-production:operation-service: java.lang.OutOfMemoryError: Java heap space 解决方案&#xff1a;将编译的堆内存增加一点 位置&#xff1a;设置setting-》构建菜单build-》编译器Complier...

未授权访问事件频发,我们应当如何应对?

在当下&#xff0c;数据已成为企业和组织的核心资产&#xff0c;是推动业务发展、决策制定以及创新的关键驱动力。然而&#xff0c;未授权访问这一隐匿的安全威胁&#xff0c;正如同高悬的达摩克利斯之剑&#xff0c;时刻威胁着数据的安全&#xff0c;一旦触发&#xff0c;便可…...