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 .php
 24     
 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/html
 61         #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.conf
   server {
    #开启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 .php
    server_tokens off;
    #关闭显示版本号

2、测试

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

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

相关文章

让围绕数据库构建大模型应用更简单方便--DB-GPT

DB-GPT的目的是构建大模型领域的基础设施&#xff0c;通过开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力&#xff0c;让围绕数据库构建大模型应用更简单&#xff0c;更方便。 1 处理流程 DB-GPT系…

问题集锦1

01.inner中使用JwtTokenUtil.getUserCode() 前端调用上传&#xff08;java&#xff09;&#xff0c;上传使用加购 Overridepublic Boolean insertShoppingCart(InsertShoppingCartParamsDto dto) {// 通过userCode,itemCode和supplierCode来判断当前加购人添加到购物车的商品是…

美术馆预约小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;展品信息管理&#xff0c;管理员管理&#xff0c;用户管理&#xff0c;美术馆管理&#xff0c;基础数据管理&#xff0c;论坛管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;美术馆&#xff…

工业路由器与家用路由器的区别

在现代网络环境中&#xff0c;路由器扮演着至关重要的角色。无论是在家庭网络还是在工业网络&#xff0c;选择合适的路由器都至关重要。本文将从多个角度&#xff0c;对工业路由器与家用路由器进行详细比较&#xff0c;帮助您更好地理解二者的区别。 1、安全性 工业路由器&…

API接口测试/Swgger-ui未授权访问

目录 API接口 接口文档 接口测试的方法 单流程 多流程 Swgger-ui未授权访问 在之间的一次面试中面试官问到了API接口测试&#xff0c;我回答的不好&#xff0c;因为自己确实不太会&#xff0c;后面才下去学习了&#xff0c;这里复习和练习一下 API接口 API&#xff08;…

背景图的动效,非常的炫酷,非一般的感觉。

我们都知道在一些展示型项目中&#xff0c;背景图加上动效后&#xff0c;可以立马让整个设计档次提升了&#xff0c;这次带来了一批背景图的动效图&#xff0c;大家看一下。

震惊!张宇强化36讲1200页,暑期强化高效利用指南!

特别喜欢张宇老师的讲课风格 如果你打算跟张宇老师&#xff0c;那么基础——>强化——>冲刺&#xff0c;你应该这么买书&#xff01; 张宇老师25版课程大改版&#xff0c;其中&#xff0c;36讲的变动是最大的&#xff0c;张宇老师25版课程把以往的强化课程前移&#xff0…

基于多视点编码光场的全景三维重建方法

欢迎关注GZH《光场视觉》 摘要&#xff1a;在基于光场的一系列应用中&#xff0c;目标的三维重建是基础且关键的任务。普通光场只能重建单一视角而无法重建全景&#xff0c;并且在纹理特征匮乏的区域也无法生成准确的三维信息。针对以上问题&#xff0c;提出一种基于多视点编码…

视频字幕提取在线工具有哪些?总结5个字幕提取工具

平时在沉浸式追剧的时候&#xff0c;我们常常都会被影视剧中的各种金句爆梗而逗得开怀大笑~而真正要用到时候却总是一片头脑空白。其实要记住它们最好的办法便是将其提取留档下来&#xff0c;每次有需要的时候打开就能一下子回顾到~ 今天就来带大家盘一盘视频字幕提取的软件好…

泰雷茲具有首个通过FIPS 140-3 三级认证的HSMs

泰雷兹LunaHsm是业界首款通过FIPS140-33级认证的解决方案&#xff0c;安策引进泰雷兹HSM产品可以帮助您满足您的数据安全合规性需求&#xff0c;阻力企业提高竞争力。 安策提供泰雷茲ThalesLunaHSMs成为首个通过FIPS140-3三级认证的硬件安全模块图 我们很高兴地宣布&#xff0c…

端口聚合基础知识

一、什么是端口聚合 端口聚合是将多个物理端口捆绑在一起&#xff0c;形成一个逻辑链路&#xff0c;以实现带宽增加、提高冗余和负载均衡的技术。端口聚合&#xff0c;也称为以太通道&#xff08;Ethernet Channel&#xff09;&#xff0c;主要用于交换机之间的连接。在具有多…

困在流量里的“平替国货”

“不是xx买不起&#xff0c;而是xx更有性价比。” 现在很多年轻消费者都把这句话挂在嘴边。比如&#xff0c;“不是羽绒服买不起&#xff0c;而是军大衣更有性价比”“不是洋货买不起&#xff0c;而是国货更有性价比”。 你可以说他们不愿意再当冤大头&#xff0c;偏爱价格更…

3d模型材质吸不了什么原因?怎么解决?---模大狮模型网

3D模型无法吸取材质可能有以下原因&#xff1a; 文件格式不支持&#xff1a;某些文件格式(如STL)不支持嵌入材质信息&#xff0c;因此在导入此类文件后&#xff0c;需要手动为模型添加材质。 材质链接错误&#xff1a;如果模型文件中嵌入了材质信息&#xff0c;但是链接错误&a…

【中项第三版】系统集成项目管理工程师 | 第 2 章 信息技术发展

前言 第2章对应的内容大概率仅考察选择题&#xff0c;通读教程&#xff0c;速战速决。选择题分值预计在2-5分&#xff0c;属于必考的知识点。 2.1 信息技术及其发展 信息技术是在信息科学的基本原理和方法下的关于一切信息的产生、信息的传输、信息的发送、信息的接收等应用技…

Python面试宝典第4题:环形链表

题目 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。如果存在环 &#xff0c;则返回 true 。 否则&#xff0c;返回 false 。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xf…

《涅朵奇卡:一个女人的一生》读后感

这周的计划是看完海明威的《丧钟为谁而鸣》&#xff0c;但是因为下班晚&#xff0c;而且书的体量大&#xff0c;所以只看了一半。本来以为这周的阅读计划完不成了&#xff0c;不料昨天加完班后拿起新到的《涅朵奇卡&#xff1a;一个女人的一生》&#xff0c;不自觉就陷进去了&a…

Cocos如何跟Android通信?

点击上方亿元程序员+关注和★星标 引言 Cocos如何跟Android通信 大家好,相信小伙伴们通过阅读笔者前几期的文章**《Cocos打安卓包打不出来?看看这个》,对Cocos**如何打安卓包有了一定的了解。 但是,除了把安卓包打出来,另外还有一个重要的就是要能够调用安卓提供的Java方…

时钟切换的代码

目录 描述 输入描述&#xff1a; 输出描述&#xff1a; 参考代码 描述 题目描述&#xff1a; 存在两个同步的倍频时钟clk0 clk1,已知clk0是clk1的二倍频&#xff0c;现在要设计一个切换电路&#xff0c;sel选择时候进行切换&#xff0c;要求没有毛刺。 信号示意图&…

Web 基础与 HTTP 协议

Web 基础与 HTTP 协议 一、Web 基础1.1域名和 DNS域名的概念Hosts 文件DNS&#xff08;Domain Name System 域名系统&#xff09;域名注册 1.2网页与 HTML网页概述HTML 概述网站和主页Web1.0 与 Web2.0 1.3静态网页与动态网页静态网页动态网页 二、HTTP 协议1.1HTTP 协议概述1.…

学习springAOP

第三章 Spring AOP 第一节 AOP 简介 1. 概念 AOP全称为Aspect Oriented Programming&#xff0c;表示面向切面编程。何为切面呢&#xff1f; 由此可以得出&#xff0c;切面是一种将那些与业务无关&#xff0c;但业务模块都需要使用的功能封装起来的技术。这样便于减少系统的…