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简单配置的主要内容,如果未能解决你的问题,请参考以下文章