澳门在线威尼斯官方 > 电脑操作 > 澳门在线威尼斯官方Nginx安装记录小结,nginx常用

原标题:澳门在线威尼斯官方Nginx安装记录小结,nginx常用

浏览次数:86 时间:2019-10-06

ngx_http_ssl_module

1、ssl on|off;
在虚拟服务器上启动https协议
安全上下文:http,server
2、ssl_certificate file;
指定当前https协议使用的SSL证书,证书需为pem格式。
安全上下文: http,server
3、ssl_certificate_key file;
指定当前https协议所使用证书的私钥文件
安全上下文: http,server
4、ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2];
指定支持的ssl协议的版本,默认为后三个
安全上下文: http,server
5、ssl_session_cache off|none|[builtin[:size]] [shared:NAME:size];
用于设置存储ssl会话参数的缓存类型及大小
释义:
builtin[:size]:使用OpenSSL内建的缓存,此缓存为每worker进程私有;
shared:NAME:size:在各worker之间使用一个共享的缓存
安全上下文: http,server
6、ssl_session_timeout time;
设置客户端可复用缓存的会话参数的时间
安全上下文: http,server
示例:
    server {
        listen 192.168.0.83:443 ssl;
        server_name www2.abc.com;
        root /data/https;
        ssl on;
        ssl_certificate /etc/nginx/ssl/nginx.crt;
        ssl_certificate_key /etc/nginx/ssl/nginx.key;
        ssl_session_cache shared:SSLCACHE:20m;
    }

启动nginx报错:

nginx: [emerg] getpwnam("nginx") failed in /usr/local/nginx/conf/nginx.conf:2

是因为配制文件中动用的运转账户在系统中并未找到
化解办法:

useradd -G groupname username

ngx_http_core_module

布署格式:

http {
    ... ...
    server {
        ...
        server_name
        root
        location [OPERATOR] /uri/ {
        ...
        }
    }
    server {
        ...
    }
}

大面积配置指令:

与套接字相关的配置:
1、server { ... }
虚拟主机配置字段
安全上下文:http
示例:
    server {
        listen address[:PORT]|PORT;
        server_name SERVER_NAME;
        root /PATH/TO/DOCUMENT_ROOT;                            
    }
2、listen address[:port] [default_server] [ssl] [http2|spdy]  [backlog=number] [rcvbuf=size] [sndbuf=size];
指定监听的地址和端口等,常用选项:
    default_server:设定为默认虚拟主机
    ssl:限制仅能够通过ssl连接提供服务
    backlog=number:后援队列长度
    rcvbuf=size:接收缓冲区大小
    sndbuf=size:发送缓冲区大小
安全上下文:server
示例:
    # 监听指定的IP及端口
    listen 192.168.4.119:80;
    # 监听指定端口只能通过SSL
    listen 443 ssl;
3、server_name name ...;
指明虚拟主机的主机名称,后可跟多个由空白字符分隔的主机名称;
安全上下文:server
示例:
    # 支持*通配任意长度的任意字符
    server_name *.test.com www.test.*;
    # 支持~起始的字符做正则表达式模式匹配
    server_name ~^wwwd+.test.com$
4、tcp_nodelay on | off;
在keepalived模式下的连接是否启用tcp_nodelay选项
安全上下文:http,server,location
5、tcp_nopush on|off;
在sendfile模式下,是否启用选项
安全上下文:http,server,location    
6、sendfile on | off;
是否启用sendfile功能
安全上下文:http,server,location,if in location
定义路径相关的配置:
7、root path; 
设置web资源路径映射,用于指明用户请求的url所对应的本地文件系统上的文档所在目录路径
安全上下文:http,server,location,if in location
8、location [ = | ~ | ~* | ^~ ] uri { ... }
设置请求的uri对应的资源。在一个server中location配置段可存在多个,用于实现从uri到文件系统的路径映射;ngnix会根据用户请求的uri来检查定义的所有location,并找出一个最佳匹配,而后应用其配置。其中:
    =:对uri做精确匹配
    ^~:对uri的左半部分做匹配检查,不区分字符大小写
    ~:对uri做正则表达式模式匹配,区分字符大小写
    ~*:对uri做正则表达式模式匹配,不区分字符大小写
    不带符号:匹配起始于此uri的所有的url
    @:定义位置名称,实现资源跳转
匹配优先级:=, ^~, ~/~*,不带符号;
安全上下文:server,location
示例:
server {
    listen 192.168.4.119:80;
    server_name www.test.com;
    root /data/web;    #设置虚拟主机的web根目录
    # = 精确匹配/data/web/test目录下的test.html文件
    location = /test.html {
        root /data/web/test;  #指定location的web根目录
    }
    # ~ 正则匹配/data/web/aaa目录下带有AAA字符串的文件(区分大小写)
    location ~ .*AAA.* {
        root /data/web/aaa;
    }
    # ~* 正则匹配/data/web/bbb目录下带有bbb字符串的文件(不区分大小写)
    location ~* .*bbb.* {
        root /data/web/bbb;
    }
    # ^~ 匹配/data/web/www目录下的文件
    location ^~ /www {
        root /data/web/www
    }
}
9、alias path;
定义路径别名,文档映射的另一种机制
安全上下文:location
注意:root指令和alias指令的意义不同,并且不能同时用在同一个location中。
    (1) root,给定的路径对应于location中的/uri/左侧的/
    (2) alias,给定的路径对应于location中的/uri/右侧的/
10、error_page code ... [=[response]] uri;
指定错误的uri路径
安全上下文:http,server,location,if in location
示例:
    #当网页的状态码为404时,跳转到指定的404.html页面
    error_page 404    /404.html;
11、try_files file ... uri;
如果指定路径下文件不存在,则跳转到指定的uri或者返回指定状态码。
安全上下文:server,location
示例:
location ~ .*test.* {
        try_files test.html /404.html;
}
#尝试打开test.html,如果没有此文件,则返回状态码500
location = /test.html {
        try_files test.html =500;
}
定义客户端请求的相关配置
12、keepalive_timeout timeout [header_timeout];
设定保持连接的超时时长,0表示禁止长连接;默认为75s
安全上下文:http,server,location
13、keepalive_requests number;
在一次长连接上所允许请求的资源的最大数量,默认为100
安全上下文:http,server,location
14、keepalive_disable none | browser ...;
对哪种浏览器禁用长连接
安全上下文:http,server,location
15、send_timeout time;
向客户端发送响应报文的超时时长,此处指两次连续写操作之间的间隔时长
安全上下文:http,server,location
16、client_body_buffer_size size;
用于接收客户端请求报文的body部分的缓冲区大小,默认为16k;超出此大小时,其将被暂存到磁盘上的由client_body_temp_path指令所定义的位置
安全上下文:http,server,location
17、client_body_temp_path path [level1 [level2 [level3]]];
设定用于存储客户端请求报文的body部分的临时存储路径及子目录结构和数量,其中level表示存储目录的数量,用16进制表示
安全上下文:http,server,location
示例:
    client_body_temp_path /var/tmp/client_body  2 1 1
        2:表示用2位16进制数字表示一级子目录:00-ff,共256个一级子目录
        1:表示用1位16进制数字表示二级子目录;0-f,共16个二级子目录
        1:表示用1位16进数制字表示三级子目录:0-f,共16个二级子目录
对客户端进行限制的相关配置:
18、limit_rate rate;
限制响应给客户端的传输速率,单位是bytes/second,0表示无限制
安全上下文:http,server,location,if in location
19、limit_except method ... { ... }
限制客户端除指定的请求方法之外不能访问服务器
安全上下文:location
示例:
    # 限制192.168.4.0/24的客户端只能通过GET请求
    limit_except GET {
        allow 192.168.4.0/24;
        deny  all;
    }
文件操作优化的配置
20、aio on|off | threads[=pool];
是否启用aio功能
安全上下文:http,server,location
21、directio size | off;
当文件大于等于给定的大小时启用O_DIRECT标记,例如directio 4m;
安全上下文:http,server,location
22、open_file_cache off; 或 open_file_cache max=N [inactive=time];
    nginx可以缓存以下三种信息:
        (1) 文件的描述符、文件大小和最近一次的修改时间
        (2) 打开的目录结构
        (3) 没有找到的或者没有权限访问的文件的相关信息
    max=N:可缓存的缓存项上限;达到上限后会使用LRU算法实现缓存管理
    inactive=time:缓存项的非活动时长,在指定的时长内未被命中的或命中的次数少于open_file_cache_min_uses所指定的次数的缓存项即为非活动项
安全上下文:http,server,location
23、open_file_cache_valid time;
缓存项有效性的检查频率;默认为60s;
安全上下文:http,server,location
24、open_file_cache_min_uses number;
在open_file_cache指令的inactive参数指定的时长内,至少应该被命中多少次方可被归类为活动项,默认为1
安全上下文:http,server,location
25、open_file_cache_errors on | off;
是否缓存查找时发生错误的文件一类的信息,默认为off
安全上下文:http,server,location

1. Nginx安装

第一供给事先安装gcc-g++、PCRE, zlib。PCRE用于重写rewrite,zlib用于gzip压缩

到安装目录下,
下载nginx

wget http://nginx.org/download/nginx-1.5.9.tar.gz

解压

tar -zxvf nginx-1.5.9.tar.gz

踏向到新的目录下

cd nginx-1.5.9

ngx_http_referer_module

valid_referers none|blocked|server_names|string ...;
定义referer首部的合法可用值
释义:
none:请求报文首部没有referer首部;
blocked:请求报文的referer首部没有值;
server_names:参数,其可以有值作为主机名或主机名模式;
    arbitrary_string:直接字符串,但可使用*作通配符
    regular_expression:被指定的正则表达式模式匹配到的字符串,要使用~开头,如 ~.*.test.com
安全上下文: server,location
示例:
    valid_referers none blocked server_names *.teest.com tesst.* ~.test.;
    if($invalid_referer) {
        return http://www.test.com/test.jpg;
    }

Nginx的nginx.conf配置文件

私下认可生成的公文为:

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


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

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

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

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ .php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ .php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

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


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

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

}

文本结构:

...              #全局块

events {         #events块
   ...
}

http      #http块
{
    ...   #http全局块
    server        #server块
    { 
        ...       #server全局块
        location [PATTERN]   #location块
        {
            ...
        }
        location [PATTERN] 
        {
            ...
        }
    }
    server
    {
      ...
    }
    ...     #http全局块
}

其中:

1、全局块:配置影响nginx全局的下令。平常有运营nginx服务器的顾客组,nginx进度pid寄放路线,日志寄放路线,配置文件引进,允许生成worker
process数等。
2、events块:配置影响nginx服务器或与顾客的网络连接。有各种进度的最厦门接数,接纳哪一种事件驱动模型管理连接央浼,是不是同意同期接受八个网路连接,开启多个网络连接连串化等。
3、http块:能够嵌套八个server,配置代理,缓存,日志定义等好些个功能和第三方模块的安排。如文件引入,mime-type定义,日志自定义,是或不是采取sendfile传输文件,连接超时时间,单连接央求数等。
4、server块:配置虚构主机的连带参数,贰个http中得以有多个server。
5、location块:配置央浼的路由,以及各类页面包车型客车管理状态。

大规模模块及布局指令

启动nginx报错:

Starting nginx: nginx: [emerg] mkdir() "/var/tmp/nginx/client/" failed
(2: No such file or directory)

权限不足,消除办法:

cd /var/tmp/
mkdir -p /var/tmp/nginx/{client,proxy,fastcgi,uwsgi,scgi}

Nginx

Nginx是一款面向质量设计的HTTP服务器,相较于Apache、lighttpd具备占领内部存款和储蓄器少,牢固性高级优势,全部应用模块化设计,有丰裕的模块库和第三方模块库,配置灵活。 在Linux操作系统下,Nginx使用epoll事件模型,在OpenBSD或FreeBSD操作系统上应用类似于epoll的便捷事件模型kqueue。Nginx在官方测验的结果中,能够匡助陆仟0个相互连接,而在骨子里的运作中,能够协理三千0至50000个互相连接。Nginx除了是二个轻量级的异步框架的Web服务器,仍是能够用作反向代理和负载平衡器。
Nginx职业时有叁个主线程和多少个干活线程,主线程的目标是加载和阐明配置文件、维护专门的学问线程;专门的工作线程用来拍卖实际的呼吁,其数额可配备,也足以自行调解为服务器CPU数量。Nginx主配置文件: /etc/nginx/nginx.conf,及/etc/nginx/conf.d/*.conf。Nginx由差异的模块组合,这个模块由安顿文件中内定的指令调整。

Nginx的装置配备

扩充设置配备configure
在configure命令前面加上相应布置项:

  • --prefix=path 定义一个目录,存放服务器上的公文 ,也正是nginx的安装目录。私下认可使用 /usr/local/nginx。

  • --prefix=path 定义一个索引,存放服务器上的文件 ,也正是nginx的设置目录。暗中同意使用 /usr/local/nginx。

  • --sbin-path=path 设置nginx的可实施文件的不二等秘书籍,默以为prefix/sbin/nginx.

  • --conf-path=path 设置在nginx.conf配置文件的门路。nginx允许使用差异的配备文件运转,通过命令行中的-c选项。默以为prefix/conf/nginx.conf.

  • --pid-path=path 设置nginx.pid文件,将积累的主进度的进程号。安装完结后,能够随时变动的公文名 , 在nginx.conf配置文件中选择 PID指令。暗中同意景况下,文件名叫prefix/logs/nginx.pid.

  • --error-log-path=path 设置主错误,警告,和确诊文件的称谓。安装到位后,能够随时变动的文本名 ,在nginx.conf配置文件中 使用 的error_log指令。暗许意况下,文件名称叫prefix/logs/error.log.

  • --http-log-path=path 设置主诉求的HTTP服务器的日记文件的名号。安装实现后,能够随时变动的公文名 ,在nginx.conf配置文件中 使用 的access_log指令。暗中认可意况下,文件名字为prefix/logs/access.log.

  • --user=name 设置nginx职业经过的客商。安装完结后,能够每18日变动的称谓在nginx.conf配置文件中 使用的user指令。私下认可的客商名是nobody。

  • --group=name 设置nginx专门的工作进程的客户组。安装到位后,能够随时变动的名称在nginx.conf配置文件中 使用的 user指令。暗许的为非特权客商。

  • --with-select_module --without-select_module 启用或剥夺创设一个模块来允许服务器使用select()方法。该模块将机关建设构造,假使平台不帮助的kqueue,epoll,rtsig或/dev/poll。

  • --with-poll_module --without-poll_module启用或剥夺塑造多个模块来允许服务器使用poll()方法。该模块将自行建设构造,尽管平台不辅助的kqueue,epoll,rtsig或/dev/poll。

  • --without-http_gzip_module — 不编写翻译压缩的HTTP服务器的响应模块。编写翻译并运维此模块须求zlib库。

  • --without-http_rewrite_module 不编写翻译重写模块。编写翻译并运转此模块须要PCRE库支持。

  • --without-http_proxy_module — 不编译http_proxy模块。

  • --with-http_ssl_module — 使用https合同模块。暗中同意情状下,该模块未有被营造。建构并运行此模块的OpenSSL库是必不可缺的。

  • --with-pcre=path — 设置PCRE库的源码路线。PCRE库的源码(版本4.4 - 8.30)要求从PCRE网址下载并解压。别的的行事是Nginx的./ configure和make来实现。正则表明式使用在location指令和 ngx_http_rewrite_module 模块中。

  • --with-pcre-jit —编译PCRE包含“just-in-time compilation”(1.1.12中, pcre_jit指令)。

  • --with-zlib=path —设置的zlib库的源码路线。要下载从 zlib(版本1.1.3

    1.2.5)的并解压。别的的劳作是Nginx的./ configure和make完成。ngx_http_gzip_module模块要求利用zlib 。

  • --with-cc-opt=parameters — 设置额外的参数将被加多到CFLAGS变量。举个例子,当你在FreeBSD上采纳PCRE库时须要利用:--with-cc-opt="-I /usr/local/include。.如需求供给充实 select()支持的文件数量:--with-cc-opt="-D FD_SETSIZE=2048".

  • --with-ld-opt=parameters —设置附加的参数,将用来在链接时期。比方,当在FreeBSD下行使该系统的PCRE库,应钦命:--with-ld-opt="-L /usr/local/lib".

例如

./configure --sbin-path=/usr/local/nginx/nginx 
--conf-path=/usr/local/nginx/nginx.conf 
--pid-path=/usr/local/nginx/nginx.pid 
--without-http_rewrite_module 
--without-http_gzip_module 
--user=nginx 
--group=nginx  

(这里由于本身一直不装pcre, zlib,所以选的是without)

马到成功后,能够观看目录中冒出了Makefile文件。
次第使用make和make install,安装到位。

可以用 nginx –V来查看版本号。

Core functionality

主配置文件/etc/nginx/nginx.conf格式:

main block
event {
    ...
}        
http {
    ...
    server {
        ...
    }
    server {
        ...
        listen
        server_name
        root
        location /uri/ {
            ...
            if CONDITION {
                ...
            }
        }
    }
}

里头 main block 配置段常见的布局指令:

分类:
    正常运行必备的配置
    优化性能相关的配置
    用于调试及定位问题相关的配置
    事件驱动相关的配置
正常运行必备的配置:
1、user USERNAME [GROUP];
    指定worker processes所属用户及用户组
2、pid /PATH/TO/PID_FILE;
    指定存储nginx主进程进程号码的文件路径
3、include file | mask;
    指明包含进来的其它配置文件片断
4、load_module file;
    指明要装载的动态模块
性能优化相关的配置:
1、worker_processes number | auto;
    worker进程的数量:通常应该等于小于当前主机的cpu的物理核心数
    auto:当前主机物理CPU核心数
2、worker_cpu_affinity cpumask ...; 或 worker_cpu_affinity auto [cpumask];
    绑定CPU核心与worker进程,默认不绑定
    cpumask示例:8核
        00000001:0号CPU
        00000010:1号CPU
3、worker_priority number;
    指定worker进程的nice值,设定worker进程优先级;[-20,20]
4、worker_rlimit_nofile number;
    worker进程所能够打开的文件数量上限
调试、定位问题:
1、daemon on|off;    
    是否以守护进程方式运行Nignx
2、master_process on|off;
    是否以master/worker模型运行nginx;默认为on
3、error_log file [level];
    定义错误日志记录级别
事件驱动相关的配置:
events {
    ...
}
1、worker_connections number;
    每个worker进程所能够打开的最大并发连接数数量
    启动nginx后最大并发连接数量: worker_processes * worker_connections
2、use method;
    指明并发连接请求的处理方法,不指定时nginx会自动选择最高效的处理方法
    use epoll;
3、accept_mutex on | off;
    处理新的连接请求的方法:on意味着由各worker轮流处理新请求,Off意味着每个新请求的到达都会通知所有的worker进程

2. Nginx的启动、停止

起步代码:
格式:nginx安装目录地址 -c nginx配置文件地址
如:/usr/sbin/nginx -c /root/zhangxiao/nginx-1.5.9/conf/nginx.conf

翻看进程:

ps -ef|grep nginx

截至进度:

kill -QUIT 进程号

ngx_http_access_module

allow|deny address|CIDR|unix:|all;
允许或拒绝访问的Ip网段,匹配顺序为从上往下匹配。
安全上下文: http,server,location,limit_except
示例:
    location / {
        deny  192.168.4.1;
        allow 192.168.4.0/24;
        deny  all;
    }

Nginx相当消除

本文由澳门在线威尼斯官方发布于电脑操作,转载请注明出处:澳门在线威尼斯官方Nginx安装记录小结,nginx常用

关键词:

上一篇:离线服务器安装zabbix,2离线安装docker

下一篇:澳门在线威尼斯官方centos下完整安装教程