1。执行nginx

能够执行nginx命令开启nginx:

nginx

假设nginx已经开启了,能够执行nginx命令加-s 參数来控制nginx的执行

nginx -s signal

signal的值:

  • stop — 高速关闭
  • quit — 优雅的关闭
  • reload — 又一次载入配置文件
  • reopen — 又一次打开日志文件

比如:要等nginx处理完当前的请求后关闭nginx能够用以下的命令

nginx -s quit

改动了配置文件后须要执行以下的命令

nginx -s reload

2,简单配置nginx

打开配置文件。一般在/etc/nginx/nginx.cnf中。按照自己安装參数而定。

nginx.conf 中已经包括了一个server块的配置案例,只是是凝视掉的。以下是一个server块的基本配置

http {
server {
}
}

server块以下能够配置一些location来指定请求url相应的本地资源

location / {
root /data/www;
}

上面表示全部的/ 以下的訪问资源都在/data/www 目录以下

location /images/ {
root /data;
}

这个表示全部/images/路径訪问的图片都在/data以下

那么上面的统一配置就是

server {
    listen 8080;

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

假设我訪问http://localhost/images/example.png的话。nginx就会返回文件文件夹中/data/images/以下的example.png图片返回给client

假设我訪问http://localhost/some/example.html的话,nginx就会返回文件文件夹中/data/www/以下的example.html图片返回给client

listen能够不指定。默认是8080

假设在执行期间改动了配置执行

nginx -s reload

假设配置验证通,但没有依照约定訪问到指定的文件能够查看/usr/local/nginx/logs 或/var/log/nginx以下的日志文件access.logerror.log

3,配置反向代理

server {
location / {
proxy_pass http://localhost:8080;
} location /images/ {
root /data;
}
}

proxy_pass指定反向代理的路径,全部符合/的路径都会到http://localhost:8080中获取资源

如:http://192.168.1.100/some/example.html 訪问的资源 事实上是 http://localhost/some/example.html获取的资源,这些对client是透明的。

4,主机名

服务器名称通过server_name指令指定,它决定哪个server来处理哪个请求.server_name 能够通过通配符,正则指定。

server {
listen 80;
server_name example.org www.example.org;
...
} server {
listen 80;
server_name *.example.org;
...
} server {
listen 80;
server_name mail.*;
...
} server {
listen 80;
server_name ~^(?<user>.+)\.example\.net$;
...
}

当一个请求同一时候满足多个主机名的时候优先选择的主机名有例如以下顺序。

1,全名称。准确的名称。

2。最长的通过*开头的通配符名称“*.example.org

3,最长的通过*结尾的通配符名称“mail.*

4,第一个匹配正則表達式的虚拟主机名

通配符仅仅能在主机名的開始和结束使用,“www.*.example.org”和“w*.example.org” 都是错误的写法,假设须要匹配这样的模式能够通过正則表達式指定,如“~^www\..+\.example\.org$” and“~^w.*\.example\.org$”。

星号代理主机名的一部分“*.example.org”不仅代表www.example.com还代表www.sub.example.com.example.org既能够代表example.org也能够代表*.example.org。

假设要使用正則表達式。主机名必须以波浪符~開始

server_name  ~^www\d+\.example\.net$;

假设不是以波浪符号~还是,那么它被觉得是一个全主机名。

假设正則表達式主机名中包括*,那么它被觉得是一个通配符主机名。^和$是必需的。他们是语法和逻辑上的要求。

通过正则捕获能够再后面的变量中引用

server {
server_name ~^(www\.)? (? <domain>.+)$; location / {
root /sites/$domain;
}
}

正则表达捕获能够支持例如以下的语法

?

<name>

Perl 5.10 compatible syntax, supported since PCRE-7.0
?'name' Perl 5.10 compatible syntax, supported since PCRE-7.0
?P<name> Python compatible syntax, supported since PCRE-4.0

正则捕获也能够通过数字參数获取

server {
server_name ~^(www\.)? (.+)$; location / {
root /sites/$2;
}
}

$2匹配第二个括号里的正則表達式匹配的内容。

混合主机名

server {
listen 80;
server_name example.org www.example.org "";
...
}

假设nginx没有能够匹配请求的url主机名的server模块,则默认返回空的主机名来响应请求。

假设用户通过ip訪问,这server_name能够配置ip主机名来响应请求

server {
listen 80;
server_name example.org
www.example.org
""
192.168.1.1
;
...
}

-表示的主机名代表了全部错误的主机名

server {
listen 80 default_server;
server_name _;
return 444;
}

在有些时候你可能会訪问*.example.com 但当中包好 www.example.com和example.com 且这两个訪问跟频繁,最好配置成这样

server {
listen 80;
server_name example.org www.example.org *.example.org;
...
}

而不要是这样

server {
listen 80;
server_name .example.org;
...
}

假设主机名过长须要在http模块中改动參数

server_names_hash_bucket_size

这个參数的值能够使32或64,取决于你的cpu缓存栈的大小

假设你将他设为32,但你的服务器名称非常长如:too.long.server.name.example.org。那么它会报错

could not build the server_names_hash,
you should increase server_names_hash_bucket_size: 32

你必需要把它的參数设成两倍

http {
server_names_hash_bucket_size 64;
...

假设配置的主机名过多就会报这个错

could not build the server_names_hash,
you should increase either server_names_hash_max_size: 512
or server_names_hash_bucket_size: 32

解决方法是尽可能地将server_names_hash_max_size设置的和主机名的个数一样,假设这个配置起不了做用,或配置后导致nginx的启动时间过长的话,就添加server_names_hash_bucket_size的值

nginx使用指南的更多相关文章

  1. Nginx重写规则指南 转

    http://www.ttlsa.com/nginx/nginx-rewriting-rules-guide/ Nginx重写规则指南 当运维遇到要重写情况时,往往是要程序员把重写规则写好后,发给你, ...

  2. 【翻译】nginx初学者指南

    nginx初学者指南 本文翻译自nginx官方网站:http://nginx.org/en/docs/beginners_guide.html#control 该指南会对nginx做一个简要的介绍,同 ...

  3. Nginx优化指南

    大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了!而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能 ...

  4. Nginx优化指南+LINUX内核优化+linux连接数优化+nginx连接数优化

    Most setup guides for Nginx tell you the basics - apt-get a package, modify a few lines here and the ...

  5. Nginx初学者指南

    Starting, Stopping, and Reloading Configuration To start nginx, run the executable file. Once nginx ...

  6. [Linux] nginx管理员指南基本功能

    1.运行时控制Nginx进程 NGINX有一个主进程和一个或多个工作进程. 如果启用了缓存,则缓存加载器和缓存管理器进程也会在启动时运行. 主进程的主要目的是读取和评估配置文件,以及维护工作进程. 工 ...

  7. nginx配置指南

    nginx(读作engine x)是一款设计优秀的Http服务器, 其占用内存少, 负载能力强且稳定性高, 正在被越来越多的用户所采用. nginx可以为HTTP, HTTPS, SMTP, POP3 ...

  8. 转:nginx入门指南,快速搭建静态文件服务器和代理服务器

    本文介绍 Nginx 入门基础知识,让你迅速搭建 Nginx 服务器.主要内容包括 Nginx 安装和简单使用.Nginx的简单原理.Nginx 配置文件的结构.如何使用 Nginx 来提供静态文件服 ...

  9. Nginx 重写规则指南1

    作者:运维生存时间 - 默北 链接:www.ttlsa.com/nginx/nginx-rewriting-rules-guide/ 当运维遇到要重写情况时,往往是要程序员把重写规则写好后,发给你,你 ...

随机推荐

  1. 【bzoj3105】[cqoi2013]新Nim游戏 高斯消元求线性基

    题目描述 传统的Nim游戏是这样的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴数量可以不同).两个游戏者轮流操作,每次可以选一个火柴堆拿走若干根火柴.可以只拿一根,也可以拿走整堆火柴,但不能同时从 ...

  2. ACM程序设计选修课——1044: (ds:队列)打印队列(queue模拟)

    问题 A: (ds:队列)打印队列 时间限制: 1 Sec  内存限制: 128 MB 提交: 25  解决: 4 [提交][状态][讨论版] 题目描述 网络工程实验室只有一台打印机,它承担了非常繁重 ...

  3. Springboot 版本+ jdk 版本 + Maven 版本的匹配

    Spring boot 版本 Spring Framework jdk 版本 maven 版本 1.2.0 版本之前 6 3.0 1.2.0 4.1.3+ 6 3.2+ 1.2.1 4.1.3+ 7 ...

  4. IDEA重新打jar包时报错MANIFEST.MF already exists in VFS

    报错原因:曾经打过jar包了,把之前的包删掉无用,VFS:虚拟文件系统.即使删掉之前的包,信息依然会在此处.故删掉MANIFEST文件夹,重新打包即可解决.

  5. L2-3. 悄悄关注【STL+结构体排序】

    L2-3. 悄悄关注 时间限制 150 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 新浪微博上有个“悄悄关注”,一个用户悄悄关注的人,不出现在 ...

  6. Unity3D Shader 入门之简单案例的实现(通过法线实现颜色变化)

    在没有接触Unity3D  Shader 之前,总感觉shader特别神奇,因为听说是对渲染流水线进行编程,就是对GPU进行编程.听着特别高大上.这不,最近刚刚接触Shader,学了几个小案例,然后本 ...

  7. python生成器、迭代器、__call__、闭包简单说明

    1.生成器 这种一边循环一边计算的机制,称为生成器:generator,最简单的方法是把生成式的[]改为(). >>> l=(x * x for x in range(1, 11) ...

  8. servlet跳转页面后图片不显示

    我是用图片的相对路径,原先直接打开jsp的话图片是可以正常显示的,通过servlet跳转之后图片就显示不出来了 后来发现是图片路径的问题, 我是将图片放在WebRoot里面自己创建的img中,原先图片 ...

  9. BZOJ2002弹飞绵羊

    动态树LCT模板题 #include<cstdio> #include<cctype> #include<algorithm> using namespace st ...

  10. mybatis学习网站

    http://www.mybatis.org/mybatis-3/zh/index.html