0%

linux下安装Nginx

centos7 64位下安装nginx

  • 软件准备

    安装Nginx需要先安装下列软件包:

      GCC
      PCRE
      zlib
      openssl
      
    

    GCC和PCRE之前在centos7中使用源码安装apache2.4的时候已经安装过,这里用再安装;
    这里需要下载安装zlib后再安装nginx

    zlib官网下载地址:

    http://www.zlib.net/

    openssl官网下载地址

    https://www.openssl.org/source/

    nginx官网下载地址:

    http://nginx.org/en/download.html

  • 安装

    • 将zlib、OpenSSL、nginx源码包上传到centos7

      打开terminal执行:

        scp /Users/ux/Downloads/zlib-1.2.11.tar.gz ux@10.211.55.5:/home/ux/mysoft/
        
        scp /Users/ux/Downloads/nginx-1.12.2.tar.gz ux@10.211.55.5:/home/ux/mysoft/
        
      

      该命令将macOS系统中位于下载文件夹下的zlib-1.2.11.tar.gz和nginx-1.12.2.tar.gz 源码包上传到centos7的/home/ux/mysoft文件夹下。

    • 解压,编译,安装

        解压zlib:
        
            gzip -d zlib-1.2.11.tar.gz
            tar -xf zlib-1.2.11.tar
            
        编译安装zlib:
        
            cd zlib-1.2.11
            ./configure
            sudo make
            sudo make install
        
        解压OpenSSL
        
                gzip -d openssl-1.0.2n.tar.gz
                tar -xf openssl-1.0.2n.tar
        
        安装OpenSSL
        
                ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl
                sudo make
                sudo make install
        
        如果zlib正常安装,则继续安装nginx:
        
        解压nginx
        
            gzip -d nginx-1.12.2.tar.gz
            tar -xf nginx-1.12.2.tar
            
        编译安装nginx:
        
            cd nginx-1.12.2
            
            ./configure --prefix=/usr/local/nginx  --with-openssl=/home/ux/mysoft/openssl-1.0.2n --with-http_ssl_module
            
            注意:这一步要指定OpenSSL源码包的位置(是OpenSSL源码包位置,不是OpenSSL的安装位置!!),否则后续无法使用ssl模块。
            
            sudo make
            sudo make install
      
  • 启动测试

    在安装nginx时执行./configure可以看到。nginx默认安装到

      /usr/local/nginx/下
      
    

    启动nginx:

      cd /usr/local/nginx/sbin
      
      ./nginx
      
    

    快速停止nginx:

      ./nginx -s stop
      
    

    正常停止nginx:

      ./nginx -s quit
      
    

    置文件修改重装载命令:

      ./nginx -s reload
      
    

    关闭防火墙或者把80端口放行:

      systemctl stop firewalld.service             #停止firewall
      systemctl disable firewalld.service          #禁止firewall开机启动
    
      firewall-cmd --zone=public --add-port=80/tcp --permanent     #开启80端口,这样外部就能访问nginx的80端口了
    
      --zone #作用域
      --add-port=80/tcp #添加端口,格式为:端口/通讯协议
      --permanent #永久生效,没有此参数重启后失效
    

软件包百度云连接

  • 链接

      链接:https://pan.baidu.com/s/1qYyZvhM  密码:1xti 
    

参考文章

  • openssl

    http://blog.csdn.net/u012889638/article/details/49310123

    NGINX的参数

  • NGINX的参数

      nginx指定文件路径有两种方式root和alias,指令的使用方法和作用域:
      [root]
      语法:root path
      默认值:root html
      配置段:http、server、location、if
      [alias]
      语法:alias path
      配置段:location
      
      root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。
      
      ************************************************
      root的处理结果是:root路径+location路径
      alias的处理结果是:使用alias路径替换location路径
      ************************************************
      
      alias是一个目录别名的定义,root则是最上层目录的定义。
      
      ###这句话有待考证:
      还有一个重要的区别是alias后面必须要用“/”结束,否则会找不到文件的。。。
      而root则可有可无~~
    
root实例
    
    location ^~ /t/ {
          root /www/root/html/;
          location ^~ /t/ {
          root /www/root/html/;
    }
    
如果一个请求的URI是/t/a.html时,web服务器将会返回服务器上的/www/root/html/t/a.html的文件。

alias实例:


    location ^~ /t/ {
        alias /www/root/html/new_t/;
        location ^~ /t/ {
        alias /www/root/html/new_t/;
    }
    
    
如果一个请求的URI是/t/a.html时,web服务器将会返回服务器上的/www/root/html/new_t/a.html的文件。

注意这里是new_t,因为alias会把location后面配置的路径丢弃掉,把当前匹配到的目录指向到指定的目录。

注意:
1. 使用alias时,目录名后面一定要加"/"。
3. alias在使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。
4. alias只能位于location块中。(root可以不放在location中)

> http://www.nginx.cn/4658.html