web应用-Nginx学习笔记02-配置项结构和内容

操作环境介绍

操作系统信息
ubuntu18.04

1.如何安装得到一个nginx应用?

安装nginx应用,安装方式,通过apt方式安装;
apt install nginx

nginx版本信息查看

root@ub1804:/etc/nginx# nginx -v
nginx version: nginx/1.14.0 (Ubuntu)

2.nginx的web应用应该如何配置?

2.1配置文件有哪些?在哪个路径下,名字叫什么?哪些是基础核心的配置?

对应版本的配置文件路径/et/nginx/,配置文件/etc/nginx/nginx.conf

root@ub1804:/etc/nginx# tree
.
├── conf.d
├── fastcgi.conf
├── fastcgi_params
├── koi-utf
├── koi-win
├── mime.types
├── modules-available
├── modules-enabled
│   ├── 50-mod-http-geoip.conf -> /usr/share/nginx/modules-available/mod-http-geoip.conf
│   ├── 50-mod-http-image-filter.conf -> /usr/share/nginx/modules-available/mod-http-image-filter.conf
│   ├── 50-mod-http-xslt-filter.conf -> /usr/share/nginx/modules-available/mod-http-xslt-filter.conf
│   ├── 50-mod-mail.conf -> /usr/share/nginx/modules-available/mod-mail.conf
│   └── 50-mod-stream.conf -> /usr/share/nginx/modules-available/mod-stream.conf
├── nginx.conf
├── proxy_params
├── scgi_params
├── sites-available
│   └── default
├── sites-enabled
│   └── default -> /etc/nginx/sites-available/default
├── snippets
│   ├── fastcgi-php.conf
│   └── snakeoil.conf
├── uwsgi_params
└── win-utf6 directories, 19 files
root@ub1804:/etc/nginx# pwd
/etc/nginx

2.2配置文件里面有什么内容,如何解读配置文件?

通过文本编辑工具vim查看nginx.conf配置文件内容,得到配置文件里面有什么内容的答案;
通过参考资料的阅读,可以将配置文件内容的结构进行分类;

nginx.conf配置文件内容如下:

  1 user www-data;2 worker_processes auto;3 pid /run/nginx.pid;4 include /etc/nginx/modules-enabled/*.conf;5 6 events {7         worker_connections 768;8         # multi_accept on;9 }10 11 http {12 13         ##14         # Basic Settings15         ##16 17         sendfile on;18         tcp_nopush on;19         tcp_nodelay on;20         keepalive_timeout 65;21         types_hash_max_size 2048;22         # server_tokens off;23 24         # server_names_hash_bucket_size 64;25         # server_name_in_redirect off;26 27         include /etc/nginx/mime.types;28         default_type application/octet-stream;29 30         ##31         # SSL Settings32         ##33 34         ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE35         ssl_prefer_server_ciphers on;36 37         ##38         # Logging Settings39         ##40 41         access_log /var/log/nginx/access.log;42         error_log /var/log/nginx/error.log;43 44         ##45         # Gzip Settings46         ##47 48         gzip on;49 50         # gzip_vary on;51         # gzip_proxied any;52         # gzip_comp_level 6;53         # gzip_buffers 16 8k;54         # gzip_http_version 1.1;55         # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;56 57         ##58         # Virtual Host Configs59         ##60 61         include /etc/nginx/conf.d/*.conf;62         include /etc/nginx/sites-enabled/*;63 }64 

如何解读配置文件呢,可以从nginx架构模型和http协议方面入手
nginx架构模型通过master和worker的方式,实现单线程高效工作;显示对应的nginx的进程id,对应worker进程的个数,通过nginx对应的扩展模块,实现一些定制增强功能,以上是配置文件第1到9行的解读,接着向下不难看出这是一个http块的配置,所有http相关的配置都在()括号范围之中,然后是一些http协议连接的细节,是否开启长连接,是否启用ssl加密,是否启用数据压缩等的配置。接着往下面看,可以看到关于日志这块,nginx将连接和错误的日志记录在对应路径下,并且有清晰好理解的名字,access.log/error.log,在然后是虚拟主机配置,最后是注释部分关于mail块的配置,暂时按下不表。

2.3通过配置文件的解读,看看相关的路径内容(从上往下的顺序)

1.include /etc/nginx/modules-enabled/*.conf;

这个是nginx模块的汇总仓库,可以看到原始的配置文件在其他地方;

root@ub1804:/etc/nginx/modules-enabled# ls -l
总用量 8
lrwxrwxrwx 1 root root 54 620 22:04 50-mod-http-geoip.conf -> /usr/share/nginx/modules-available/mod-http-geoip.conf
lrwxrwxrwx 1 root root 61 620 22:04 50-mod-http-image-filter.conf -> /usr/share/nginx/modules-available/mod-http-image-filter.conf
lrwxrwxrwx 1 root root 60 620 22:04 50-mod-http-xslt-filter.conf -> /usr/share/nginx/modules-available/mod-http-xslt-filter.conf
lrwxrwxrwx 1 root root 48 620 22:04 50-mod-mail.conf -> /usr/share/nginx/modules-available/mod-mail.conf
lrwxrwxrwx 1 root root 50 620 22:04 50-mod-stream.conf -> /usr/share/nginx/modules-available/mod-stream.conf
2.include /etc/nginx/mime.types;

http块配置中,关于数据文件的类型定义,这个MME的数据类型,一开始是为了邮件中发送非文本的数据内容,并且能够根据数据类型提示调用对应解封装模块,
数据文件的类型分类:文本类型,图像类型,应用数据,音频类型,视频类型

root@ub1804:/etc/nginx# cat mime.types types {text/html                             html htm shtml;text/css                              css;text/xml                              xml;image/gif                             gif;image/jpeg                            jpeg jpg;application/javascript                js;application/atom+xml                  atom;application/rss+xml                   rss;text/mathml                           mml;text/plain                            txt;text/vnd.sun.j2me.app-descriptor      jad;text/vnd.wap.wml                      wml;text/x-component                      htc;image/png                             png;image/tiff                            tif tiff;image/vnd.wap.wbmp                    wbmp;image/x-icon                          ico;image/x-jng                           jng;image/x-ms-bmp                        bmp;image/svg+xml                         svg svgz;image/webp                            webp;application/font-woff                 woff;application/java-archive              jar war ear;application/json                      json;application/mac-binhex40              hqx;application/msword                    doc;application/pdf                       pdf;application/postscript                ps eps ai;application/rtf                       rtf;application/vnd.apple.mpegurl         m3u8;application/vnd.ms-excel              xls;application/vnd.ms-fontobject         eot;application/vnd.ms-powerpoint         ppt;application/vnd.wap.wmlc              wmlc;application/vnd.google-earth.kml+xml  kml;application/vnd.google-earth.kmz      kmz;application/x-7z-compressed           7z;application/x-cocoa                   cco;application/x-java-archive-diff       jardiff;application/x-java-jnlp-file          jnlp;application/x-makeself                run;application/x-perl                    pl pm;application/x-pilot                   prc pdb;application/x-rar-compressed          rar;application/x-redhat-package-manager  rpm;application/x-sea                     sea;application/x-shockwave-flash         swf;application/x-stuffit                 sit;application/x-tcl                     tcl tk;application/x-x509-ca-cert            der pem crt;application/x-xpinstall               xpi;application/xhtml+xml                 xhtml;application/xspf+xml                  xspf;application/zip                       zip;application/octet-stream              bin exe dll;application/octet-stream              deb;application/octet-stream              dmg;application/octet-stream              iso img;application/octet-stream              msi msp msm;application/vnd.openxmlformats-officedocument.wordprocessingml.document    docx;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet          xlsx;application/vnd.openxmlformats-officedocument.presentationml.presentation  pptx;audio/midi                            mid midi kar;audio/mpeg                            mp3;audio/ogg                             ogg;audio/x-m4a                           m4a;audio/x-realaudio                     ra;video/3gpp                            3gpp 3gp;video/mp2t                            ts;video/mp4                             mp4;video/mpeg                            mpeg mpg;video/quicktime                       mov;video/webm                            webm;video/x-flv                           flv;video/x-m4v                           m4v;video/x-mng                           mng;video/x-ms-asf                        asx asf;video/x-ms-wmv                        wmv;video/x-msvideo                       avi;
}
3.include /etc/nginx/sites-enabled/*

可用站点的默认配置

通过之前目录结构的观察,可以看到默认页面index的路径配置在/etc/nginx/sites-available/default中

── sites-available
│   └── default
├── sites-enabled
│   └── default -> /etc/nginx/sites-available/default

然后接着追查default文件内容,可以看到默认的server块配置的内容,得到关于http页面配置端口静态页面文件路径/var/www/html等关键信息。

default配置文件中的默认首页index 对应配置为三个,选哪一个呢?这几个文件在哪个路径下呢?

index index.html index.htm index.nginx-debian.html;

在/usr/share/nginx中找到idex.html;
在/var/www/html/中找到index.nginx-debian.html;这两个的默认内容一模一样;

default文件内容如下:

##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# In most cases, administrators will remove this file from sites-enabled/ and
# leave it as reference inside of sites-available where it will continue to be
# updated by the nginx packaging team.
#
# This file will automatically load configuration files provided by other
# applications, such as Drupal or Wordpress. These applications will be made
# available underneath a path with that package name, such as /drupal8.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
### Default server configuration
#
server {listen 80 default_server;listen [::]:80 default_server;# SSL configuration## listen 443 ssl default_server;# listen [::]:443 ssl default_server;## Note: You should disable gzip for SSL traffic.# See: https://bugs.debian.org/773332## Read up on ssl_ciphers to ensure a secure configuration.# See: https://bugs.debian.org/765782## Self signed certs generated by the ssl-cert package# Don't use them in a production server!## include snippets/snakeoil.conf;root /var/www/html;# Add index.php to the list if you are using PHPindex index.html index.htm index.nginx-debian.html;server_name _;location / {# First attempt to serve request as file, then# as directory, then fall back to displaying a 404.try_files $uri $uri/ =404;}# pass PHP scripts to FastCGI server##location ~ \.php$ {#	include snippets/fastcgi-php.conf;##	# With php-fpm (or other unix sockets):#	fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;#	# With php-cgi (or other tcp sockets):#	fastcgi_pass 127.0.0.1:9000;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#	deny all;#}
}# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
#server {
#	listen 80;
#	listen [::]:80;
#
#	server_name example.com;
#
#	root /var/www/example.com;
#	index index.html;
#
#	location / {
#		try_files $uri $uri/ =404;
#	}
#}

/etc/nginx中的其他配置项内容的阅读

proxy_params配置文件

root@ub1804:/etc/nginx# cat proxy_params 
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

uwsgi_params配置文件

root@ub1804:/etc/nginx# cat uwsgi_params uwsgi_param  QUERY_STRING       $query_string;
uwsgi_param  REQUEST_METHOD     $request_method;
uwsgi_param  CONTENT_TYPE       $content_type;
uwsgi_param  CONTENT_LENGTH     $content_length;uwsgi_param  REQUEST_URI        $request_uri;
uwsgi_param  PATH_INFO          $document_uri;
uwsgi_param  DOCUMENT_ROOT      $document_root;
uwsgi_param  SERVER_PROTOCOL    $server_protocol;
uwsgi_param  REQUEST_SCHEME     $scheme;
uwsgi_param  HTTPS              $https if_not_empty;uwsgi_param  REMOTE_ADDR        $remote_addr;
uwsgi_param  REMOTE_PORT        $remote_port;
uwsgi_param  SERVER_PORT        $server_port;
uwsgi_param  SERVER_NAME        $server_name;

snippets文件目录下snakeoil.conf文件和fastcgi-php.conf文件内容

snippets 单词翻译:片段

root@ub1804:/etc/nginx/snippets# ls
fastcgi-php.conf  snakeoil.conf
root@ub1804:/etc/nginx/snippets# tree
.
├── fastcgi-php.conf
└── snakeoil.conf0 directories, 2 files
root@ub1804:/etc/nginx/snippets# cat snakeoil.conf 
# Self signed certificates generated by the ssl-cert package
# Don't use them in a production server!ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
root@ub1804:/etc/nginx/snippets# cat fastcgi-php.conf 
# regex to split $uri to $fastcgi_script_name and $fastcgi_path
fastcgi_split_path_info ^(.+\.php)(/.+)$;# Check that the PHP script exists before passing it
try_files $fastcgi_script_name =404;# Bypass the fact that try_files resets $fastcgi_path_info
# see: http://trac.nginx.org/nginx/ticket/321
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;fastcgi_index index.php;
include fastcgi.conf;

小结:
关于nginx的安装,一条命令就完成了,然后就是关于nginx配置项的理解,文件在哪里,如何解读配置文件,其他配置文件的作用是啥,体现在页面中的哪些位置上呢?

##END提示,就先到这里吧,>!<

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

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

相关文章

同城跑腿小程序的崛起与用户体验革新

随着移动互联网的飞速发展&#xff0c;人们的生活方式正在发生深刻的变化。在这个快节奏的时代&#xff0c;时间成为了最宝贵的资源。在这样的背景下&#xff0c;同城跑腿小程序应运而生&#xff0c;以其高效、便捷的服务特性&#xff0c;迅速赢得了广大用户的青睐。本文将探讨…

puppet运维自动化

在现代信息技术管理中&#xff0c;自动化运维工具的应用已成为企业提升效率、降低成本的关键手段之一。Puppet作为一种强大的运维自动化工具&#xff0c;因其高效、灵活和可扩展的特点&#xff0c;受到越来越多企业的青睐。本文将探讨Puppet在运维自动化中的应用&#xff0c;包…

SpringBoot使用滑动窗口限流防止用户重复提交(自定义注解实现)

在你的项目中&#xff0c;有没有遇到用户重复提交的场景&#xff0c;即当用户因为网络延迟等情况把已经提交过一次的东西再次进行了提价&#xff0c;本篇文章将向各位介绍使用滑动窗口限流的方式来防止用户重复提交&#xff0c;并通过我们的自定义注解来进行封装功能。 首先&a…

代码随想录算法训练营第三十三天|452. 用最少数量的箭引爆气球、 435. 无重叠区间、 763.划分字母区间

452. 用最少数量的箭引爆气球 题目链接&#xff1a;452. 用最少数量的箭引爆气球 文档讲解&#xff1a;代码随想录 状态&#xff1a;没想出来 思路&#xff1a;对气球终点位置排序&#xff0c;从第一个气球终点位置射出箭&#xff0c;看这支箭可以尽可能穿过几个气球&#xff0…

Excel 宏录制与VBA编程 —— 12、日期相关

代码1 - 获取当前时间日期信息 代码2 - 时间日期格式 代码3 - 时间日期计算 代码4 - 时间日期案例 关注 笔者 - jxd

OceanBase v4.2 特性解析:如何用分页保序功能解决MySQL模式分页查询不稳定

导言 在MySQL业务迁移OceanBase过程中&#xff0c;经常遇到的一个问题是分页查询结果的不稳定性&#xff0c;这通常需要数据库DBA介入绑定执行计划。下面简单举个例子&#xff0c;以便大家更好地理解为什么有的分页查询&#xff0c;在原来的MySQL数据库下运行没有问题&#xf…

免费悬浮翻译器哪个好?测评5款悬浮翻译器

在享受休闲时光时&#xff0c;我们通常都希望不被打扰&#xff0c;对吧&#xff1f; 然而&#xff0c;有时打扰我们的并非是外界的干扰&#xff0c;而是在观看外语视频时&#xff0c;无法理解视频内容的烦躁感。 不过&#xff0c;今天本文将为大家揭开几款屏幕悬浮翻译软件的…

Python 脚本文件如何重新启动自身进程

有时候&#xff0c;我们需要重新启动正在运行的 Python 脚本程序。这不是简单的关闭程序再运行&#xff0c;需要从程序内部重新运行该程序。 使用 os.execv() 方法重新启动 Python 脚本。os.execv(path, args) 函数通过替换进程来执行新程序。 import os import sysdef resta…

基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f;感兴趣的可以先收藏起来&#xff0c;还…

深入理解二叉树遍历:前序、中序、后序和层级遍历的Java实现

前言 二叉树的遍历方式是对树中节点进行访问的方法&#xff0c;常见的包括前序、中序、后序和层级遍历。本文将深入探讨这些遍历方式的实现原理&#xff0c;并使用Java代码和图示进行详细讲解。 二叉树遍历介绍 在二叉树中&#xff0c;遍历指的是按照一定顺序访问树中的所有…

ctr/cvr预估之WideDeep模型

ctr/cvr预估之Wide&Deep模型 在探索点击率&#xff08;CTR&#xff09;和转化率&#xff08;CVR&#xff09;预估的领域中&#xff0c;我们始终追求的是一种既能捕获数据中的线性关系&#xff0c;又能发现复杂模式的模型。因子分解机&#xff08;Factorization Machines, …

华为大咖说 | 从《庖丁解牛》谈项目经理的三重境界

本文作者&#xff1a; 李庆&#xff08;华为项目管理能力中心高级项目管理专家&#xff09; 全文约1945字&#xff0c;阅读约需6分钟&#xff0c;请仔细看看哦~ 近日我重读庄子的《庖丁解牛》&#xff0c;感悟良多&#xff0c;有了更深的理解。以前读到此故事时&#xff0c;只…

微服务SpringCloud,SpringAliBaBa(2)

微服务02 1.网关路由 网络的关口&#xff0c;负责请求的路由、转发、身份校验。 有了网关之后&#xff0c;微服务的地址不用在暴露了&#xff0c;就暴露个网关地址。 快速入门 routes代表一套路由&#xff0c;pridicates是规则&#xff0c;对请求做出判断&#xff0c;看是哪…

[C++深入] --- malloc/free和new/delete

1 new运算符的拓展 1.1 自由存储区与堆的概念 在C++中,内存区分为5个区,分别是堆、栈、自由存储区、全局/静态存储区、常量存储区。 自由存储区是C++基于new操作符的一个抽象概念,凡是通过new操作符进行内存申请,该内存即为自由存储区。 new操作符从自由存储区(free st…

[大师C语言(第三十六篇)]C语言信号处理:深入解析与实战

引言 在计算机科学中&#xff0c;信号是一种软件中断&#xff0c;它允许进程之间或进程与内核之间进行通信。信号处理是操作系统中的一个重要概念&#xff0c;它允许程序对各种事件做出响应&#xff0c;例如用户中断、硬件异常和系统调用。C语言作为一门接近硬件的编程语言&am…

今日头条豆包大语言模型api接入python SDK,安装官方库报错,解决方法

豆包python大语言模型库安装指令&#xff1a; pip install volcengine-python-sdk 报错&#xff1a; note: This error originates from a subprocess, and is likely not a problem with pip.ERROR: Failed building wheel for volcengine-python-sdkRunning setup.py clea…

java8 将对象list中的某一个属性取出组成一个list

实体类 public class Sp {String spdm;String spmc;public Sp() {}public Sp(String spdm, String spmc) {this.spdm spdm;this.spmc spmc;}public String getSpdm() {return spdm;}public void setSpdm(String spdm) {this.spdm spdm;}public String getSpmc() {return sp…

数据库讲解---(数据库设计)

目录 一.数据库设计概述 1.1数据库设计的内容 1.1.1数据库的结构设计 1.1.2数据库的行为设计 1.2数据库设计方法 1.2.1直观设计法 1.2.2规范设计法 1.2.3计算机辅助设计法 1.2.4自动化设计法 1.3数据库设计的基本步骤 1.3.1需求分析 1.3.2概念结构设计 1.3.3逻辑结…

气象站的种类和应用范围可以根据不同的分类标准进行详细的划分和描述

气象站的种类和应用范围可以根据不同的分类标准进行详细的划分和描述。以下是从不同角度对气象站的种类和应用范围的介绍&#xff1a; 一、气象站的种类 根据用途和安装环境分类&#xff1a; 农业气象站&#xff1a;专为农业生产服务&#xff0c;监测土壤温度、湿度等参数&am…

替代LTC3855双通道多相带差分遥测DC-DC同步控制器

特性:双通道、180 定相控制器降低了所需的输入电容和电源感应噪声高效率&#xff1a;达 95%RSENSE 或 DCR 电流检测可编程 DCR 温度补偿0.75%、0.6V 输出电压准确度可锁相固定频率&#xff1a;250kHz 至 770kHz真正的远端采样差分放大器双路 N 沟道 MOSFET 同步驱动宽 VIN 范围…