Nginx-2.初学者使用
Nginx有一个master进程和几个worker进程。master进程用来读取和评估配置文件,以及维护worker进程。worker进程用来处理实际的请求。Nginx使用事件模型和基于操作系统的逻辑来实现高效的worker处理进程。worker进程的数量可以定义到配置文件中,或者根据cpu核心数来自动调节。
默认配置文件nginx.conf,默认地址nginx/conf。
启动,停止,重新加载配置文件
语法
nginx -s signal
signal可以是以下几个:
- stop 快速停止
- quit 优雅停止
- reload 重新加载配置文件
- reopen 重新打开配置文件
demo:
nginx -s quit #优雅的停止。和启动的用户必须是同一个。
nginx -s reload #改了配置文件要重洗加载生效。
nginx收到reload信号之后,master进程会检查配置文件,如果没有过,回滚配置,继续使用旧的配置文件。如果过了,会先生成一个新的worker进程,然后给老的worker进程发送信号。老的worker进程收到消息会停止接收新的连接,但是会执行完已经存在的连接,最后退出。
Unix系统的kill命令也可以用来发送signal给nginx。假设nginx的master进程id是1628,使用下面格式
kill -QUIT 1628
ps用来看所有的nginx进程
ps -ax | grep nginx
配置文件的结构
nginx的模块(功能)通过配置文件的指令来控制。指令分为简单指令和块指令。简单指令由指令名和参数构成,中间用空格分隔,以分号结尾。块指令由指令名后跟{}构成。
如果一个指令块可以包含其他指令,这个就是一个Context,比如 events,http,server,location。
配置文件最外层的指令叫main context。比如events 和 http。
# 表示注释。
简单来说,一个配置文件要一个http,包含一个server,server包含一个location就可以了。
为静态内容提供服务
通过server块指令里面listen和server_name指令来判断具体的server。然后再根据里面的location指令块的参数来判断。
先定义一个http指令块。
http{
server{
listen 8080;#可以写127.0.0.1:8080等
server_name localhost;#域名
}
}
server里面放location。
location / {
root /data/www;
}
请求匹配location的/地址,把后面的内容加到root指令参数"/data/www"后面,可以指向到物理地址。如果有多个匹配,nginx会选最长的。
比如再加一个
location /images/ {
root /data;
}
那么images的匹配会到后面这个。
改完之后reload生效配置文件。
nginx -s reload
设置一个简单的代理服务器
设置两个nginx实例。
第一个
server {
listen 8080;
root /data/up1;
location / {
}
}
所有8080的请求都会到/data/up1下面。
第二个
server {
location / {
proxy_pass http://localhost:8080;
}
location ~ \.(gif|jpg|png)& {
root /data/images;
}
}
通过正则(正则表达式必须以~和空格开头)匹配gif等图片文件,请求映射到/data/images目录下,其他的通过proxy_pass指令代理到localhost:8080下面。
设置一个FastCGI代理
CGI(Common Gateway Interface) is an interface specification for web servers to execute programs that execute like console applications (also called command-line interface programs) running on a server that generates web pages dynamically.
nginx 可以把请求路由转发到一些比如php写的框架服务上。基本的用法是使用fastcgi_pass指令替换proxy_pass指令。然后用fastcgi_param来设置需要的转发的参数。
举个例子:
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;
}
}
Nginx-2.初学者使用的更多相关文章
- Nginx 配置从零开始
作为一个 nginx 的初学者记录一下从零起步的点滴. 基本概念 Nginx 最常的用途是提供反向代理服务,那么什么反向代理呢?正向代理相信很多大陆同胞都在这片神奇的土地上用过了,原理大致如下图: 代 ...
- Nginx 从0开始学
作为一个 nginx 的初学者记录一下从零起步的点滴. 基本概念 Nginx 最常的用途是提供反向代理服务,那么什么反向代理呢?正向代理相信很多大陆同胞都在这片神奇的土地上用过了,原理大致如下图: 代 ...
- nginx http模块开发入门
导语 本文对nginx http模块开发需要掌握的一些关键点进行了提炼,同时以开发一个简单的日志模块进行讲解,让nginx的初学者也能看完之后做到心里有谱.本文只是一个用作入门的概述. 目录 背景 主 ...
- 零基础学完Python的7大就业方向,哪个赚钱多?
“ 我想学 Python,但是学完 Python 后都能干啥 ?” “ 现在学 Python,哪个方向最简单?哪个方向最吃香 ?” “ …… ” 相信不少 Python 的初学者,都会遇到上面的这些问 ...
- 【翻译】nginx初学者指南
nginx初学者指南 本文翻译自nginx官方网站:http://nginx.org/en/docs/beginners_guide.html#control 该指南会对nginx做一个简要的介绍,同 ...
- Nginx初学者指南
Starting, Stopping, and Reloading Configuration To start nginx, run the executable file. Once nginx ...
- [Linux] PHP程序员玩转Linux系列-nginx初学者引导
1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...
- Nginx文档-初学者指南
原文档: http://nginx.org/en/docs/beginners_guide.html 译者:Oopsguy 本指南旨在介绍nginx基本内容和一些在Nginx上可以完成的简单任务.这里 ...
- 【夯实Nginx基础】Nginx工作原理和优化、漏洞
本文地址 原文地址 本文提纲: 1. Nginx的模块与工作原理 2. Nginx的进程模型 3 . NginxFastCGI运行原理 3.1 什么是 FastCGI ...
- ASP.NET Core 缓存技术 及 Nginx 缓存配置
前言 在Asp.Net Core Nginx部署一文中,主要是讲述的如何利用Nginx来实现应用程序的部署,使用Nginx来部署主要有两大好处,第一是利用Nginx的负载均衡功能,第二是使用Nginx ...
随机推荐
- Google搜索成最大入口,简单谈下个人博客的SEO
个人静态博客SEO该考虑哪些问题呢?本篇文章给你答案 咖啡君在开始写文章时首选了微信公众号作为发布平台,但公众号在PC端的体验并不好,连最基本的文章列表都没有,所以就搭建了运维咖啡吧的网站,可以通过点 ...
- SVN打patch,某Java文件提示svn:mime-type = application/octet-stream的问题
在使用SVN合版本时发现某文件有冲突,正常冲突文件是可以编辑修改的,但是该文件无法编辑,我只好选择后续修改选项,问题好诡异啊!!!在解决完其他冲突后,我选择了在eclipse开发工具内将修改的代码调整 ...
- LeetCode 第三题--无重复字符的最长子串
1. 题目 2.题目分析与思路 3.思路 1. 题目 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3 ...
- django操作命令
下载安装 pip3 install django==1.11.21 -i https://pypi.tuna.tsinghua.edu.cn/simple 创建项目 1.终端找到存放项目的文件夹,dj ...
- Django CBV方法装饰器
from django.utils.decorators import method_decorator 1.在post 或 get方法 添加 @method_decorator(装饰器) 2.给类添 ...
- Codeforces Choosing Laptop 题解
这题实在是太水了,具体看注释 蒟蒻的方法是一边找过时的电脑一边比大小 蒟蒻不才,只会C++ 其实还会free basic,但它已经过时了 附: 本题洛谷网址 Codeforces网址 希望蒟蒻的题解能 ...
- basic-pentesting-1 靶机提权
原文地址:https://www.payload.com.cn/ basic-pentesting-1 下载地址: https://www.vulnhub.com/entry/basic-pent ...
- Isx个人第4次作业—Alpha项目测试
标题 内容 这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience 这个作业要求在哪里 https:// ...
- [转]在C#中调用C语言函数(静态调用Native DLL,Windows & Microsoft.Net平台)
原文:https://blog.csdn.net/yapingxin/article/details/7288325 对于不太了解.Net的人,如果想要了解.Net,我必须给他介绍P/Invoke.P ...
- go--->beego框架安装
beego 安装 1.新建gopath 工程目录 2.在新建的工程目录中执行go get github.com/astaxie/beego 命令 3.再执行go get github.com/beeg ...