Nginx 安装详细(一)
1. 老规矩,来点开场白:Nginx简单介绍
Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。
更多关于Nginx介绍以及作用请自行百度
2. 安装Nginx基础依赖包
[root@nginx ~]# yum install gcc gcc-c++ pcre-devel zlib-devel openssl-devel -y
3. 下载相关的软件包
3.1 下载nginx稳定版
注:进入Nginx安装包下载地址复制您想要的版本链接,我这里以Nginx-1.14.0为例。
[root@nginx~]# cd /usr/local/src/
[root@ nginx src]# wget http://nginx.org/download/nginx-1.14.0.tar.gz
3.2 下载nginx-sticky模块(可选安装,应用于集群)
作用:后端做负载均衡解决session sticky问题。
[root@nginx src]# wget https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/master.tar.gz
3.3 下载ngx_cache_purge模块(可选安装)
作用:将ngx_cache_purge编译到到Nginx中,用来清除指定URL的缓存。
(官网地址:http://labs.frickle.com/nginx_ngx_cache_purge/)
[root@nginx src]# wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz

4. 添加Nginx用户和组
[root@nginx ~]# groupadd www
[root@nginx ~]# useradd -g www www -s /sbin/nologin
注:创建nginx运行用户www并加入到www组,不允许www用户直接登录系统。
5. 解压Nginx源码包并进入解压目录,进行编译安装
[root@nginx src]# tar zxf nginx-1.14..tar.gz
# 注意3.2的可选项
[root@nginx src]# tar zxf ngx_cache_purge-2.3.tar.gz
# 注意3.3的可选项
[root@nginx src]# tar zxf nginx-goodies-nginx-sticky-module-ng-08a395c66e42.tar.gz
[root@nginx src]# cd nginx-1.14./
注:‘=’号后面是自己安装包的绝对路径,和配置文件路径。
[root@nginx-master nginx-1.14.]# ./configure --prefix=/usr/local/nginx
> --user=www --group=www
> --with-http_stub_status_module
> --with-http_realip_module --with-http_ssl_module
> --with-http_gzip_static_module
> --http-client-body-temp-path=/var/tmp/nginx/client
> --http-proxy-temp-path=/var/tmp/nginx/proxy
> --http-fastcgi-temp-path=/var/tmp/nginx/fcgi
# 注意3.2的可选项
> --with-pcre --add-module=/usr/local/src/ngx_cache_purge-2.3
# 注意3.3的可选项
> --add-module=/usr/local/src/nginx-goodies-nginx-sticky-module-ng-08a395c66e42

执行完编译后:

[root@nginx nginx-1.14.]# make && make install
注:Nginx的所有模块必须在编译的时候添加,不能再运行的时候动态加载。
6. 优化Nginx程序的执行路径
[root@nginx nginx-1.14.]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@nginx nginx-1.14.]# nginx -t
如果出现以下问题:

需要创建此目录:
[root@nginx nginx-1.14.]# mkdir -p /var/tmp/nginx/client

7. 配置Nginx开机自启动等命令,方便我们管理Nginx
原始管理nginx的命令,不是很方便!
[root@nginx-master ~]# nginx 启动nginx
[root@nginx-master ~]# nginx -s reload 重启nginx
[root@nginx-master ~]# nginx -s stop 停止nginx
接下来设置常用的管理命令:
1) 创建开机启动命令脚本文件:
[root@nginx ~]# vim /etc/init.d/nginx
2) 在这个Nginx文件中插入一下启动脚本代码:
-----------------------------------脚本如下 -----------------------------------
#! /bin/bash
# chkconfig: -
PATH=/usr/local/nginx
DESC="nginx daemon"
NAME=nginx
DAEMON=$PATH/sbin/$NAME
CONFIGFILE=$PATH/conf/$NAME.conf
PIDFILE=$PATH/logs/$NAME.pid
scriptNAME=/etc/init.d/$NAME
set -e
[ -x "$DAEMON" ] || exit
do_start() {
$DAEMON -c $CONFIGFILE || echo -n "nginx already running"
}
do_stop() {
$DAEMON -s stop || echo -n "nginx not running"
}
do_reload() {
$DAEMON -s reload || echo -n "nginx can't reload"
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
do_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
do_stop
echo "."
;;
reload|graceful)
echo -n "Reloading $DESC configuration..."
do_reload
echo "."
;;
restart)
echo -n "Restarting $DESC: $NAME"
do_stop
do_start
echo "."
;;
*)
echo "Usage: $scriptNAME {start|stop|reload|restart}" >&
exit
;;
esac
exit
[root@nginx ~]# cd /etc/init.d/
3) 设置所有人都有对这个启动脚本nginx文件的执行权限:
[root@nginx init.d]# chmod a+x nginx
4) 把nginx加入系统服务中:
[root@nginx init.d]# chkconfig --add nginx
5) 把服务设置为开机启动:
[root@nginx init.d]# chkconfig nginx on
注:reboot重启系统生效!
6) 重启后,就可以执行如下命令进行管理了
systemctl start nginx.service # 启动nginx
systemctl stop nginx.service # 结束nginx
systemctl restart nginx.service # 重启nginx
systemctl enable nginx.service # 开机启动
8. 如果出现 Nginx 启动不了,请尝试以下方法
1) 如果之前安装过httpd,侧需要先卸载httpd,否则启动失败,除非修改Nginx启动端口。
[root@nginx ~]# yum remove httpd -y
2) 如果还是启动不来,再试试这个方法:杀死Nginx相关的进程之后,启动Nginx
[root@nginx ~]#ps -A | grep nginx
[root@nginx ~]#kill - pid1
[root@nginx ~]#kill - pid2
3) 如果还是不行,查看日志信息解决。
9. 启动Nginx并访问测试

后续继续更新Nginx优化及反向代理功能相关内容!
Nginx 安装详细(一)的更多相关文章
- Nginx安装详细指南
nginx安装环境 nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境. gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有g ...
- linux/centos下安装nginx(rpm安装和源码安装)详细步骤
Centos下安装nginx rpm包 ...
- Nginx Linux详细安装部署教程
一.Nginx简介 Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入安装步骤 二.Nginx安装 1.下载N ...
- nginx安装教程(详细)
所见即所得编辑器, editorhtml{cursor:text;*cursor:auto} img,input,textarea{cursor:default}.cke_editable{curso ...
- nginx安装及其配置详细教程
1 nginx 介绍 1 什么是nginx Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器. 由俄罗斯的程序设计师Igor Sysoev所开发,官方 ...
- 转载《centos6安装nginx最详细步骤》
出处:https://www.cnblogs.com/hltswd/p/6956264.html 第一步:在centos下面下载 nginx wget http://nginx.or ...
- centos6安装nginx最详细步骤
第一步:在centos下面下载 nginx wget http://nginx.org/download/nginx-1.2.9.tar.gz 解压 tar zxf nginx-1. ...
- Nginx安装(详细版本)
Nginx安装文档 前言: 最近,系统部署人员那边,让我们给写一个傻瓜式的Nginx安装过程.所以就有了这个文档,本着独乐乐不如众乐乐,就分享一下.我觉得对入门小白来说,有图,乃至运行过程图,是很重要 ...
- Linux下查看Nginx安装目录、版本号信息?
Linux环境下,怎么确定Nginx是以那个config文件启动的? 输入命令行: ps -ef | grep nginx 摁回车,将出现如下图片: master process 后面的就是 ngi ...
随机推荐
- Java 锁机制 synchronized
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/75126630 本文出自[赵彦军的博客] 1.前言 在多线程并发编程中Synchro ...
- 关于前端本地压缩图片,兼容IOS/Android/PC且自动按需加载文件之lrz.bundle.js
一.介绍说明主要特点: ①在前端压缩好要上传的图片可以更快的发送给后端,因此也特别适合在移动设备上使用. ②兼容IOS/Android,修复了IOS/Android某些版本已知的BUG. ③按需加载文 ...
- C#高级编程笔记之第三章:对象和类型
类和结构的区别 类成员 匿名类型 结构 弱引用 部分类 Object类,其他类都从该类派生而来 扩展方法 3.2 类和结构 类与结构的区别是它们在内存中的存储方式.访问方式(类似存储在堆上的引用类型, ...
- C++ 模板基础
我们学习使用C++,肯定都要了解模板这个概念.就我自己的理解,模板其实就是为复用而生,模板就是实现代码复用机制的一种工具,它可以实现类型参数化,即把类型定义为参数:进而实现了真正的代码可重用性.模版可 ...
- 如何高效的编写与同步博客 (.NET Core 小工具实现)
一.前言 写博客,可以带给我们很多好处,比如可以让我们结识更多志同道合的人:在写博客过程中去查技术资料或者实践可以让我们对知识的掌握和理解更加深刻:通过博客分享能帮助他人收获分享的快乐等等.写博客真的 ...
- PAT1028:List Sorting
1028. List Sorting (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Excel ca ...
- mysql 创建用户
以管理员方式打开cmd命令提示符进入MySql的Bin目录下 一.以管理员身份登录mysql 密码不隐藏的登录方式:mysql -u root -p 123456 密码隐藏的登录方式:mysql -u ...
- SSM-SpringMVC-14:SpringMVC中大话注解式开发基础--呕心沥血版
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 注解的基础我不再多啰嗦,百度一搜很多,很详细啊,我就讲一下SpringMVC中的注解入门 通过注解的方式定义 ...
- DCGAN 论文简单解读
DCGAN的全称是Deep Convolution Generative Adversarial Networks(深度卷积生成对抗网络).是2014年Ian J.Goodfellow 的那篇开创性的 ...
- Android的JDK、SDK、Eclipse的理解
今天看了这方面的内容,感觉学到了一些东西: 首先,jdk是用来处理Java语言的, sdk是用来处理Java语言和硬件之间的关联的, eclipse是用来编写Java语言的, 通过对这方面的理解,加深 ...