Openresty 简介

Openresty是一个基于NGINX和Lua的高性能Web平台,内部有大量的Lua库和第三方模块,能够很方便的搭建处理高并发,扩展性高的Web平台和动态网关,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。

Openresty 安装

1. 依赖包安装:

# yum install readline-devel pcre-devel openssl-devel

2.  在系统中添加openresty的仓库:

# sudo yum install yum-utils

# sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo

3.  开始安装openresty

# sudo yum install openresty

# sudo yum install openresty-resty  (注:这个是openresty的命令工具包)

4. 以上安装完成后Openresty就安装完成了,默认安装目录在/usr/local/openresty下

Openresty下nginx配置

  1. /usr/local/openresty/nginx/conf下nginx.conf文件配置:

创建NGINX用户:

#groupadd nginx

#useradd -g nginx -s /sbin/nologin -M nginx

以下是配置文件内容:

###########################################

user  nginx nginx;  #启动用户

worker_processes  4; #nginx的进程数,建议和cpu核数一致

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

error_log  logs/error.log warn; #全局LOG定义

pid        logs/nginx.pid; # 进程文件ID

worker_rlimit_nofile 65535; #nginx进程打开的文件数

#工作模式与连接数配置

events {

use epoll; # epoll是高版本内核优化后的网络I/O模型

worker_connections  65535; #单个进程最大连接数

multi_accept on; #打开快速接收新连接

}

#http服务设置

http {

include       mime.types;#文件扩展名与类型映射表

default_type  application/octet-stream;#默认文件类型

charset utf-8;#默认编码

server_names_hash_bucket_size 128; #服务器名字的hash表大小

client_header_buffer_size 32k; #上传文件大小限制

large_client_header_buffers 4 32k; #设定请求缓存数

client_max_body_size 32m; #设定请求缓存大小

#include proxy.conf;

#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;

#resolver 8.8.8.8;

sendfile        on; #开启高效文件传输

tcp_nopush     on; #防止网络阻塞

tcp_nodelay on;

#keepalive_timeout  0;

keepalive_timeout  30; #长连接超时时间,默认单位秒

####解决跨域问题(我们服务中已有跨域功能所以我这里已全注释)###########

#add_header Access-Control-Allow-Origin *;

#add_header Access-Control-Allow-Headers X-Requested-With,Content-Type,If-Modified-Since;

#add_header Access-Control-Allow-Methods GET,POST,OPTIONS;

#以下是FastCGI 的相关参数,主要作用减少资源占用优化网站性能提高访问速度

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 64k;

fastcgi_buffers 4 64k;

fastcgi_busy_buffers_size 128k;

fastcgi_temp_file_write_size 64k;

  • open_file_cache max=10240 inactive=20s;
  • open_file_cache_min_uses 1;
  • open_file_cache_valid 30s;

#gizp优化配置,加速传速

gzip on;

gzip_min_length 1k;

gzip_buffers 4 16k;

gzip_http_version 1.0;

gzip_comp_level 2;

gzip_types text/plain application/x-javascript text/css application/xml;

gzip_vary on;

gzip_disable msie6;

lua_package_path "/usr/local/openresty/nginx/lua/?.lua;;"; #需要用到lua的项目脚本设用路径

# 虚拟主机配置我这定义到了/usr/local/openresty/nginx/conf/vhosts目录下

include vhosts/*.conf;

}

#####################################################################

  1. 虚拟主机文件的配置

以bizapi.xx.com的/usr/local/openresty/nginx/conf/vhosts /bizapi.conf反向代理配置为例:

以下是配置文件内容:

###########################################

server

{

listen       80;

server_name  bizapi.xx.com;

location /api/BasicService/authBaseService/ {        #要做反向代理转发的路径

proxy_redirect          off;

proxy_set_header        Host $host;

proxy_set_header        X-Real-IP $remote_addr;  #获取真实ip

proxy_set_header       X-Forwarded-For   $proxy_add_x_forwarded_for; #获取代理者的真实ip

add_header X-Frame-Options SAMEORIGIN;

client_max_body_size    10m; #允许客户端请求字节数

client_body_buffer_size 128k; #缓冲区代理请求最字节数

proxy_connect_timeout   90; #后端服务器超进间间

proxy_send_timeout      90; #后端服务器数据传回时间

proxy_read_timeout      90; #后端服务器的响应时间

proxy_buffer_size       128k; #代理服务器保存的用户头信息缓冲区大小

proxy_buffers           2 256k; #缓冲区设置,网页平均在256K以下设

proxy_busy_buffers_size 256k; #高并发下缓存大小

proxy_temp_file_write_size 256k; #设定文件大小限制

proxy_pass http://192.168.102.47:9002; #要转发到的地址与端口配置

}

location /api/sas/recoManageService/ {

proxy_redirect          off;

proxy_set_header        Host $host;

proxy_set_header        X-Real-IP $remote_addr;  #获取真实ip

proxy_set_header       X-Forwarded-For   $proxy_add_x_forwarded_for; #获取代理者的真实ip

add_header X-Frame-Options SAMEORIGIN;

client_max_body_size    10m;

client_body_buffer_size 128k;

proxy_connect_timeout   90;

proxy_send_timeout      90;

proxy_read_timeout      90;

proxy_buffer_size       128k;

proxy_buffers           2 256k;

proxy_busy_buffers_size 256k;

proxy_temp_file_write_size 256k;

proxy_pass http://192.168.102.47:9031;

}

location /api/sas/paymManageService/ {

proxy_redirect          off;

proxy_set_header        Host $host;

proxy_set_header        X-Real-IP $remote_addr;  #获取真实ip

proxy_set_header       X-Forwarded-For   $proxy_add_x_forwarded_for; #获取代理者的真实ip

add_header X-Frame-Options SAMEORIGIN;

client_max_body_size    10m;

client_body_buffer_size 128k;

proxy_connect_timeout   90;

proxy_send_timeout      90;

proxy_read_timeout      90;

proxy_buffer_size       128k;

proxy_buffers           2 256k;

proxy_busy_buffers_size 256k;

proxy_temp_file_write_size 256k;

proxy_pass http://192.168.102.47:9032;

}

location /api/sas/invoManageService/ {

proxy_redirect          off;

proxy_set_header        Host $host;

proxy_set_header        X-Real-IP $remote_addr;  #获取真实ip

proxy_set_header       X-Forwarded-For   $proxy_add_x_forwarded_for; #获取代理者的真实ip

add_header X-Frame-Options SAMEORIGIN;

client_max_body_size    10m;

client_body_buffer_size 128k;

proxy_connect_timeout   90;

proxy_send_timeout      90;

proxy_read_timeout      90;

proxy_buffer_size       128k;

proxy_buffers           2 256k;

proxy_busy_buffers_size 256k;

proxy_temp_file_write_size 256k;

proxy_pass http://192.168.102.47:9033;

}

location /api/receiptPay/sapSyncManageService/ {

proxy_redirect          off;

proxy_set_header        Host $host;

proxy_set_header        X-Real-IP $remote_addr;  #获取真实ip

proxy_set_header       X-Forwarded-For   $proxy_add_x_forwarded_for; #获取代理者的真实ip

add_header X-Frame-Options SAMEORIGIN;

client_max_body_size    10m;

client_body_buffer_size 128k;

proxy_connect_timeout   90;

proxy_send_timeout      90;

proxy_read_timeout      90;

proxy_buffer_size       128k;

proxy_buffers           2 256k;

proxy_busy_buffers_size 256k;

proxy_temp_file_write_size 256k;

proxy_pass http://192.168.102.47:9036;

}

location /api/receiptPay/receiptManageService/ {

proxy_redirect          off;

proxy_http_version 1.1;

proxy_set_header Connection "";

proxy_set_header        Host $host;

proxy_set_header        X-Real-IP $remote_addr;  #获取真实ip

proxy_set_header       X-Forwarded-For   $proxy_add_x_forwarded_for; #获取代理者的真实ip

add_header X-Frame-Options SAMEORIGIN;

client_max_body_size    10m;

client_body_buffer_size 128k;

proxy_connect_timeout   90;

proxy_send_timeout      90;

proxy_read_timeout      90;

proxy_buffer_size       128k;

proxy_buffers           2 256k;

proxy_busy_buffers_size 256k;

proxy_temp_file_write_size 256k;

proxy_pass http://192.168.102.47:9034;

}

location /api/receiptPay/payManageService/ {

proxy_redirect          off;

proxy_set_header        Host $host;

proxy_set_header        X-Real-IP $remote_addr;  #获取真实ip

proxy_set_header       X-Forwarded-For   $proxy_add_x_forwarded_for; #获取代理者的真实ip

add_header X-Frame-Options SAMEORIGIN;

client_max_body_size    10m;

client_body_buffer_size 128k;

proxy_connect_timeout   90;

proxy_send_timeout      90;

proxy_read_timeout      90;

proxy_buffer_size       128k;

proxy_buffers           2 256k;

proxy_busy_buffers_size 256k;

proxy_temp_file_write_size 256k;

proxy_pass http://192.168.102.47:9035;

}

location /api/assignment/ {

proxy_redirect          off;

proxy_set_header        Host $host;

proxy_set_header        X-Real-IP $remote_addr;  #获取真实ip

proxy_set_header       X-Forwarded-For   $proxy_add_x_forwarded_for; #获取代理者的真实ip

add_header X-Frame-Options SAMEORIGIN;

client_max_body_size    10m;

client_body_buffer_size 128k;

proxy_connect_timeout   90;

proxy_send_timeout      90;

proxy_read_timeout      90;

proxy_buffer_size       128k;

proxy_buffers           2 256k;

proxy_busy_buffers_size 256k;

proxy_temp_file_write_size 256k;

proxy_pass http://139.224.147.71:9050;

}

#access_log  logs/bizapi.log  access;

}

###############################################################

  1. 启动命令:

对配置文件进行更改后我们再启动时先检查配置文件的语法是否正确:

# openresty  –t

返回以下情况说明配置没问题:

启动nginx:

# openresty -s reload

如果在启动时出现以下报错:

nginx: [error] invalid PID number "" in "/usr/local/openresty/nginx/logs/nginx.pid"

那我们就需要重新定义一下nginx.conf的指定

# /usr/local/openresty/nginx/sbin/nginx  -c  /usr/local/openresty/nginx/conf/nginx.conf

  1. 关于nginx的log切割:

对于nginx的处理,我这里是写了一个shell脚本加上crontab做定时任务来实现的,相关脚本如下:

#############################################

#定义变量

LOGS_PATH=/usr/local/openresty/nginx/logs

YESTERDAY=$(date -d "yesterday" +%Y%m%d)

#按天切割日志

mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log

mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log

#向nginx主进程发送USR1信号,重新打开日志文件,否则会继续往mv后的文件写数据的。原因在于:linux系统中,内核是根据文件描述符来找文件的。如果不这样操作导致日志切割失败。

kill -USR1 `ps axu | grep "nginx: master process" | grep -v grep | awk '{print $2}'`

#删除7天前的日志

cd ${LOGS_PATH}

find . -mtime +7 -name "*20[1-9][3-9]*" | xargs rm -f

#或者根据你定义的log名进行处理

#find . -mtime +7 -name "xx.com_*" | xargs rm -f

exit 0

##############################################

  1. 添加定时执行命令:

#nginx cut log

59 23 * * * sh   /usr/local/openresty/nginx/cutlog.sh

Openresty安装及使用配置(OPENRESTY+NGINX)的更多相关文章

  1. Nginx 安装与部署配置以及Nginx和uWSGI开机自启

    下载 官方网站:https://nginx.org/en/download.html Windows下安装 安装 下载后解压(切记不能含有中文路径!!),文件结构如图(我解压的路径就有中文,记得拷贝放 ...

  2. 烂泥:php5.6源码安装及php-fpm配置与nginx集成

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. LNMP环境的搭建中,现在只有php没有源码安装过.这篇文章就把这个介绍下. 注意本篇文章使用的centos 6.5 64bit. 登陆centos下载 ...

  3. 【精选】Nginx负载均衡学习笔记(一)实现HTTP负载均衡和TCP负载均衡(官方和OpenResty两种负载配置)

    说明:很简单一个在HTTP模块中,而另外一个和HTTP 是并列的Stream模块(Nginx 1.9.0 支持) 一.两个模块的最简单配置如下 1.HTTP负载均衡: http { include m ...

  4. OpenResty入门之使用Lua扩展Nginx

    记住一点:nginx配置文件很多坑来源自你的空格少了或多了. 1.Centos下载安装 如果你的系统是 Centos 或 RedHat 可以使用以下命令: yum install readline-d ...

  5. openresty安装文档

    一.OpenResty简介    OpenResty是一个基于 Nginx与 Lua的高性能 Web平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭建能够处理超高并 ...

  6. OpenResty入门之使用Lua开发Nginx插件

    记住一点:nginx配置文件很多坑来源自你的空格少了或多了. OpenResty OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第 ...

  7. OpenResty 安装配置

    0. 说明 1. Windows 下安装 下载软件包 openresty-1.13.6.1-win32.zip ,解压即可食用. [开启] 直接运行 nginx.exe 在 Windows 的命令窗口 ...

  8. openresty安装配置 Ubuntu下

    1.进入openresty-1.11.2.4的压缩包木木,我这里是在“/usr/local/”下: 2.进入后执行[tar -xzvf openresty-1.11.2.4.tar.gz]进行解压 3 ...

  9. OpenResty安装使用教程(CentOS 6)

    一.安装OpenResty Linux官方建议直接通过官方提供的预编译包安装:http://openresty.org/cn/linux-packages.html # 确保yum周边工具已经安装 y ...

随机推荐

  1. SQL Server Log Shipping学习总结

      SQL Server的日志传送(log shipping)技术一直比较鸡肋,尤其当SQL Server 推出了Always On技术以后,估计使用日志传送(log shipping)这种技术方案的 ...

  2. ThinkPad E470笔记本电脑无声音、无线wifi功能(灰色)

    最近有同事找我看他的笔记本没有wifi,型号是ThinkPadE470 ,上网搜了下提问的挺多,写一个看看有什么帮助没 看了下笔记本wifi标志是灰色显示只有飞行模式,启用了一下热键 fn+F3 没什 ...

  3. jenkins使用开始踩坑(1)

    上篇文章 安装教程 :https://www.cnblogs.com/linuxchao/p/linuxchao-jenkins-setup.html 一.前戏 话说上一篇文章安装完 JDK 和 je ...

  4. 【English】20190313

     indicators指针['ɪndɪkeɪtəz]  determine决定[dɪˈtɜ:rmɪn] Places null indicator bits at the front of each ...

  5. ASP.NET MVC5学习系列——身份验证、授权

    一.什么是身份验证和授权 人们有时对用户身份验证和用户授权之间的区别感到疑惑.用户身份验证是指通过某种形式的登录机制(包括用户名/密码.OpenID.OAuth等说明身份的项)来核实用户的身份.授权验 ...

  6. C#基础知识之反射

    http://blog.csdn.net/educast/article/details/2894892 两个现实中的例子:1.B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的生理 ...

  7. 性能测试中的最佳用户数、最大用户数、TPS、响应时间、吞吐量和吞吞吐率

    一:最佳用户数.最大用户数 转:http://www.cnblogs.com/jackei/archive/2006/11/20/565527.html 二:  事务.TPS 1:事务:就是用户某一步 ...

  8. linux sort排序及取前几条数据

    查看sort --help -n 根据字符串的数值进行比较 -k 根据某一个关键字的位置或者类型排序 -r 倒序排序 -t 字段分隔,后面跟分隔符 查看head --help -n 打印前几行记录,后 ...

  9. html基础和CSS选择器

    一.html简单基础 什么是HTML HTML 是用来描述网页的一种语言. HTML 指的是超文本标记语言: HyperText Markup Language HTML 不是一种编程语言,而是一种标 ...

  10. Svn 安装、配置、使用指南

    Svn 安装.配置.使用指南 Svn 是 Subversion 的简称,是一个开放源代码的版本控制系统,它采用了分支管理系统. 1. 安装配置 1.1. 安装 svn 1.2. 创建 svn 仓库 1 ...