Nginx有什么用?
Nginx可读做EngineX
是由俄罗斯程序员Igor Sysoev
开发的高性能的web服务器。
它采用了与Apache彻底不一样的模型,可以处理接收更多的请求。
因为Nginx优秀的性能,Nginx几乎能够和Apache并驾齐驱。
对Apache来讲,Nginx可谓是后起之秀。
能够说Apache表明了经典,Nginx则表明了新锐。
那Nginx具体有什么功能呢?php
基本功能:
- 静态资源的web服务器,能缓存打开的文件描述符。
- http, smtp, pop3协议的反向代理服务器,缓存、负载均衡。
- 支持FastCGI
- 模块化,过滤器zip,SSI及图像大小调整
- 支持SSL。
须要注意的是:
a.若是单纯只安装一个Nginx的软件包,服务器只会响应静态请求。
因此Nginx在配合php-fpm的时候就能够解析php网页的动态请求。
Apache的时候,php通常做为一个插件安装使用。
而php-fpm则是一个独立的进程,通常监听在9000端口。
b.Nginx不只做为web服务器具备高性能,并且做为反向代理服务器也是十分优秀的。
c.与Apache的动态加载模块不一样,nginx虽然支持第三方模块,可是也须要编译。
html
扩展功能:
- 基于名称和IP的虚拟主机
- 支持长链接
- 支持平滑升级
- 定制访问日志 ,支持使用日志缓冲区提升日志存储性能
- 支持url重写
- 支持路径别名
- 支持基于IP及用户的访问控制
- 支持速率限制,支持并发数限制
虽然看上去她好像跟Apache服务器没什么区别,下面咱们将从几个方面与Apache进行对比。
Nginx与Apache的不一样之处
明明已经有Apache了,Nginx有什么特别的好处吗?
- Nginx和Apache的最大不一样之处,在于其网络IO模型。
上一次咱们在讲解LAMP的时候有说过,Apache最大支持1024最大请求。
这个是由Apache的网络IO模型Select()
决定的。
Nginx使用异步IO模型Epoll()
,则没有Apache最大并发1024个请求这种限制。其实Select()最大并发1024也很多了,想一想一天有86400秒,假如一秒并发1024个。
不过这要创建在硬件性能知足最大请求的硬件基础上。由于不合穿的鞋怎么会让一个跑步运动员跑得快呢?
-
配置文件相比较于Apache,更加简单易懂。
而Apache在这方面,如反向代理的配置都相对麻烦。
而且Nginx有很详尽的官方文档。例如Apache将动态请求经过fastcgi转发给php-fpm,或者ajp协议转发给tomcat,在配置上都没有Nginx直观。
java -
做为反向代理服务器的时候,有健康状态检测。
可以监测后端的主机,若是有下线的话则不会到代理到下线的主机上。自带健康状态监测功能,若是是lvs则须要手动编写脚原本监测后端主机的状态。
node - Nginx更加轻量
响应请求的时候,Nginx占用的内存更加的少。
虽然Nginx还有不少很吸引人的地方,可是我以为这三点是我感觉最深的。
日后的文章里,在讲反向代理的时候咱们也会使用到Nginx。
若是之后时间比较充足的话,我还会配置一次Apache反向代理到tomcat。
到时候你们能够自行比较一下二者在实现一样功能上到底有什么不一样。mysql
使用Nginx搭建phpMyAdmin
phpMyAdmin是一个图形化管理MySQL数据库的一个工具。
他能够配置在web服务器上,用于统计数据库信息,备份数据库,实现增删改查等功能。
phpMyAdmin十分好用,并且直观。linux
主机名 | 主机地址 | |
---|---|---|
node1 | 192.168.2.201 |
本次使用的系统为CentOS7.1,数据库:MariaDB-5.5.50, web服务器:nginx-1.10.2,phpMyAdmin-4.6.5.2
注意:系统关闭了selinux,以及iptables。
nginx
因为此次咱们须要安装phpMyAdmin的高版本,须要php5.5+的版本。
因此咱们须要先配置一个remi的yum源,而这个源在清华大学有镜像。
Remi's RPM repository程序员
而phpMyAdmin咱们则能够访问他的官网
phpMyAdmin官方网站web
(1)配置remi镜像
[root@bc ~]# wget https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm [root@bc ~]# yum install remi-release-7.rpm
在官网中选择合适的镜像安装,由于咱们这里使用的是CentOS7,因此选择的是7的包。
(2)安装须要的组件
[root@bc ~]# yum install nginx mariadb mariadb-server php-mysql php56-php-fpm php56-php-mbstring php56-php-mysqlnd
这里须要注意的是,此次咱们选择了php56-php-fpm,也就是php5.6版本的php-fpm。
系统默认提供的php-fpm是5.4版本的。
(3)下载phpMyAdmin,并解压放置在Nginx的web根目录下
[root@bc ~]# wget https://files.phpmyadmin.net/phpMyAdmin/4.6.5.2/phpMyAdmin-4.6.5.2-all-languages.tar.gz [root@bc ~]# tar xf phpMyAdmin-4.6.5.2-all-languages.tar.gz [root@bc ~]# cp -Ra /root/phpMyAdmin-4.6.5.2-all-languages /usr/share/nginx/html/pma/ [root@bc ~]# chown nginx.nginx -R /usr/share/nginx/html/pma
(4)启动mariadb并初始化安全设置
[root@bc ~]# systemctl start mariadb.service [root@bc ~]# mysql_secure_installation
这里主要是设置密码,以及清除一些测试库等。
输出结果挺长的就不截取了。
待会儿在phpMyAdmin的页面上登录的帐号密码其实就是这里设置的。
(5)修改nginx设置
[root@bc ~]# vim /etc/nginx/nginx.conf
server {
listen 80 default_server; server_name node1.bc.com; root /usr/share/nginx/html/pma; index index.php index.html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } location ~ \.php$ { root html/pma/; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/pma/$fastcgi_script_name; include fastcgi_params; } }
(6)修改phpMyAdmin的配置
[root@bc ~]# cp /usr/share/nginx/html/pma/config.sample.inc.php /usr/share/nginx/html/pma/config.inc.php
[root@bc ~]# vim !$
$cfg['blowfish_secret'] = '0OYNHGWmgBWP/GtG3hLVwYlCeH0ZBs4hew'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
修改一行就能够了,这个主要是加密的字串,能够随便打一段进去,可是不要把个人这行复制进去。
须要注意的是,这个字符串须要在单引号里面,有一次眼神很差漏了一边单引号,结果报错了很久都没有找出问题。
(7)重启nginx以及启动php-fpm
[root@bc ~]# systemctl restart nginx.service [root@bc ~]# systemctl start php56-php-fpm.service
若是启动nginx不成功,可使用nginx -t来测试配置文件是否有语法错误。
(8)在浏览器上键入主机的ip地址就能够访问phpMyadmin。

这里输入的是刚才初始化数据库的时候,本身设置的帐号密码。
注意:安装phpMyAdmin的时候,由于要安装mbstring和mysqli组件。
假如没有安装,这里就会报错。
不过这些在remi的源中有提供,默认的源也有提供,不过要安装对应版本。
这里安装的是php56-php-fpm,因此安装mbstring的包名就是php56-php-mbstring
安装组件以后,php-fpm须要重启一下才能使组件生效。
(9)键入MySQL的帐号密码就能够正常使用了!
