faf
1.Nginx的简单说明
a. Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器,期初开发的目的就是为了代理电子邮件服务器室友:Igor Sysoev开发,源代码符合BSD开源。其特点就是占用内存少并发能力强,在天朝使用Nginx的大型网站已经有很多:百度、淘宝、腾讯等等...。
b.Nginx作为Http服务器,有以下几项基本特征:
b.1 处理静态文件,索引文件以及自动索引,打开文件描述符缓冲。
b.2 无缓存的反向代理加速,简单的负载均衡和容错
b.3 模块化的结构,包括gzipping,byte ranges,chunked responses以及SSI-filter等filter,如果由FastCGI或其它代理服务器处理蛋液中存在的多个SSI,则这项处理可以并行运行,而不需要相互等待。
b.4 支持SSL和TLSSNI。
c.Nginx官网:http://nginx.org/
d.Nginx推荐学习网址:http://dreamfire.blog.51cto.com/418026/1140965
2.准备工作
a.上面简单介绍了一下Nginx,大家如果想要了解更多关于Nginx的知识,请自行通过网络学习。
b.工欲善其事必先利其器,下面我们就在Linux下面简单安装一下Niginx,在安装过程中需要了一些问题,同步都会在博客中说出来。
c.Nginx的安装依赖于以下三个包,意思就是在安装Nginx之前首先必须安装一下的三个包,安装顺序为我写的顺序:
c.1 SSL功能需要openssl库,下载地址:http://www.openssl.org/
c.2 gzip模块需要zlib库,下载地址:http://www.zlib.net/
c.3 rewrite模块需要pcre库,下载地址:http://www.pcre.org/
d.Nginx的安装包:下载地址为:http://nginx.org/en/download.html
e.将上面下载的几个软件全部使用Xftp上传到Linux系统中,上传路径和软件如图所示:
f.操作需要的软件以及系统如下:虚拟机(Vmware),虚拟机中安装的Centos系统,Xshell,Xftp,以及上面的几个包。
g.下面开始按照上面说的按照顺序开始安装软件。
3.安装SSL功能需要openssl库以及gzip模块需要的zlib库
a(1).首先我们安装SSL功能需要的openssl库插件,注意:安装过程是按照我在linux下设置的文件路径来安装的,命令如下:
a.1 tar -zxvf soft/openssl-SNAP-20160104
a.2 cd cd openssl-SNAP-20160104/
a.3 ./config
a.4 make
a.5 make install
b(1).安装gzip模块需要zlib库的安装方法和openssl安装的方法一模一样,也是分为上面五个步骤,只不过是文件的名称不一样,命令简单如下:
b.1 tar -zxvf soft/openssl-SNAP-20160104
b.2 cd openssl-SNAP-20160104/
b.3 ./configure
b.4 make
b.5 make install
b.如果没有报错,则说明安装完全完成了~。
4.安装 rewrite模块需要pcre库
a.安装 rewrite模块需要pcre库的安装方法和openssl安装的方法一模一样,也是分为上面五个步骤,只不过是文件的名称不一样,命令简单如下:
a.1 tar -zxvf soft/pcre-8.38.tar.gz
a.2 cd pcre-8.38/
a.3 ./configure
a.4 make
a.5 make install
b.在执行./configure的出现错误了,导致不能继续往下执行,报错内容为:
error: You need a C++ compiler for C++ support,看到这句话我们就已经猜到了应该是c++包信息,而linux中没有,那么首先安装一下这个包信息即可,安装命令为:
b.1 yum install -y gcc gcc-c++
c.当安装完上面的c++包之后,在此运行,发现消息已经显示安装成功了,当基于上面的东西全部安装完成之后,就需要安装Nginx服务了。
5.安装 Nginx服务
a.安装 rewrite模块需要pcre库的安装方法和openssl安装的方法一模一样,也是分为上面五个步骤,只不过是文件的名称不一样,命令简单如下:
a.1 tar -zxvf soft/nginx-1.9.9.tar.gz
a.2 cd nginx-1.9.9/
a.3 ./configure --with-pcre=../pcre-8.38/ --with-zlib=../zlib-1.2.8/ --with-openssl=../openssl-SNAP-20160104/
a.4 make
a.5 make install
b.在执行./configure的出现错误了,导致不能继续往下执行,报错内容为:
error: You need a C++ compiler for C++ support,看到这句话我们就已经猜到了应该是c++包信息,而linux中没有,那么首先安装一下这个包信息即可,安装命令为:
b.1 yum install -y gcc gcc-c++
c.当安装完上面的c++包之后,在此运行,发现消息已经显示安装成功了。博文到这里如果安装的时候没有遇到错误的话说明已经安装成功了,下面我们就是测试Nginx是否安装成功。
6.监测Nginx是否安装成功
a.当上面的所有步骤完成之后,则说明Nginx安装已经完成,那么我们如何来确定是否安装成功了呢?通过以下命令来确定即可。
a.1 cd /usr/local/nginx/sbin/
a.2 ./nginx -t
b. 当我执行第二个命令(./nginx -t)的时候出错了,报没有权限的错误。如图所示:
备注:根据错误提示,我们就能够看出来,是说/usr/local/nginx下没有权限,解决办法也很简单,我们给文件赋值权限。
c.如下图所示,配置权限(配置权限需要切换到root用户下)之后,执行上面两个步骤,如果linux中如下图所示:则说明安装已成功。
d.当确认安装完成之后,首先就需要启动和查看Nginx默认安装的端口是多少,两个命令分别如下:
(1) ./nginx
(2) netstat -ntlp , Nginx默认端口为80
e.开放80端口,让其外部环境可以访问(如果不开放80端口,外部环境访问不了),命令以及截图如下:
vim /etc/sysconfig/iptables
备注:这里我使用vim更改防火强信息之后,在重新启动防火墙的时候出现了错误,错误信息为:Try `iptables-restore -h' or 'iptables-restore --help' for more information,这个错误信息提示我们不能重新启动防火墙,那怎么办呢?测试了一下已写命令的方式去更改,发现更改成功了,如图所示:
f.当上面的工作完成之后,我们在外部浏览器中浏览:http://IP,出现如图所示,则说明安装已完全完成。
7.将Nginx设置为开机自动启动
a.当上面6步完成之后,说明安装已经完全成功了,但是每次开机我们面临的一个问题,就是每次都要执行命令(1: cd /usr/local/nginx/sbin/ 2:./nginx -t),那么这时候有这个需要,设置开机自启动,开机自动启动的命令为:将Nginx的启动命令添加到/etc/rc.local,命令如下:
echo "/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf" >> /etc/rc.local
b.然后将Linux关机重启测试一下,如果http://IP还能够访问,则说明配置成功了,我这边已测试,配置完全成功。
8.使用server命令启动nginx服务
a. 现在觉得启动命令太麻烦,虽然开机可以自启动,但是每次改动要重新启动nginx的话,要么输入命令,要么开机,都还不是很好,那么我们能不能创造一个更好的方式呢?当然可以,我们可以通过设置System V脚本。
b.脚本代码如下所示:
#!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - # description: Nginx is an HTTP(S) server, HTTP(S) reverse \ # proxy and IMAP/POP3 proxy server # processname: nginx # config: /etc/nginx/nginx.conf # config: /etc/sysconfig/nginx # pidfile: /var/run/nginx.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 nginx="/usr/local/nginx/sbin/nginx" prog=$(basename $nginx) NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx start() { [ -x $nginx ] || [ -f $NGINX_CONF_FILE ] || echo -n $"Starting $prog: " daemon $nginx -c $NGINX_CONF_FILE retval=$? echo [ $retval -eq ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT retval=$? echo [ $retval -eq ] && rm -f $lockfile return $retval killall - nginx } restart() { configtest || return $? stop sleep start } reload() { configtest || return $? echo -n $"Reloading $prog: " killproc $nginx -HUP RETVAL=$? echo } force_reload() { restart } configtest() { $nginx -t -c $NGINX_CONF_FILE } rh_status() { status $prog } rh_status_q() { rh_status >/dev/null >& } case "$1" in start) rh_status_q && $ ;; stop) rh_status_q || $ ;; restart|configtest) $ ;; reload) rh_status_q || $ ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" esac
server命令的代码
c.创建命令如下,手先跳转到/etc/init.d下创建nginx启动脚本文件,命令如下;
c.1 cd /etc/init.d/
c.2 vim nginx 创建一个新的nginx文件,将上面的命令代码copy到里面,然后保存
d.修改脚本权限,命令如下:chmod 755 nginx
e.将脚本文件加入到chkconfig中 chkconfig --add nginx
f.设置nginx开机在3和5级别自动启动 chkconfig --level 35 nginx on
g.测试nginx脚本文件是否能够正常使用,命令如下,我均已测试,全部可以使用。
g.1 /etc/init.d/nginx restart
g.2 /etc/init.d/nginx reload
g.3 /etc/init.d/nginx stop
到这里我们这片笔记就完成了,能帮助大家就帮到,帮不到大家,谢谢大家了,这只是学习笔记,不用较真某些东西,谢谢~~~~
后面有机会我还会再说这块的,如何将一个网站部署到nginx下去~~~~
faf的更多相关文章
- gnuplot: 一种更为简洁的曲线,柱状图绘图软件
gnuplot: 一种更为简洁的曲线,柱状图绘图软件 gnuplot: 一种更为简洁的曲线,柱状图绘图软件 Zhong Xiewei Wed Jun 25 gnuplot简单介绍 关于gnuplot的 ...
- 魔改——MFC SDI 支持 内嵌 EXCEL OLE
==================================声明================================== 本文版权归作者所有 未经作者授权 请勿转载 保留法律追究的 ...
- 关于kali2.0rolling中metasploit升级后无法启动问题的解决总结
最近在学习metasploit的使用,文中提到可以使用msfupdate命令来对metasploit的payload.exploit等进行升级,我就试了一下,没想到升级过程并不麻烦,但升级后却出现了无 ...
- JMeter中BeanShell实现写入文件
1.首先F:\test.txt文件为空
- python 学习笔记十二 CSS基础(进阶篇)
1.CSS 简介 CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中,是为了解决内容与 ...
- SpringMVC 文件上传&拦截器&异常处理
文件上传 Spring MVC 为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的.Spring 用 Jakarta Commons FileUpload ...
- css3 filter属性在项目中的应用
css3 属性filter应用在项目里. 语法: <filter>: 要使用的滤镜效果.多个滤镜之间用空格隔开. 设置或检索对象所应用的滤镜效果. 最常用的滤镜效果是不透明效果,如果要实现 ...
- ife-task0003学习收获总结
+ 编写可维护的css原则是,尽量减少改动时要编辑的地方(减少代码重复). + CSS布局奇淫技巧之-高度自适应 高度自适应:通过绝对定位来解决高度自适应的问题,元素不设置高度,设置绝对定位,将top ...
- ubuntu 13.10 monodevelop3 安装
版本 ubuntu 13.10 桌面模式默认:unity :文件管理器:nautilus
随机推荐
- Git学习系列之Git基本操作提交项目(图文详解)
前面博客 Git学习系列之Git基本操作克隆项目(图文详解) 然后可以 cd 切换到 LispGentleIntro 目录, 新增或者修改某些文件.这里只是模拟一下操作, 实际情况可能是 使用 Ecl ...
- JavaScript设计模式-19.代理模式
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 前端思想实现:面向UI编程_____前端框架设计开发
引子,我去小说看多了,写博客竟然写引子了!!!不过,没引子不知道怎么写了.言归正传吧,前端这个职业,也就这几年刚刚火起来的职业,以前那个混乱的年代,前端要么是UI设计师代劳解决问题,要么就是后端程序员 ...
- C 标准库 - string.h之memmove使用
memmove Move block of memory Copies the values of num bytes from the location pointed by source to t ...
- [C语言]链表实现贪吃蛇及部分模块优化
在继上篇[C语言]贪吃蛇_结构数组实现大半年后,链表实现的版本也终于出炉了.两篇隔了这么久除了是懒癌晚期的原因外,对整个游戏流程的改进,模块的精简也花了一些时间(都是借口). 优化模块的前沿链接: · ...
- vue.js 开发环境搭建
1.安装node.js(http://www.runoob.com/nodejs/nodejs-install-setup.html) 2.基于node.js,利用淘宝npm镜像安装相关依赖 在cmd ...
- 【转】winform程序textbox滚动条保持在最下面 内容不闪烁
在开发winform程序时,会用到textbox控件来显示信息,当把textbox的Multiline属性改为Ture时(即多行显示状态),ScrollBars属性改为Vertical(内容过多时,显 ...
- Angular: 使用 RxJS Observables 来实现简易版的无限滚动加载指令
我使用 angular-cli 来搭建项目. ng new infinite-scroller-poc --style=scss 项目生成好后,进入 infinite-scroller-poc 目录下 ...
- SVN相关命令
从http://subversion.tigris.org获取subversion for windows的版本,安装之后就有了svn.exe这个基于命令行的客户端工具.当然服务器端的程序也有了,这里 ...
- TextBox 控件
TextBox控件上有一个箭头,MultiLine属性,是多行显示 TextBox控件有System.Windows.TextBox类提供,提供了基本的文本输入和编辑功能 属性 A ...