NginxResty简单配置

Posted asdfasdfasdad

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NginxResty简单配置相关的知识,希望对你有一定的参考价值。

nginxResty配置

  • 从下载页Download下载最新的 OpenResty® 源码包,下载到/home/并且像下面的示例一样将其解压

    tar -xzvf openresty-VERSION.tar.gz
    
  • 安装依赖,推荐您使用yum安装以下的开发库:

    yum install pcre-devel openssl-devel gcc curl perl
    yum install postgresql-devel
    
  • 执行配置, 然后在进入openresty-VERSION/目录, 然后输入以下命令配置:

    ./configure --prefix=/opt/openresty \\
            --with-luajit \\
            --without-http_redis2_module \\
            --with-http_iconv_module \\
            --with-http_postgres_module
    
  • 保持当前目录不变

    make && make install
    
  • 命令运行完成后,将当前工作目录定位到安装目录 cd /opt/openresty/

    #cd /opt/openresty/
    # ls -l
    total 264
    drwxr-xr-x  2 root root   4096 Nov  2 21:30 bin
    -rw-r--r--  1 root root  22924 Nov  2 21:30 COPYRIGHT
    drwxr-xr-x  6 root root   4096 Nov  2 21:30 luajit
    drwxr-xr-x  6 root root   4096 Nov  2 21:30 lualib
    drwxr-xr-x 11 root root   4096 Nov  2 21:51 nginx
    drwxr-xr-x 44 root root   4096 Nov  2 21:30 pod
    -rw-r--r--  1 root root 218352 Nov  2 21:30 resty.index
    drwxr-xr-x  5 root root   4096 Nov  2 21:30 site
    

    注意:如果 在编译过程中出现了源代码的编译错误,屏幕上会出现错误信息,你可以对这些信息认真查阅,原因编译错误多是原因缺少一些模块的支持库引起民的。
    另外,在没有改变源代码的情况下如果需要重新编译和安装Nginx软件,就不必再使用configure脚本自动生成Makefile了。可以先使用以下命令删除上次安装的Nginx办的。

    rm -rf /opt/openresty/
    
    • 然后定位到解压目录,清除上次编译的遗留文件
    cd /home/openresty-VERSION/; make clean
    
    • 之后再使用以下命令进行编译和安装
    make; make install
    
  • 配置全局PATH环境变量

    vim /etc/profile
    # 在最文件内下面粘贴以下内部,
    PATH=/opt/openresty/nginx/sbin:$PATH  
    export PATH  
    
  • 创建一个简单的纯文本文件,conf/nginx.conf其中包含以下内容:

       server 
           listen 3003;
       #    server_name my.xxx.com;
           index index.html index.htm index.php;
           root /home/work/www/run/xxx-b-web/dist;
           access_log /home/work/logs/nginx/xxx-b-web.access.log api-access;
           error_log /home/work/logs/nginx/xxx-b-web.error.log;
       
       #    ssl on;
       #    ssl_certificate   /home/work/nginx/conf/vhost/xxx.pem; #证书私钥
       #    ssl_certificate_key  /home/work/nginx/conf/vhost/xxx.key; #证书
       #    ssl_session_timeout 5m;
       #    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #SSL协议
       #    ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL; #加密算法
       #    ssl_prefer_server_ciphers on;
       	location  /api/ 
               proxy_set_header Host $host;
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
               proxy_connect_timeout 600;
               proxy_read_timeout 600;
               proxy_send_timeout 600;
               proxy_pass http://192.168.6.132:8056/;
           
       
           location ~ \\.php 
       		default_type text/html;
       		return 403 'Fail request!';
           
           
           location ~ .*\\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ 
               expires 30d;
               access_log off;
           
           location ~ .*\\.(js|css)?$ 
               expires 7d;
               access_log off;
           
       
    
  • 然后我们以这种方式用我们的配置文件启动nginx服务器:

    # -c是重新指定配置文件目录  
    nginx -c conf/nginx.conf  
    
    • nginx 重启服务
    nginx -s reload
    

Nginx相关说明

目录详解

[root@izm5e3bc56k6c3zdhx6fwuz nginx]# ll
total 36
drwx------  2 nobody root 4096 Nov  2 21:51 client_body_temp
drwxr-xr-x  2 root   root 4096 Nov  2 22:39 conf
drwx------  2 nobody root 4096 Nov  2 21:51 fastcgi_temp
drwxr-xr-x  2 root   root 4096 Nov  2 21:30 html
drwxr-xr-x  2 root   root 4096 Nov  2 22:09 logs
drwx------ 10 nobody root 4096 Nov  3 08:43 proxy_temp
drwxr-xr-x  2 root   root 4096 Nov  2 21:30 sbin
drwx------  2 nobody root 4096 Nov  2 21:51 scgi_temp
drwx------  2 nobody root 4096 Nov  2 21:51 uwsgi_temp
  • conf目录存放了Nginx的所有的配置文件。其中nginx.conf文件是Nginx服务器的主配置文件;
  • logs目录用来存放Nginx服务器的日志的。在从未启动过Nginx服务器前是空的;
  • sbin目录就是Nginx服务器的主程序,目前只有一个nginx文件;
  • conf/*.default文件方便我们将配置过的.conf文件恢复到初始状态;

nginx日志-日期格式详解

#在Nginx配置中的Http模块中配置
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

log_format    <NAME>    <String>;
    关键字   格式标签   日志格式
    关键字:其中关键字error_log不能改变
    格式标签:格式标签是给一套日志格式设置一个独特的名字
    日志格式:给日志设置格式  
log_format格式变量:
    $remote_addr  #记录访问网站的客户端地址
    $remote_user  #远程客户端用户名
    $time_local  #记录访问时间与时区
    $request  #用户的http请求起始行信息
    $status  #http状态码,记录请求返回的状态码,例如:200、301、404等
    $body_bytes_sent  #服务器发送给客户端的响应body字节数
    $http_referer  #记录此次请求是从哪个连接访问过来的,可以根据该参数进行防盗链设置。
    $http_user_agent  #记录客户端访问信息,例如:浏览器、手机客户端等
    $http_x_forwarded_for  #当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的前提是代理服务器也要进行相关的x_forwarded_for设置

配置自动启动nginx服务

# 增加可写权限执行只需要执行一次  
chmod +x /etc/rc.d/rc.local
vim /ect/rc.local
# 配置nginx.conf文件是绝对路径,粘贴以下内容,保存  
/opt/openresty/nginx -c /home/conf/nginx.conf  

nginx启动命令帮助文档

/opt/openresty/nginx/sbin/nginx -h
[root@root sbin]# nginx -h
nginx version: openresty/1.13.6.1
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]

Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -T            : test configuration, dump it and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /opt/openresty/nginx/)
  -c filename   : set configuration file (default: conf/nginx.conf)
  -g directives : set global directives out of configuration file
  • nginx -V命令:显示Nginx版本号和Nginx服务器编译情况
[root@root sbin]# nginx -V
nginx version: openresty/1.13.6.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/opt/openresty/nginx --with-cc-opt=-O2  
--add-module=../ngx_devel_kit-0.3.0 --add-module=../echo-nginx-module-0.61  
--add-module=../xss-nginx-module-0.05 --add-module=../ngx_coolkit-0.2rc3  
--add-module=../set-misc-nginx-module-0.31 --add-module=../form-input-nginx-module-0.  
--add-module=../encrypted-session-nginx-module-0.07 --add-module=../srcache-nginx-module-0.31
--add-module=../ngx_lua-0.10.11 --add-module=../ngx_lua_upstream-0.07  
--add-module=../headers-more-nginx-module-0.33 --add-module=../array-var-nginx-module-0.05 
--add-module=../memc-nginx-module-0.18 --add-module=../redis2-nginx-module-0.14  
--add-module=../redis-nginx-module-0.3.7 --add-module=../rds-json-nginx-module-0.15  
--add-module=../rds-csv-nginx-module-0.08 --add-module=../ngx_stream_lua-0.0.3  
--with-ld-opt=-Wl,-rpath,/opt/openresty/luajit/lib --with-stream --with-stream_ssl_module  
--with-http_ssl_module  
```bash
* `nginx -v`命令:显示Nginx版本号
```bash
[root@root sbin]# nginx -v
nginx version: openresty/1.13.6.1
  • nginx t命令:检查Nginx服务器配置文件是否有语法错误
[root@root sbin]# nginx -t
nginx: the configuration file /opt/openresty/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /opt/openresty/nginx/conf/nginx.conf test is successful

Nginx主配置文件中的配置

  • worker_processes numer | auto 理论上说值越大,可支持并发处理量也越大
    • number,指定Nginx进程最多可以产生的worker process数
    • auto,设置此值,Nginx进程产自动检测

默认配置中work_processes设置为1 ,启动Nginx服务器后,使用以下命令可以看到

[root@root conf]# ps ax | grep nginx
14349 ?        Ss     0:00 nginx: master process nginx
14405 ?        S      0:00 nginx: worker process

如果work_processes设置为10,那些启动服务器后会有10条worker process,此指令只能在全局块中设置;

  • worker_connections 主要用来设置允许每一个worker_process同时开启的最大连接数,默认值512;此指令只能在events块中进行配置;
events 
    worker_connections  1024;

  • default_type mime-type为mime-type指定type,如果不加此指令,默认值为text/plain。此指令还可以在http块、server块、localtion块中进行配置

  • 配置连接超时时间

    keepalive_time timeout [header_timeout]

    如下是一个配置

    keepalive 150s 120s
    

    基含义是,在服务器端保持连接的时间设置为150s,发给用户端的应答报文头部中Keep-alive域的超时时间设置为120s。此指可以在http块、server块、location块中出现。

  • 单连接请求数上限

    keepalive_request number

    Nginx服务器端和用户建立会话连接后,用户端通过此连接发送请求。此指令用于限制用户通过某一连接向Nginx服务器发送请求的次数。此指令可以出现在http块、server块和location块中,默认设置1000。

  • 针对locaion块的配置

    location [ = | ~ | ~* | ^~ ] uri …

    • “=”要求请求字符串与uri严格匹配.如果已经匹配成功,就停止断续向下搜索并立即处理此请求。
    • “~”用于表示uri包含正则表达式,并且区分大小写。
    • “~*”用于表示 uri包含正则表达式,并且不区分大小写。
    • “^~”要求Nginx服务器找到标识uri和请求字符串匹配度最高的location后,立即使用此location处理请求,而不再使用location块中的正则uri和请求字符串做匹配。

    注意:如果uri包含正则表达工,就必须要使用“”或“*”标识。

  • root配置

    root path

    此指令可以在http块、server块、location块中配置,由于使用Nginx服务器多数情况下要配置多个location块对不同的请求分别做出处理,因此该指令通常在location块中进行设置。

  • 更改locationr URI

    alias path

    在location块中,除使用root指令指明请求处理根目录,还可以使用alias指令改变location接收到的URI的请求路径。

    location ~ ^/data/(.+\\.(html|htm))$ 
      alias /locationtest2/other/$1;    
    
    

以上是关于NginxResty简单配置的主要内容,如果未能解决你的问题,请参考以下文章

NginxResty简单配置

nginx在centos7下多域名的简单配置

vim开发配置

简单路由配置--课程内容随笔

Linux用户管理

ueditor初始化编辑器的内容怎么做