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.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/
注:‘=’号后面是自己安装包的绝对路径,和配置文件路径。
[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
执行完编译后:
[root@nginx nginx-1.14.0]# make && make install
注:nginx的所有模块必须在编译的时候添加,不能再运行的时候动态加载。
6. 优化nginx程序的执行路径
[root@nginx nginx-1.14.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ [root@nginx nginx-1.14.0]# nginx -t
如果出现以下问题:
需要创建此目录:
[root@nginx nginx-1.14.0]# 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: - 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
[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 -9 pid1 [root@nginx ~]#kill -9 pid2
3) 如果还是不行,查看日志信息解决。
9. 启动nginx并访问测试
注:后续继续更新nginx优化及反向代理功能!
上一篇: JDBC的连接mySql的基本知识
下一篇: 史上的虎牢关之战跟三国演义中的有什么区别
推荐阅读
-
安装nginx+php5+mysql 的web服务器
-
一份超详细的requireJS介绍及应用
-
mycat安装、mysql主从、监控详细操作步骤
-
【Python】pip安装numpy安装到一半失败解决办法
-
求各位大神解决一下Apache安装问题
-
Docker安装nginx
-
GibbsCAM 2017 v12安装破解详细图文教程(附破解下载)
-
windows环境开发yii上传程序至linux服务器时程序运行结果不一致的问题 windows最新版 windows10安装程序 windows会员
-
Linux下安装Oracle的一点个人心得
-
关于在 win2000 下安装 mysql 的一些问题!_PHP教程