文章目录
- Nginx 的安装和启动
- Nginx 和 Tengine
- Nginx
- Tengine
- Nginx 和 Apache 的优缺点
- Nginx相对于Apache的优点
- Apache相对于Nginx的优点
- Nginx解决的问题
- 安装
- 准备工作
- 启动
- 注意,这里有个坑
Nginx 的安装和启动
Nginx 和 Tengine
Nginx
- Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
- 官方测试nginx能够支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。
Tengine
Nginx 和 Apache 的优缺点
Nginx相对于Apache的优点
- 轻量级,同样是 web 服务,比apache 占用更少的内存及资源。
- 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能。
- 高度模块化的设计,编写模块相对简单。
- 社区活跃,各种高性能模块出品迅速。
Apache相对于Nginx的优点
- rewrite,比nginx的rewrite强大。(rewrite即URI重写,搜索引擎对后缀为 .html 的文件特别友好)。
- 模块超多,基本想到的都可以找到。
- 少bug,nginx的bug相对较多。
Nginx配置简洁;Apache比较复杂;
最核心的区别在于Apache是同步多进程模型,一个连接对应一个进程;而Nginx是异步的,多个连接(万级别)可以对应一个进程。
Nginx解决的问题
- 高并发
- 负载均衡
- 高可用
- 虚拟主机
- 伪静态
- 动静分离
安装
我使用的是Centos7操作系统,相对于Centos6只是有些命令不一样。我安装的是Tengine,其实和Nginx差不多。
准备工作
下载好后,需要在Linux环境上安装 c++ 的编译器,用于Nginx的安装。依赖组件:gcc openssl-devel pcre-devel zlib-devel
。
- 运行命令:
yum install gcc openssl-devel pcre-devel zlib-devel
- 将下载好的Nginx或Tengine压缩包上传至服务器。同时执行解压命令
tar -zxvf 上传的压缩包名称
- 进入
tengine-2.3.1
目录,进行编译安装。注意,编译时需要指定要安装到的目录,如果没有这个目录会自动创建,比如指定/usr/local/tengine
./ configure --prefix=/安装路径
make && make install
- 注意,这里在make时,可能会出现问题
使用make时出现 make: *** 没有规则可以创建“default”需要的目标“build”
具体可以参考这篇文章 其实就是在编译安装时,会提示某些依赖包没有找到(not found),需要自己手动安装。这篇文章中有一个一条命令替代
,不推荐使用,我用了就没好使,最后还是一条一条执行的就好了。
- 以上操作执行好后,Nginx就安装完成了,可以进入到刚刚指定的安装目录中。我的在
/usr/local/tengine/
。
启动
- 进入到
sbin
目录下,只有一个nginx
的文件,执行该文件就启动Nginx 了。
./nginx
- 如果执行后,没有任何提示代表启动成功,如果失败有可能就是配置文件写错了,可以去
logs
,目录下查看日志信息。
启动成功后,就可以在浏览器端访问了,输入Linux的ip地址,我的是192.168.0.22
就可以看见Nginx的欢迎界面了。
注意,这里有个坑
在我自己实际操作时,Nginx在浏览器就是访问不到,虚拟机和主机之间互ping也能ping通,在虚拟机中访问该地址可以访问到,但是在主机就不行。
这是因为没有关闭Linux的防火墙,Centos7的防火墙命令和Centos6的命令不同。以下给出Centos7的防火墙相关命令。
- 查看防火墙状态
firewall-cmd --state
- 关闭防火墙
systemctl stop firewalld.service
- 禁止防火墙开机启动
systemctl disable firewalld.service
关闭防火墙后,就没问题啦。