Linux系统中安装Nginx

  • Post author:
  • Post category:linux




提前预知

Nginx一般都是安装在Linux系统中(当然Windows系统中也可以装)

安装Ngnix依赖下面的环境:

pcre
openssl
zlib

我们先用命令检查一下相应的依赖存在不存在,存在就不需要再安装了:

rpm -qa|grep pcre

rpm -qa|grep openssl

rpm -qa|grep zlib

在这里插入图片描述


如果相关的依赖不存在可按需下载安装

,下载方式如下,

如果想省事可以直接通过下面的命令安装这些依赖

- 直接使用命令下载并安装:
- 分开下载:
	- yum install -y make zlib zlib-devel
	- yum install -y make gcc-c++ libtool
	- yum install -y openssl openssl-devel
- 合在一起下载:
	- yum install -y make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
	- make的作用是下载后直接编译



下载依赖地址


下载pcre

下载链接:

https://ftp.pcre.org/pub/pcre/


下载zlib

下载链接:

http://www.zlib.net/fossils/


下载openssl

下载链接:

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



下载Nginx

下载链接:

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

我下载的版本如下:

在这里插入图片描述



安装Nginx的准备

我将Nginx安装在

/usr/lib

目录下:

使用远程工具(xshell)将文件传输到

/usr/lib

目录下

注意:通过远程工具向Linux系统中拖拽文件时,需要修改Linux系统中文件夹的权限

- 往哪个文件夹中上传文件,就要修改那个文件夹的权限
- 此处修改/usr/lib文件夹的权限
- 修改权限需要使用管理员权限:su root
- 修改权限,在usr目录下执行命令:chmod 777  /usr/lib



安装nginx

安装在

/usr/lib

目录下:

- 执行命令进行解压:tar -zxvf  nginx-1.12.2.tar.gz
- 进入解压后的文件:cd nginx-1.12.2/
- 执行命令生成配置文件:./configure
- 然后执行命令进行编译和安装:make&&make install

- 装完ngnix之后,会自动在/usr/local文件夹中创建一个ngnix
-/usr/local/ngnix文件夹下,有一个sbin启动脚本
- 启动ngnix服务器,进入这个脚本文件夹/usr/local/ngnix/sbin,执行命令:./nginx
- 可以通过这个命令查看服务是否启动:ps -ef|grep ngnix
- 通过这个命令可以杀死进程(关闭Nginx服务器):kill -9 进程ID



访问ngnix服务器

访问方式:IP+端口号

- 在/usr/local/nginx/conf/文件夹下有一个nginx.conf文件,这个文件就是ngnix的配置文件

- 在这个文件里面设置ngnix监听的端口号:默认80端口

在这里插入图片描述

直接访问可能访问不到,因为Linux中有防火墙,下面对防火墙进行设置:
- 查看开放的端口号:firewall-cmd --list-all
- 设置开放端口号:sudo firewall-cmd --add-port=80/tcp --permanent
- 重启防火墙:firewall-cmd --reload

现在外部就可以访问80端口了

浏览器访问链接(我的虚拟机IP为192.168.1.101):

http://192.168.1.101/:80

  • 由于80是默认端口,也可以省略不写
  • 访问成功页面:

    在这里插入图片描述



Nginx常用命令

注意:使用Nginix的命令的时候要先进入带Ngnix可执行文件的目录中去(和windows是一样的,不配置环境变量就要到bin目录下去执行命令),如果按照我们上面的安装位置来说,这个目录就在:

/usr/local/nginx/sbin

  • 查看Ngnix版本号
命令:./nginx -v
  • 启动Nginx
命令:./nginx 
  • 关闭Nginx
命令:./nginx -s stop
  • 重新加载Nginx:修改配置文件之后,不重启直接重新加载时使用
命令:./nginx -s reload



Nginx配置文件(了解)

如果你把Nginx安装在/

usr/lib

目录下,配置文件的位置就在

/usr/local/nginx/conf/

文件夹下,名字为

nginx.conf

,这个文件就是nginx的配置文件

配置文件组成:

第一部分:全局块
	位置:从配置文件开始到events块之间的内容
第二部分:events块
	位置:events{    }
第三部分:http块
	位置:http{   }



全局块

主要包括配置运行Nginx服务器的用户组,允许生成的worker process数,进程PID存放路径,日志存放路径以及配置文件的引入等

#user  nobody;
worker_processes  1;	//配置Ngnix处理并发的数量,越大,处理并发数量越多

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;



events块

主要影响Nginx服务器与用户网络连接

比如:

worker connections 1024;

,支持最大连接数为1024

这部分在使用中应该灵活配置

events {
    worker_connections  1024;
}



http块

这部分是Nginx服务器中

配置最频繁的部分

,代理,缓存,日志定义,绝大多的数功能和第三方模块的配置都在这里。

  • 注意:http块也可以包括:

    http全局块



    server块

  • http全局块

    :配置的指令有,文件引入,MIME-TYPE定义,日志自定义,连接超时时间,单链接请求数上限等。

  • server块

    :和虚拟主机有密切关系,虚拟主机从用户角度看和一台独立的计算机是一样的,该技术就是为了节约互联网服务器硬件成本。
  • 每个http块可包含多个server块,每个server块就相当于一个虚拟主机
  • server块也可分为:

    全局server块

    ,以及同时包含多个

    location块

  • 全局server块

    :最常见的配置是虚拟主机的监听配置和本虚拟主机的名称或IP配置

  • location块

    :一个server块中可以配置多个location块
http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
}



版权声明:本文为weixin_45583303原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。