RedHat 7 编译安装Nginx 1.12并配置WEB站点

一、安装环境

1、操作系统版本:Red Hat Enterprise Linux Server release 7.2 (Maipo)

2、Nginx版本:nginx-1.12.2.tar.gz

3、pcre版本:pcre-8.42.tar.gz

4、zlib版本:zlib-1.2.11.tar.gz

5、openssl版本:openssl-1.0.2l.tar.gz

二、安装说明

官网上关于Nginx的依赖包说明如下:

三、安装过程

1、安装gcc:yum install gcc-c++ -y

2、编译安装pcre

[[email protected] ~]# tar -zxf pcre-8.42.tar.gz
[[email protected] ~]# cd pcre-8.42
[[email protected] pcre-8.42]# ./configure
[[email protected] pcre-8.42]# make
[[email protected] pcre-8.42]# make install

3、编译安装zlib:其实系统中已带有旧版zlib-1.2.7的包,那要不要把它先卸载呢?官网上的说明示例并没提到要先卸载旧版的zlib,而编译安装的make install过程我们可以看到它其实是把原有的文件删掉,再拷贝新版的文件到原路径,也就是会替换掉旧版的文件,因此我觉得不用先卸掉旧版。

[[email protected] ~]# tar -zxf zlib-1.2.11.tar.gz
[[email protected] ~]# cd zlib-1.2.11
[[email protected] zlib-1.2.11]# ./configure
[[email protected] zlib-1.2.11]# make
[[email protected] zlib-1.2.11]# make install

4、编译安装openssl:其实系统中已带有openssl-1.0.1e的包,但是如果不编译新版的openssl的话,会导致编译nginx时提示找不到openssl。官网给的编译openssl的示例是使用“ ./Configure darwin64-x86_64-cc --prefix=/usr”选项,但我编译安装时报错“cc: error: x86_64: No such file or directory”,最后用” ./config --prefix=/usr --shared“发现也可以。

[[email protected] ~]# tar -zxf openssl-1.0.2l.tar.gz
[[email protected] ~]# cd openssl-1.0.2l
[[email protected] openssl-1.0.2l]# ./config --prefix=/usr --shared
[[email protected] openssl-1.0.2l]# make
[[email protected] openssl-1.0.2l]# make install

5、创建nginx用户,否则安装完nginx后启动会报错[emerg] 35240#0: getpwnam("nginx") failed

6、创建编译参数中用到的目录mkdir -p /var/tmp/nginx/client/,否则安装完nginx后启动会报该目录不存在

7、编译安装nginx

[[email protected] ~]# tar -zxf nginx-1.12.2.tar.gz
[[email protected] ~]# cd nginx-1.12.2
[[email protected] nginx-1.12.2]# ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx 
--conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log
--pid-path=/var/run/nginx/nginx.pid  --lock-path=/var/lock/nginx.lock  --user=nginx  --group=nginx --with-http_ssl_module 
--with-http_stub_status_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/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi
--http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre

[[email protected] nginx-1.12.2]# make

[[email protected] nginx-1.12.2]# make install

8、使用命令/usr/local/nginx/sbin/nginx -t检查配置文件语法,并用命令/usr/local/nginx/sbin/nginx启动nginx

9、使用/usr/local/nginx/sbin/nginx -V查看版本

10、使用浏览器访问,成功显示默认站点

四、测试Nginx启动脚本

1、在nginx目录下创建sh子目录,用来存放启动脚本

[email protected] ~]# mkdir /usr/local/nginx/sh
[[email protected] ~]# vi /usr/local/nginx/sh/nginx
[[email protected] ~]# chmod +x /usr/local/nginx/sh/nginx
[[email protected] ~]# cat /usr/local/nginx/sh/nginx
#!/bin/bash
NG="/usr/local/nginx/sbin/nginx"
PIDF="/var/run/nginx/nginx.pid"
case "$1" in
  start)
    $NG -t &> /dev/null
    if [ $? -eq 0 ];then
      $NG
      echo "Nginx service start success."
    else
      mkdir /var/run/nginx  
      $NG -t &> /dev/null
      if [ $? -eq 0 ];then
        $NG
        echo "Nginx service start success."
      else
        $NG -t
      fi
    fi
    ;;
  stop)
    kill -s QUIT `cat $PIDF`
    echo "Nginx service stop success." 
    ;;
  restart)
    cat $PIDF &> /dev/null
    if [ $? -eq 0 ];then
    $0 stop
    fi
    $0 start
    ;;
  reload)
    $NG -t &> /dev/null
    if [ $? -eq 0 ];then
      kill -s HUP `cat $PIDF`
      echo "reload Nginx config success."
    else
      $NG -t
    fi
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|reload}"
    exit 
esac

2、将启动脚本做软连接到系统环境变量路径/usr/local/sbin,这样执行脚本可以跟使用命令一样方便

[[email protected] ~]# ln -s /usr/local/nginx/sh/nginx /usr/local/sbin/
[[email protected] ~]# ll /usr/local/sbin/nginx
lrwxrwxrwx 1 root root 25 Apr  9 20:58 /usr/local/sbin/nginx -> /usr/local/nginx/sh/nginx

3、测试脚本,功能正常

4、将脚本加入/etc/rc.d/rc.local实现nginx的开机启动

五、配置WEB站点

Nginx配置文件简介:Nginx配置文件主要分成四部分:main(全局设置)、server(主机设置)、upstream(负载均衡服务器设置)和 location(URL匹配特定位置的设置)。main部分设置的指令将影响其他所有设置;server部分的指令主要用于指定主机和端口;upstream指令主要用于负载均衡,设置一系列的后端服务器;location部分用于匹配网页位置。这四者之间的关系式:server继承main,location继承server,upstream既不会继承其他设置也不会被继承。在这四个部分当中,每个部分都包含若干指令,这些指令主要包含Nginx的主模块指令、事件模块指令、HTTP核心模块指令,同时每个部分还可以使用其他HTTP模块指令,例如Http SSL模块、HttpGzip Static模块和Http Addition模块等。

配置WEB站点主要用到server和location部分。

1、在/usr/local/nginx/conf/nginx.conf中新增一个虚拟主机,并在/usr/local/nginx/www下创建一个主页文件index.html

2、reload一下 nginx,并做hosts解析

3、测试访问虚拟主机www.jianlong.com,访问正常

4、为上述虚拟主机设置别名,然后reload 一下nginx,并为别名www.jl.com做hosts解析

5、使用别名测试访问,访问正常

6、配置重定向跳转,再新增一个虚拟主机,reload一下nginx,做好hosts解析后访问jianlong.com会自动跳转到www.jianlong.com,配置如下:

效果如下(请点击查看gif图)

http://i2.51cto.com/images/blog/201804/20/549cefe66943fd262e408b91503bf84b.gif

原文地址:http://blog.51cto.com/jiangjianlong/2105585

时间: 2024-12-09 20:52:55

RedHat 7 编译安装Nginx 1.12并配置WEB站点的相关文章

编译安装nginx及简单优化配置

一.背景 使用源码包安装lnmp架构及简单的优化配置 二.实验环境 rhel6.5 三.安装过程 1.nginx(提前装好gcc等编译器) (1) 下载源码包  http://nginx.org/ (2) tar -zxf nginx-1.8.1.tar.gz (3) cd nginx-1.8.1 vim auto/cc/gcc 修改第179行 (将本行注释,意为取消debug模式,) (4) ./configure --prefix=/usr/local/lnmp/nginx \ --with

编译安装nginx 1.12

高版本nginx可支持四层代理,即tcp代理 官网下载解压后: apt install libssl-dev ./configure  --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/

centos7下编译安装nginx并实现日志轮替

centos7编译安装nginx: 首先确保系统上存在编译安装使用的必要工具运行:  # yum groupinstall "development tools" "server platform development" 1 下载PCRE version 4.4 - 8.40 (ngx_http_rewrite_module模块需要)    # wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/p

开发人员学Linux(5):CentOS7编译安装Nginx并搭建Tomcat负载均衡环境

1.前言在上一篇讲述了JMeter的使用,在本篇就可以应用得上了.本篇将讲述如何编译安装Nginx并利用前面的介绍搭建一个负载均衡测试环境.2.软件准备Nginx-1.12.0,下载地址:https://nginx.org/download/nginx-1.12.0.tar.gzTomcat8(本系列已介绍过如何下载和安装)JMeter(本系列已介绍过如何下载和使用)注:VirtualBox宿主机IP为"192.168.60.16,虚拟机IP为:192.168.60.198,虚拟机通过桥接方式接

编译安装php5.6.12

一.系统环境说明 本次实验基于CentOS6.8_x64 (6.x均可),编译安装php5.6.12 包含以下四个扩展模块(包): libmcrypt-2.5.8.tar.gz ;php-redis.tar.gz;jpegsrc.v8d.tar.gz ;zendopcache-7.0.5.tar.gz 可自行到对应官方网站 下载最新软件包,本例软件包版本如上所列,如需要本例软件压缩包php5.6.12.tar.gz请到以下百度网盘地址中获取 ,压缩包中包含以上安装包,并附自动安装脚本和php-f

Centos7 编译安装 Nginx、MariaDB、PHP

前言 本文主要大致介绍CentOS 7下编译安装Nginx.MariaDB.PHP.面向有Linux基础且爱好钻研的朋友.技艺不精,疏漏再所难免,还望指正. 环境简介: 系统: CentOS 7,最小化安装 IP: 192.168.170.128 Nginx: 1.6.1 MariaDB: 5.5.39 PHP: 5.5.16 1.准备工作 1.1.系统硬件准备 尽管Linux能最大化发挥硬件资源,但RHEL/CentOS随着版本增加对最低硬件的配置也越来越高[1].RHEL7/CentOS最低

在CentOS上编译安装Nginx+实验环境搭建+测试

0.说明 Nginx作为一款优秀的Web Server软件同时也是一款优秀的负载均衡或前端反向代理.缓存服务软件,很有必要搭建实验环境来对其进行学习. 1.实验环境 本次实验的测试环境使用的宿主机操作系统为Windows 7,在Vmware虚拟机安装CentOS 6.5,说明如下: 宿主机操作系统Windows 7 虚拟机安装的操作系统CentOS 6.5 虚拟机操作系统上网方式NAT 而当使用NAT的方式进行上网时虚拟机.宿主机之间的网络连接关系可如下所示: 关于为什么网络拓扑结构是这样的,这

Centos7 编译安装 Nginx PHP Mariadb Memcached 扩展 ZendOpcache扩展 (实测 笔记 Centos 7.0 + Mariadb 10.1.9 + Nginx 1.9.9 + PHP 7.0.0)

环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1503-01.iso 安装步骤: 1.准备 1.1 设置静态IP.DNS地址(网络设备名称有可能不一样,这里是eno16780032,如使用DHCP获取动态IP,可忽略) [[email protected] ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno16780032 找到BOOTPROTO,并且修

centos 6.3 编译安装 nginx +mysql + php

一篇文章是对另一篇文章的整理,作为记录收藏 1,配置防火墙,开启80端口.3306端口 配置iptables,开启80端口.3306端口 vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许80端口通过防火墙 -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #允许3306端口