安装Nginx
wget http://nginx.org/packages/centos/6/x86_64/RPMS/nginx-1.12.0-1.el6.ngx.x86_64.rpm
rpm -ivh nginx-1.12.0-1.el6.ngx.x86_64.rpm
rpm -ql nginx //查看安装路径 或 whereis nginx
安装完成后,一些目录和文件的基本信息,如下所示:
进程ID文件为/var/run/nginx.pid
Nginx的配置文件存放在/etc/nginx/目录下
可执行程序文件为/usr/sbin/nginx
站点默认目录为/usr/share/nginx/html
错误日志路径为/var/log/nginx/error.log
访问日志路径为/var/log/nginx/access.log
常用命令:
验证安装
查看一下Nginx的帮助信息:
sudo /usr/sbin/nginx -h
测试当前Nginx默认配置文件/etc/nginx/nginx.conf是否可用,执行如下命令:
sudo /usr/sbin/nginx -t
启动服务
如果使用默认的配置文件/etc/nginx/nginx.conf来启动Nginx,执行如下命令:
sudo /usr/sbin/nginx
如果指定一个配置文件,例如:/home/shirdrn/servers/nginx/conf/nginx.conf,可以执行如下命令:
sudo /usr/sbin/nginx -c /home/shirdrn/servers/nginx/conf/nginx.conf
启动成功以后,可以查询Nginx进程:
ps -ef | grep nginx
如果修改了配置文件,需要重新加载,则可以执行如下命令:
sudo /usr/sbin/nginx -s reload
终止服务
终止Nginx服务,有两种模式:
一种是立即强制停止服务,执行如下命令:
sudo /usr/sbin/nginx -s stop
另一种是比较优雅的方式,不再接收新到达的请求,等待已经处理的请求完成,执行如下命令:
sudo /usr/sbin/nginx -s quit
用法1:访问静态文件
server {
listen 80;
server_name localhost;
location /html/ {
root /usr/share/nginx;
index index.html index.htm;
}
location /hadoop_docs/ {
alias /usr/local/hadoop/share/doc/hadoop/; #最后的"/"不可缺,否则出现forbidden错误
index index.html index.htm;
}
}
http://localhost/html 访问/usr/share/nginx/html/目录下的文件
http://localhost/hadoop_docs 访问/usr/local/hadoop/share/doc/hadoop/目录下的文件
注意root和alias使用时的一些区别:
1)alias指定的目录是准确的,即location匹配访问的path目录下的文件直接是在alias目录下查找的;
2)root指定的目录是location匹配访问的path目录的上一级目录,这个path目录一定要是真实存在root指定目录下的;
3)使用alias标签的目录块中不能使用rewrite的break(具体原因不明);另外,alias指定的目录后面必须要加上"/"符号!!
4)alias虚拟目录配置中,location匹配的path目录如果后面不带"/",那么访问的url地址中这个path目录后面加不加"/"不影响访问,访问时它会自动加上"/";
但是如果location匹配的path目录后面加上"/",那么访问的url地址中这个path目录必须要加上"/",访问时它不会自动加上"/"。如果不加上"/",访问就会失败!
5)root目录配置中,location匹配的path目录后面带不带"/",都不会影响访问。
用法2:负载均衡
Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,只有你想不到的没有他做不到的啦,你可以参照所有的负载均衡算法,给他一一找出来做下实现。
Ip hash算法,对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。
具体配置代码见:
http://oracle-api.iteye.com/admin/blogs/2088083
用法3:web缓存
Nginx可以对不同的文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache,主要用于对FastCGI的动态程序进行缓存。配合着第三方的ngx_cache_purge,对制定的URL缓存内容可以的进行增删管理。
参考:
http://nginx.org/en/linux_packages.html#stable
http://shiyanjun.cn/archives/72.html
http://nginx.org/en/docs/beginners_guide.html
http://www.cnblogs.com/knowledgesea/p/5175711.html
http://www.cnblogs.com/knowledgesea/p/5199046.html
http://www.cnblogs.com/kevingrace/p/6187482.html Nginx虚拟目录alias和root目录