Nginx安装手册(摘自入云龙老师教案,亲测可用)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

Nginx安装手册


一、 nginx安装环境

nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境。

1)gcc
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,

如果没有gcc环境,需要安装gcc:yum install gcc-c++ 

2) PCRE
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。

nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库 :
yum install -y pcre pcre-devel
注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。

3)zlib
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,

所以需要在linux上安装zlib库 :
yum install -y zlib zlib-devel
4)openssl
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、

常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http)

所以需要在linux安装openssl库:
yum install -y openssl openssl-devel


二、 编译安装 

1)将nginx-1.8.0.tar.gz上传至linux服务器。
2)解压:
tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
3)configure
./configure --help查询详细参数
参数设置如下:
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
注意:上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录
4)make
5)make  install


三、启动nginx

cd /usr/local/nginx/sbin/
./nginx 
nginx进程:
15098是nginx主进程的进程id,15099是nginx工作进程的进程id
注意:执行./nginx启动nginx,这里可以-c指定加载的nginx配置文件,如下:
./nginx -c /usr/local/nginx/conf/nginx.conf
如果不指定-c,nginx在启动时默认加载conf/nginx.conf文件,

此文件的地址也可以在编译安装nginx时指定./configure的参数

(--conf-path= 指向配置文件(nginx.conf))

四、停止nginx
方式1,快速停止:
cd /usr/local/nginx/sbin
./nginx -s stop
此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
方式2,完整停止(建议使用):
cd /usr/local/nginx/sbin
./nginx -s quit
此方式停止步骤是待nginx进程处理任务完毕进行停止。

五、重启nginx
方式1,先停止再启动(建议使用):
对nginx进行重启相当于先停止nginx再启动nginx,即先执行停止命令再执行启动命令。
如下:
./nginx -s quit
./nginx
方式2,重新加载配置文件:
当nginx的配置文件nginx.conf修改后,要想让配置生效需要重启nginx,使用-s reload不用先停止nginx再启动nginx即可将配置信息在nginx中生效,如下:
./nginx -s reload

六、测试
nginx安装成功,启动nginx,查看有没有端口80占用,nginx默认端口为80。

netstat -nltp 

 

七、开机自启动nginx

7.1编写shell脚本
这里使用的是编写shell脚本的方式来处理
vi /etc/init.d/nginx  (输入下面的代码)
#!/bin/bash
# nginx Startup script for the Nginx HTTP Server
# it is v.0.0.2 version.
# chkconfig: - 85 15
# description: Nginx is a high-performance web and proxy server.
#              It has a lot of features, but it's not for everyone.
# processname: nginx
# pidfile: /var/run/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx/conf/nginx.conf
nginx_pid=/var/run/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x $nginxd ] || exit 0
# Start nginx daemons functions.
start() {
if [ -e $nginx_pid ];then
   echo "nginx already running...."
   exit 1
fi
   echo -n $"Starting $prog: "
   daemon $nginxd -c ${nginx_config}
   RETVAL=$?
   echo
   [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
   return $RETVAL
}
# Stop nginx daemons functions.
stop() {
        echo -n $"Stopping $prog: "
        killproc $nginxd
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid
}
# reload nginx service functions.
reload() {
    echo -n $"Reloading $prog: "
    #kill -HUP `cat ${nginx_pid}`
    killproc $nginxd -HUP
    RETVAL=$?
    echo
}
# See how we were called.
case "$1" in
start)
        start
        ;;
stop)
        stop
        ;;
reload)
        reload
        ;;
restart)
        stop
        start
        ;;
status)
        status $prog
        RETVAL=$?
        ;;
*)
        echo $"Usage: $prog {start|stop|restart|reload|status|help}"
        exit 1
esac
exit $RETVAL

:wq  保存并退出

7.2 设置文件的访问权限
chmod a+x /etc/init.d/nginx   (a+x ==> all user can execute  所有用户可执行)
这样在控制台就很容易的操作nginx了:查看Nginx当前状态、启动Nginx、停止Nginx、重启Nginx… 
如果修改了nginx的配置文件nginx.conf,也可以使用上面的命令重新加载新的配置文件并运行,

可以将此命令加入到rc.local文件中,这样开机的时候nginx就默认启动了


7.3 加入到rc.local文件中
vi /etc/rc.local
加入一行  /etc/init.d/nginx start    保存并退出,下次重启会生效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451717.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

33--二维数组中的查找

1.问题描述 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 示例: 现有矩阵 matrix 如下&…

XML Schema是什么

XML Schema 本身也是一种XML构造,它用来描述[哪个元素,在什么时候出现],[该元素具有什么样的属性]等等,也就是说,XML Schema是对XML的树形构造加以描述说明的一种语言。原本,使用DTD对XML的树形构造加以描述…

js之base64上传图片

首先要搭建好springmvc,详见https://www.cnblogs.com/zzb-yp/p/9295397.html 整体思路:前端代码包括显示和传参(这里的参数主要就是图片的base64字符串),显示主体部分是type“file”类型的input组件和一个提交按钮 …

一些常用软件的网络端口协议分类介绍

最近有朋友请教我有关实现校园局域网视频功能软件的编写问题,涉及到端口有关的知识,自己查了一些资料,发现这篇文章总结得比较不错,常用软件涵盖得比较丰富,很实用,需要用到的时候可以查阅。于是决定将这篇…

WPF 使用皮肤影响按钮自定义

在WPF项目中使用了 Theme的皮肤后,发现自定义的按钮全部都是 皮肤里面的样式,如下图: 要自定义样式,只有不给按钮使用皮肤样式。 如果想给某一个控件使用样式,在前端Xaml的控件中,设置一下属性即可&#xf…

各种数据库对应的jar包、驱动类名和URL格式

见:http://blog.csdn.net/xuguiyi100/article/details/7970379 maven/Java/web/bootstrapQQ群:566862629。希望更多人一起帮助我学习。 1.1. 各种数据库对应的jar包 具体如下: 数据库类型 对应的Jar文件 Oracle 8i classes12.zip 或…

34--替换空格

1.问题描述 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 示例 1: 输入:s “We are happy.” 输出:“We%20are%20happy.” 2.解题思路 由于每次替换从 1 个字符变成 3 个字符,使用字符数组可方…

HTML的xmlns的作用

作用:由于xml允许定义自己的标记,但你定义的标记和其他人定义的标记有可能相同,但表示不同的含义。当文档交换或者共享的时候就容易产生错误。为避免这种错误产生,xml采用名字空间声明,允许你通过一个网址来识别你的标…

树链剖分 讲解+模板+习题

今天我们来讲一下树链剖分 树链剖分是什么? 树链剖分是一种用来维护树上路径信息的在线方法,可以处理在线。 通常通过一种方法,将一棵树剖分成若干条链,然后通过数据结构(线段树,BIT等)去维护。…

navicat 批量插入 测试数据

1. 前言 遇到线上大sql执行较慢, 10s, 做优化改进时,首先想到的是在本地造出一个类似的库环境,先本地实验。 然后往表中创建大量数据... 2. 方案 利用mysql函数来插入大量数据 代码 BEGIN#Routine body goes here... DECLARE id int; DECLARE driverid …

互联网产品用户体验设计的三大定律

好友发过来一PPT,文件名是互联网产品的体验设计,认真看完,收获颇多,其中印象最深刻的是用户体验可用性的三大定律,正好FasterSoft正在打造互联网精品平台iWorld,最需要的时候好东西就上门来了,这…

oracle 对应的JDBC驱动 版本

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 Oracle版本jdk版本推荐jar包备注Oracle 8iJDK 1.1.xclasses111.zip Oracle 8iJDK 1.1.xclasses12.zip Oracle 9iJDK 1.1.xclasses111.ja…

JSP特点

1.JSP文件必须在JSP服务器内运行。 2.JSP文件必须生成servlet才能执行。 3.JSP页面的第一个访问者速度慢,因为需要编译生成Servlet。 4.JSP不需要专门的客户端,也不需要java运行环境,因为JSP输出到页面是标准的HTML文件。

35--用两个栈实现队列

1.问题描述 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例 1: 输入&#xf…

如何open一个新tab页面

打开新tab页的两种方式 1 a标签 function openwin(url) {var a document.createElement("a");a.setAttribute("href", url);a.setAttribute("target", "_blank");a.setAttribute("id", "camnpr");document.body.…

Linux中打开文件管理器的命令

在Mac中,我们可以使用open命令,在终端打开指定目录下的文件管理器,在Linux中,同样可以使用类似的命令:nautilus。 转载于:https://www.cnblogs.com/chaoguo1234/p/9446106.html

final类与方法

final类---不可被继承。 final方法---不可被覆盖。

【Visual C++】一些开发心得与调试技巧

自己平时收集的一些技巧与心得,这里分享出来,普及一下知识。 1.如何在Release状态下进行调试   Project->Setting>ProjectSetting对话框,选择Release状态。C/C标签中的Category选General,Optimizations选Disable(Debug)&a…

36--斐波那契数列

1. 问题描述 写一个函数,输入n,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下: F(0) 0, F(1) 1 F(N) F(N - 1) F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数…

lineNumber: 1; columnNumber: 1; 前言中不允许有内容

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 我是在xml配置文件中引用别的配置文件&#xff0c;本来是这样写的 <import resource"spring-mybatis.xml" /> 就报这…