服务器之家:专注于服务器技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Nginx - Nginx 安装详细教程

Nginx 安装详细教程

2020-07-29 17:55拿着保温瓶的年轻人 Nginx

Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器,这篇文章主要介绍了Nginx 安装详细教程,需要的朋友可以参考下

1. Nginx简单介绍

Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。

更多关于Nginx介绍以及作用请自行百度

2.安装Nginx基础依赖包

?
1
[root@nginx ~]# yum install gcc gcc-c++ pcre-devel zlib-devel openssl-devel -y

3.下载相关的软件包3.1下载nginx稳定版

注:进入Nginx安装包下载地址复制您想要的版本链接,我这里以Nginx-1.14.0为例。

?
1
2
[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问题。

?
1
[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/)

?
1
[root@nginx src]# wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz

Nginx 安装详细教程

4.添加Nginx用户和组

?
1
2
[root@nginx ~]# groupadd www   
[root@nginx ~]# useradd -g www www -s /sbin/nologin

注:创建nginx运行用户www并加入到www组,不允许www用户直接登录系统。

5.解压Nginx源码包并进入解压目录,进行编译安装

?
1
2
3
4
5
6
[root@nginx src]# tar zxf nginx-1.14.0.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.0/

注:‘='号后面是自己安装包的绝对路径,和配置文件路径。

?
1
2
3
4
5
6
7
8
9
10
11
12
[root@nginx-master nginx-1.14.0]# ./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

Nginx 安装详细教程

执行完编译后:

Nginx 安装详细教程

?
1
[root@nginx nginx-1.14.0]# make && make install

注:Nginx的所有模块必须在编译的时候添加,不能再运行的时候动态加载。

6.优化Nginx程序的执行路径

?
1
2
[root@nginx nginx-1.14.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@nginx nginx-1.14.0]# nginx -t

如果出现以下问题:

Nginx 安装详细教程

需要创建此目录:

?
1
[root@nginx nginx-1.14.0]# mkdir -p /var/tmp/nginx/client

Nginx 安装详细教程

7.配置Nginx开机自启动等命令,方便我们管理Nginx

原始管理nginx的命令,不是很方便!

?
1
2
3
[root@nginx-master ~]# nginx  启动nginx
[root@nginx-master ~]# nginx -s reload 重启nginx
[root@nginx-master ~]# nginx -s stop 停止nginx

接下来设置常用的管理命令:

1) 创建开机启动命令脚本文件:

?
1
[root@nginx ~]# vim /etc/init.d/nginx

2) 在这个Nginx文件中插入一下启动脚本代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
-----------------------------------脚本如下 -----------------------------------
#! /bin/bash
# chkconfig: - 85 15
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 0
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}" >&2
exit 3
;;
esac
exit 0
?
1
[root@nginx ~]# cd /etc/init.d/

3) 设置所有人都有对这个启动脚本nginx文件的执行权限:

?
1
[root@nginx init.d]# chmod a+x nginx

4) 把nginx加入系统服务中:

?
1
[root@nginx init.d]# chkconfig --add nginx

5) 把服务设置为开机启动:

?
1
[root@nginx init.d]# chkconfig nginx on

注:reboot重启系统生效!

6) 重启后,就可以执行如下命令进行管理了

?
1
2
3
4
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启动端口。

?
1
[root@nginx ~]# yum remove httpd -y

2) 如果还是启动不来,再试试这个方法:杀死Nginx相关的进程之后,启动Nginx

?
1
2
3
[root@nginx ~]#ps -A | grep nginx          
[root@nginx ~]#kill -9 pid1           
[root@nginx ~]#kill -9 pid2

3) 如果还是不行,查看日志信息解决。

9.启动Nginx并访问测试

Nginx 安装详细教程

注:后续继续更新Nginx优化及反向代理功能!

总结

以上所述是小编给大家介绍的Nginx 安装详细教程,希望对大家有所帮助!

原文链接:https://www.cnblogs.com/l-hh/p/10594415.html

延伸 · 阅读

精彩推荐
  • Nginx利用nginx和腾讯云免费证书制作https的方法

    利用nginx和腾讯云免费证书制作https的方法

    这篇文章主要介绍了利用nginx和腾讯云免费证书制作https的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...

    dalaoyang5992019-12-30
  • NginxNginx Rewrite使用场景及代码案例详解

    Nginx Rewrite使用场景及代码案例详解

    这篇文章主要介绍了Nginx Rewrite使用场景及代码案例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可...

    盗哥泡茶去了11862020-09-27
  • Nginxnginx ssl免密码重启教程详解

    nginx ssl免密码重启教程详解

    这篇文章给大家介绍了nginx 如何启动以及nginx ssl 免密码重启 的方法,非常不错,具有参考借鉴价值,需要的朋友参考下吧 ...

    mrr4272019-11-19
  • NginxNginx location 和 proxy_pass路径配置问题小结

    Nginx location 和 proxy_pass路径配置问题小结

    本文是基于 location 的匹配末尾是否配置 / 和 proxy_pass 末尾是否配置 / ,进行测试,完全还原了整个测试过程,本文给大家介绍Nginx location 基本配置及相关配...

    自由早晚乱余生18742021-09-24
  • Nginx如何优化Nginx的处理性能

    如何优化Nginx的处理性能

    Nginx是一个很强大的高性能Web和反向代理服务,它具有很多非常优越的特性,在连接高并发的情况下,Nginx是Apache服务不错的替代品。其特点是占有内存少,...

    Dockone.io5142020-12-11
  • Nginxnginx rewrite 伪静态配置参数和使用例子

    nginx rewrite 伪静态配置参数和使用例子

    nginx下伪静态配置参数详细说明,使用nginx的朋友,nginx rewrite 伪静态配置参数和使用例子 附正则使用说明 ...

    服务器之家3102019-10-08
  • NginxNginx动静分离实现案例代码解析

    Nginx动静分离实现案例代码解析

    这篇文章主要介绍了Nginx动静分离实现案例代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参...

    盗哥泡茶去了3382020-09-27
  • Nginx通过Nginx规则重写URL去掉index.php不显示index.php

    通过Nginx规则重写URL去掉index.php不显示index.php

    Nginx不仅占用内存少,并发能力强,而且拓展功能丰富,可以通过安装模板来强化功能,也能通过规则优化,优化服务器并发处理能力,是建站的不二之选...

    Genius日记5872020-10-16