客户端提出搞一个日志上传的接口,方便向服务端提交日志,研究了一下,决定用Nginx嵌入Lua的方式搞。
Lua是一个可以嵌入到Nginx配置文件中的动态脚本语言,从而可以在Nginx请求处理的任何阶段执行各种Lua代码。业余时间使用过,感觉小巧轻快,代码风格和Python一样简洁优雅。在Nginx中内嵌Lua,需要你重新编译安装Nginx,加上ngx_lua模块,同时需要安装LuaJIT,可以看看这篇文章"Nginx与Lua"。
安装好相关的模块后,Nginx配置如下:
location ~ /upload { # 调用的路由
# 转到后台处理URL
upload_pass /uploadHandle;
继续阅读 »
一、安装nginx
首先来安装nginx,使用如下命令:
shell
sudo apt-get -y install nginx
查看nginx安装的文件。使用如下命令进行查看,如下:
shell
dpkg -S nginx
nginx默认的安装位置是/etc/nginx目录,而且nginx的配置文件nginx.conf也是在该目录下。
除此之外,nginx的默认网站目录在/usr/share/nginx/html下,默认nginx网站配置文件为/etc/nginx/sites-available/目录下的default文件。
启动nginx,可以使用如下命令:
shell
sudo /etc/init.d/nginx st
继续阅读 »
一、安装nginx
首先来安装nginx,使用如下命令:
sudo apt-get -y install nginx
查看nginx安装的文件。使用如下命令进行查看,如下:
dpkg -S nginx
nginx默认的安装位置是/etc/nginx目录,而且nginx的配置文件nginx.conf也是在该目录下。
除此之外,nginx的默认网站目录在/usr/share/nginx/html下,默认nginx网站配置文件为/etc/nginx/sites-available/目录下的default文件。
启动nginx,可以使用如下命令:
sudo /etc/init.d/nginx start
sudo servic
继续阅读 »
Nginx是一个俄罗斯开发的高性能HTTP服务器和反向代理服务器,功能丰富、性能强悍、运行稳定、应用广泛,完全使用C语言编写,可运行于各种Unix Like OS,并有Windows移植版本(不推荐用于生产环境)。
安装
在Ubuntu中,可以直接使用sudo apt-get install nginx 命令安装nginx,安装之后,默认的配置文件保存在 /etc/nginx 文件夹内,默认提供http服务的目录位置在 /usr/local/nginx/html。
配置
nginx的主配置文件是:nginx.conf
```
user www-data; #用户与用户组
worker_processes 4; #对外提
继续阅读 »
安装说明
系统环境:Linux Centos6.3_64
软件:nginx1.7.7
下载地址:http://nginx.org/en/download.html
源码安装
//首先下载nginx源文件
wget -c http://nginx.org/download/nginx-1.7.7.tar.gz
//确保系统安装了g++、gcc、openssl-devel、pcre-devel和zlib-devel软件
yum install gcc-c++
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
//首先解压缩
tar -zxv
继续阅读 »
前阵子重构部门业务框架,大部分代码转移到了Laravel,小部分代码遗留在旧框架中。在转移的过程中Nginx是无法通过通用配置来进行两个框架的Url重写切换的,Nginx需要对每个Module,甚至每个Action都进行配置,导致Nginx配置冗余巨大,参与的同事每上线一个功能就需要上服务器增加或修改Nginx配置,苦不堪言。
继续阅读 »
Nginx 学习笔记之Nginx架构
Nginx的多进程模式
nginx在启动后,会有一个master进程和多个worker进程.master进程的主要作用是来管理worker进程 包含:接受来自外界的信号 向各worker进程发送信号,监控worker进程的运行状态,当worker进程异常退出后会自动重启worker进程,而网络事件是由worker进程来处理,
每个worker进程是对等的他们同等竞争来自客户端的请求,每个进程是相互独立,一个请求只能在一个worker处理,每个worker互相不影响, 每个worker进程数是可以配置的,一般都是设置与主机cpu核数一致(如2核 worker就设置2 如果设置大于cpu核数 会
继续阅读 »
按照网上教程装了Nginx后,发现网站根目录非常不符合Rule of Least Surprise,过了没一会,就忘记了目录所在。
在网上查找时,发现别人的根目录跟我的根本不一样。只好自己去找目录所在。使用nginx -V,
$nginx -V
nginx version: nginx/1.4.6 (Ubuntu)
built by gcc 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wf
继续阅读 »
有过网站优化经验的都知道,减少请求的页面大小可让网站速度变更快,这里我们可以利用Nginx自带的Gzip模块来实现优化
Gzip(GNU-ZIP)是一种压缩技术。经过Gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用户浏览页面的时候速度会块得多。Gzip的压缩页面需要浏览器和服务器双方都支持,实际上就是服务器端压缩,传到浏览器后浏览器解压并解析。浏览器那里不需要我们担心,因为目前的巨大多数浏览器都支持解析gzip过的页面。 Nginx的压缩输出有一组gzip压缩指令来实现。相关指令位于nginx.conf 的http{….}两个大括号之间。
继续阅读 »
Nginx得到反向代理前的真实IP
Java Servlet可以通过request.getRemoteAddr()得到请求的客户端的IP
现在一般情况下都不是直接用Tomcat或者Jetty这样的web容器,都会在前面加上Nginx或者Tengine之类的静态Web容器来反向代理。
由于经过了Nginx转发请求,通过request.getRemoteAddr()得到的IP就成了127.0.0.1
可以在Nginx配置里加上
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
这个意思是在nginx做反向代理的时候把代理前的地址放到http hea
继续阅读 »