Nginx入门介绍与安装
Nginx是什么?
Nginx是俄罗斯人编写的十分轻量级的HTTP和反向代理服务器。发音:"engine X"
Nginx能干什么?
(1)Http反向代理
Nginx 支持正则表达式以区分静态资源或者动态资源,提供性能稳定,并且能够提供配置灵活的转发功能。 ,其中动态资源可以进一步转发给后端的 Proxy Server, 而静态资源则可以在 Nginx 层面使用本地缓存策略或者重定向(类 CDN)到其他 Nginx 上。
(2)负载均衡
目前Nginx支持以下几种的负载均衡的策略:
1,round-robin(轮询,默认策略)
每个请求轮询发送到不同的服务器上面,如果某台服务宕机了,nginx会自动剔除掉,并把请求给转发到正常的服务器上面。
2,least_conn
最少连接数
3,least_time
最少时间花费,nginx会选择延迟最低的服务器。header表示是计算从后台返回的第一个字节,last_byte计算的是从后台返回的所有数据时间
4,weight
如果服务器性能本身不太均衡,通过配置权重让资源配置更高的机器得到更多的流量
5,ip_hash
使用请求的ip的hash结果分配,这样每个用户会被分配在同一个后台服务器上面
6,fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配
github地址:https://github.com/gnosek/nginx-upstream-fair
7,url_hash(第三方)
基于url的hash进行分配
此外还有一些基于一致性hash和tcp负载的功能,感兴趣的朋友可以自己查阅资料。
(3)web缓存
Nginx可以对不同文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache.
尤其是前端开发的项目中,一些js,css,html,图片,视频,音频等资源可以作为静态资源发布,由nginx缓存以提升响应速度。
(4)其他
此外使用Nginx可以做一个简单的http的下载服务器,只要配置开启目录浏览功能即可实现。还有一些权限拦截功能,也可以使用Nginx来完成。
Nginx的安装
默认的centos是没有nginx的yum源,需要执行下面的命令:
-
rpm -Uvh --force http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
-
-
yum install -y nginx
安装完成后,一些默认的目录如下:
-
网站默认站点配置的首页
-
/usr/share/nginx/html
-
-
默认的nginx的配置目录
-
/etc/nginx/conf.d/
-
-
默认的目录下面有一个配置模板,如果不需要,可以改后缀名不为conf ,然后重新reload即可
-
/etc/nginx/conf.d/default.conf
-
-
Nginx全局配置,主要的配置选项
-
/etc/nginx/nginx.conf
-
-
默认的访问log
-
/var/log/nginx/access.log
-
-
默认的错误log
-
/var/log/nginx/error.log
-
-
默认的进程id
-
/var/run/nginx.pid
一些常用命令:
-
nginx -V 2>&1 | tr ' ' '\n' 查看安装的插件
-
-
nginx -v 看版本
-
-
nginx 启动
-
-
nginx -s stop 快速停止
-
-
nginx -s reload 重新加载
-
-
nginx -t 查看配置文件是否有错误
执行nginx启动之后,访问ip的80端口,如果能看见下面的字样,就代表成功:
-
Welcome to nginx!
-
-
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.
-
-
For online documentation and support please refer to nginx.org.
-
Commercial support is available at nginx.com.
-
-
Thank you for using nginx.
最后再介绍一个实用的功能,就是编辑nginx的conf文件默认是黑白颜色的,对视觉极其不友好,所以我们需要安装一个支持nginx的conf文件语法高亮的插件:
-
wget http://www.vim.org/scripts/download_script.php?src_id=14376 -O nginx.vim
-
-
mkdir -p ~/.vim/syntax
-
-
mv nginx.vim ~/.vim/syntax/
-
-
vim ~/.vim/filetype.vim
-
-
粘贴下面的内容到里面去:
-
-
au BufRead,BufNewFile /etc/nginx/*,/usr/local/nginx/conf/* if &ft == '' | setfiletype nginx | endif
最后退出终端,重新登录即可