nginx入门

【Nginx】Nginx从入门到实战:全面指南 Nginx是一个功能强大且灵活的Web服务器和反向代理服务器,适用于各种场景,从简单的静态网站到复杂的高流量动态应用。通过合理的配置和优化,Nginx能够提供卓越的性能和可靠性。 阅读详情

安装

# tar zxvf nginx-1.10.0.tar.gz
# cd nginx-1.10.0/
# ./configure --prefix=/usr/local/nginx-1.10.0 \ 
              --user=nobody                    \
			  --group=nobody                   \
			  --without-select_module          \
			  --without-poll_module            \
			  --with-http_ssl_module
# make
# make install 


注:

  • --without-select_module  --without-poll_module:因为在linux下,有更高效的epoll可用,所以禁用select和poll。
  • --user=nobody --group=nobody:一个非特权的用户。worker process将使用这个用户。


启动、停止与重新加载

# /usr/local/nginx-1.10.0/sbin/nginx
# ps -ef | grep nginx
root       8195      1  0 10:33 ?        00:00:00 nginx: master process /usr/local/nginx-1.10.0/sbin/nginx
root       8196   8195  0 10:33 ?        00:00:00 nginx: worker process

# /usr/local/nginx-1.10.0/sbin/nginx -s stop    	//fast shutdown

# /usr/local/nginx-1.10.0/sbin/nginx            
# /usr/local/nginx-1.10.0/sbin/nginx -s quit    	//graceful shutdown


# /usr/local/nginx-1.10.0/sbin/nginx
# /usr/local/nginx-1.10.0/sbin/nginx -s reload		//reloading the configuration file


配置文件结构

nginx包含一些模块,这些模块的行为由配置文件(通常是nginx.conf)中的指令(Directive)控制;指令分为简单指令(SimpleDirective)和块指令(BlockDirective)。
SimpleDirective := Name [Space-Separated-Param-List];
BlockDirective  := Name [Space-Separated-Param-List] { Directive-List }
Directive-List  := Null | SimpleDirective Directive-List | BlockDirective Directive-List

如果一个BlockDirective有内部Directive,那么它就是内部Directive的context; 在配置文件中,最外层的Directive的context是不可见的main context。例如:

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile      on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }
}


worker_processes, worker_connections, include, default_type, sendfile, keepalive_timeout, listen, server_name, root, index是SimpleDirective;
events, http, server, location是BlockDirective;
location的context是server,server的context是http,http和events的context是main;


配置例1:服务静态内容

作为http服务器, nignx最基本的功能是服务静态内容(html页面、图片)。本例中,我们搭建这样一个服务器,它根据用户的请求,返回html页面(位于本地文件系统/data/www)或者图片(位于本地文件系统/data/images)。
为此,我们需要配置一个BlockDirective server,它将保护两个BlockDirective  location:一个提供html页面服务,另一个提供图片服务。用户请求的URI的最长匹配若为页面location,则返回html页面;若为图片location,则返回图片。

创建本地目录,对应两个location

mkdir -p /data/www
mkdir -p /data/images</span>


示例html页面和图片

# vim /data/www/index.html
<!DOCTYPE html>
<html lang="UTF-8">
    <head>
        <title>
            helloworld
        </title>
    </head>
    <body>
        Hello, Nginx!
    </body>
</html>

# cp basketball.jpg /data/images/


配置文件

# cp /usr/local/nginx-1.10.0/conf/nginx.conf /usr/local/nginx-1.10.0/conf/nginx.conf.bak
# vim /usr/local/nginx-1.10.0/conf/nginx.conf

user  nobody;
worker_processes  4;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

        location / {
           root /data/www;
        }
        location /images/ {
           root /data;
        }
    }
}


测试

reload nginx

访问 http://192.168.75.138/index.html

访问 http://192.168.75.138/images/basketball.jpg

注:

  • 显然,在nginx.conf中,我们配置了一个server,它监听80端口,server name是localhost。有意思的是两个location,它们通过最长匹配的方式来定位用户请求的静态文件。例如:
  • 访问http://192.168.75.138/index.html时,URI是"/index.html"。它和location /是匹配的,匹配内容就是 "/",匹配长度为1;它和localtion /images/不匹配。所以由location /来定位用户请求的文件。
  • 访问http://192.168.75.138/images/basketball.jpg时,URI是"/images/basketball.jpg"。它和location /是匹配的,匹配内容是"/",匹配长度是1;它和localtion /images/也是匹配的,匹配内容是"/images/",匹配长度是8,为最长匹配。所以由location /images/来定位用户请求的文件。
  • 如何定位请求文件呢?最长匹配的location的root + URI。对于第一个,"/data/www" + "/index.html",即本地文件/data/www/index.html;对于第二个,"/data" + "/images/basketball.jpg",即本地文件/data/images/basketball.jpg。

配置例2:简单的代理服务器

在本例中,我们将配置两个http server,一个server作为另一个的代理。为了简单起见,这两个server运行在同一个nginx实例之内,只是端口不同。实际上,这两个server完全可以运行于不同主机的不同nginx之内。
  • 代理server(proxy server):       监听80端口,若用户请求的是图片(URI匹配"/images/"),则自己从本地文件系统提供服务。若为其他请求,转发给"被代理server";
  • 被代理server(proxied server):监听8080端口。它也使用本地文件系统(/data/upstream1)来提供静态服务。实际上,这个被代理server可以是其他服务器,例如动态页面服务器tomcat。

本地文件结构

# tree /data/
/data/
├── images
│   └── basketball.jpg
└── upstream1
    └── index.html

配置文件


worker_processes  4;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       8080;
        server_name  localhost-proxied;
        root /data/upstream1;

        location / {
        }
    }

    server {
        listen       80;
        server_name  localhost-proxy;

        location / {
            proxy_pass http://localhost:8080/;
        }
        location ~\.(gif|jpg|png)$ {
            root /data/images;
        }
    }
}


测试

reload nginx
访问http://192.168.75.138/index.html:    默认端口是80,所以请求发送至proxy server;由于最长匹配是location /,故转发至proxied server来服务;浏览器显示"Hello, Nginx!"
访问http://192.168.75.138/basketball.jpg:默认端口是80,所以请求发送至proxy server;由于最长匹配是location ~\.(gif|jpg|png)$,所以由proxy server服务,返回的文件是"/data/images" + "/basketball.jpg",即/data/images/basketball.jpg;浏览器显示该图片。



注:
  • 在proxied server中,location的root位于它的context中,这样能够工作的原因是"内部覆盖外部",也就是,若location定义了自己的root则使用自己的root,若没有定义,则使用最近外层的root;
  • 在proxy server中,location ~\.(gif|jpg|png)$的参数是一个正则表达式,它匹配所有以.gif, .jpg, .png结尾的URI。正则表达式以"~."开始(但是需要转意,故写为"~\.")。若一个URI和正则表达式匹配,匹配字符串相当于整个URI,故为最长匹配,由这个location提供服务。


配置例3:FastCGI代理

和配置例2类似,只是被代理服务是fastCGI
server {
    location / {
        fastcgi_pass  localhost:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param QUERY_STRING    $query_string;
    }

    location ~ \.(gif|jpg|png)$ {
        root /data/images;
    }
}


AVL Cruise 2020.1 安装教程 阅读详情

相关推荐

STM32CubeMX+FreeRTOS+CAN总线+传感器实战:多任务系统与通信融合开发详解

本文详细介绍了基于STM32CubeMX和FreeRTOS的CAN总线与光电传感器融合开发实战。通过多任务系统设计,实现传感器数据采集与CAN通信的协同工作,提供完整的配置例程和调试技巧,适用于工业控制与机器人感知等应用场景。

n2o3p4的博客 734

centos配置nginx

步骤如下 1 安装PCRE库 cd /usr/local/lib wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.33/pcre-8.33.tar.gz tar -zxvf pcre-8.33.tar.gz cd pcre-8.33 ./configure make && make install ./configure出现如下错误: 解决办法:yum install -y gcc gcc-c++ 2 安装SS

adam_De的博客 169

Cy7c68013A速度测试教程

手里有一个cypress的CY7C68013A模块,一直没空玩。今天便测一下,这个模块的USB2.0速率。 1、开发工具下载 在cypress下载如下开发工具包(开发工具包下载地址) 2、驱动安装 一路Next即可 3、下载CyControl.exe 4、驱动安装 模块连接电脑,此时由于没有安装驱动,在设备管理器中显示未知设备...

LV9586的博客 5892

CentOS7安装Nginx

1、环境准备(nginx中gzip模块需要 zlib库,rewrite模块需要 pcre 库,ssl功能需要openssl库) 1.1、安装gcc gcc-c++ yum install -y gcc gcc-c++ 安装成功: 1.2、安装PCRE库 1.2.1、先下载 wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.33/p...

卫卫的博客 181

Shell编程规范及变量

文章目录一.Shell脚本1.1Shell概述1.2Shell脚本 一.Shell脚本 1.1Shell概述 Shell是Linux系统中开机自动加载的一个特殊程序,它将用户输入的指令,转换成Linux内核可以识别的语言,从而让内核执行调用硬件。 Bash是Linux系统中默认使用shell的程序,它位于/bin/bash。 1.2Shell脚本 将需要执行的命令保存到一个文件中,按照顺序执行,它不需要编译,它是解释型的 ...

夏颜的博客 3673

资源分享·病毒样本下载资源分享

一、微步云沙箱 微步在线云沙箱https://s.threatbook.cn/ 使用病毒sha256即可寻找病毒样本;该站点也可上传可疑文件/可疑URL地址到沙箱中,进行分析 。 以永恒之蓝为例,样本sha256是:ed01ebfbc9eb5bbea545af4d01bf5f1071661840480439c6e5babe8e080e41aa 下载样本或流量监控,需要消耗积分: 二、AnyRun Interactive Online Malware Analysis Sandbox.

不忘初心,护天下安全! 2万+

Nginx安装及配置说明

Nginx 安装(centos7) 首先安装必要的库(rewrite模块需要 pcre 库,ssl 功能需要openssl库) 安装目录:/usr/local 零..安装gcc gcc-c++(如新环境,未安装请先安装) yum install -y gcc gcc-c++ 一. 安装pcre 1. wgethttp://jaist.dl.sourceforge.ne...

990

【100%通过率】华为OD机试真题 C++ 实现【打印机队列】【2022.11 Q4 新题】

有5台打印机打印文件,每台打印机有自己的待打印队列。因为打印的文件内容有轻重缓急之分,所以队列中的文件有1~10不同的代先级,其中数字越大优先级越高。打印机会从自己的待打印队列中选择优先级最高的文件来打印。如果存在两个优先级一样的文件,则选择最早进入队列的那个文件。现在请你来模拟这5台打印机的打印过程。

MISAYAONE的博客 9946

nginx 安装

nginx下载地址 Windows下nginx设置开机自启动 方法1: 把nginx.exe生成快捷方式,放入该路径下 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 方法2: 第一步:下载 WinSW https://github.com/winsw/winsw/releases/download/v2.10.3/WinSW.NET4.exe 64位系统 https://github.com/winsw/winsw/releas

程柯梦想 206

YOLO26 改进 - 注意力机制 | Mask Attention掩码注意力,可学习掩码矩阵破解低分辨率特征提取难题 | 2025 预印

本文提出了用于低分辨率图像分割的MaskAttn - UNet框架,并将其核心的掩码注意力机制集成到YOLO26中。传统U - Net类模型难以捕捉全局关联,Transformer类模型计算量大,而掩码注意力机制通过可学习的掩码,让模型选择性关注重要区域,融合了卷积的局部效率和注意力的全局视野。其工作流程包括特征适配、掩码生成、定向注意力计算和特征融合。我们将掩码注意力机制代码集成到YOLO26中。

魔改工程师的博客 834

微信浏览器input[file]拍照点确认后强刷新解决

微信浏览器input强刷新,input h5强刷新,微信浏览器上传图片后刷新,h5表单强刷新,h5调用拍照后返回首页,h5调用拍照后刷新,微信浏览器强制刷新,iOS上微信浏览器input强刷新,iOS上微信浏览器上传图片后强刷新,ios微信浏览器上传图片后页面刷数据,h5在ios浏览器闪频,h5在ios微信打开时强制刷新,ios手机上调用相机后页面刷新,ios手机上调用相机后页面后重置,ios拍照后刷新,ios拍照完页面大刷新

江拥羡橙的博客 1349

CentOS7安装Nginx及配置

Nginx是一款轻量级的网页服务器、反向代理服务器。相较于Apache、lighttpd具有占有内存少,稳定性高等优势。 它最常的用途是提供反向代理服务。 TIPS: 在Centos下,yum源不提供nginx的安装,可以通过切换yum源的方法获取安装。也可以通过直接下载安装包的方法,**以下命令均需root权限执行**: 首先安装必要的库(nginx 中gzip模块需要 zl...

qq_40673345的博客 313

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Nginx快速入门

nginx快速入门Nginx简介Nginx的特点Nginx作用Nginx安装windos安装启动Nginx检查nginx是否启动成功关闭nginxlinux下安装1、安装gcc2、PCRE pcre-devel 安装3、zlib 安装4、OpenSSL 安装下载linux版的安装包网址同上配置Nginx常用命令Nginx 配置文件nginx.conf全局块events 块http 块http 全局块server 块全局 server 块location 块Nginx 的反向代理正向代理反向代理基于Nginx

dyk 2246

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

nginx开发从入门到精通

http://tengine.taobao.org/book/index.html

qq_23350817的博客 1582

Nginx入门

Nginx 以其轻量级、高并发处理能力、低内存消耗和丰富的功能特性,在互联网行业中被广泛应用。如果配置文件语法正确,会显示类似 “nginx: the configuration file /etc/nginx/nginx.conf syntax is ok” 的提示信息;在 http 块中,还可以包含多个 server 块,每个 server 块用于配置一个虚拟主机。参数设置了每台服务器的权重,权重越高,分配到的请求越多。的后端服务器组,并设置相关的请求头信息。的后端服务器组,其中包含三台服务器,通过。

wangwcy的博客 1167

Nginx从入门到精通

Nginx从入门到精通

faihtua的专栏 361

Nginx 从入门到精通

Nginx是一款高性能的HTTP服务器和反向代理服务器,具有高并发处理能力、低资源消耗和灵活配置等优势。本文从入门到精通详细介绍了Nginx的配置与优化,包括基础配置结构、虚拟主机设置、反向代理、负载均衡、HTTPS配置、静态资源优化等核心功能。同时讲解了性能调优方法、监控日志分析和实际应用案例,并提供了Nginx模块扩展和安全加固的最佳实践,帮助开发者充分发挥Nginx的高性能特性。

weixin_51820421的博客 1323

Nginx入门学习

nginx 反向代理 负载均衡 动静分离 高可用 原理分析

weixin_52359996的博客 1189

快速入门nginx

快速入门nginx:1.nginx前言、2.什么是nginx、3.Nginx作用?、4.Nginx的安装、5.Nginx常用命令

雙馬程序猿 673

Nginx——快速入门

Nginx——快速入门

weixin_72076848的博客 465

视频教程-Nginx入门视频课程-Nginx

Nginx入门视频课程 全栈工程师,从事软件开发及软件教育培训多年,具有丰富...

weixin_31061053的博客 1005
上一篇: rbd map失败的一个问题
下一篇: nginx模块开发之一
for_tech
博客等级 码龄11年 50粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值