一、nginx 之 概述

Nginx 是一款高性能的 Web 服务器软件。可以作为反向代理、负载均衡与缓存服务器使用。Nginx 是为高并发网站的应用场景而设计的。在国内如百度、淘宝、腾讯、新浪、网易等网站都开始使用Nginx 来满足一些高并发访问的需求。

1.linux 安装 nginx

1.1 下载 nginx

[root@localhost opt]# wget https://nginx.org/download/nginx-1.14.0.tar.gz

1.2 解压

[root@localhost opt]# tar xvf nginx-1.14.0.tar.gz

1.3 源码安装

安装前,先安装 nginx 依赖包

pcre- deve l 为Nginx 模块(如rewrit e )提供正则表达式库
zl ib -dev el 为Nginx 模块(如gzip ) 提供数据压缩用的函数库
openss l 

安装nginx

[root@localhost opt]# cd nginx-1.14.0/
[root@localhost nginx-1.14.0]# ./configure \
> --prefix=/opt/nginx \
> --with-http_ssl_module

[root@localhost nginx-1.14.0]# make && make install

2. nginx 基本操作

  • nginx 启动停止
[root@localhost opt]# cd nginx/sbin      进行编译后的nginx 执行目录下
[root@localhost sbin]# ./nginx   启动 nginx

查看 nginx 是否启动成功
[root@localhost sbin]# ps aux|grep nginx
root       8069  0.0  0.0  45924  1124 ?        Ss   15:11   0:00 nginx: master process ./nginx
nobody     8070  0.0  0.0  48456  1976 ?        S    15:11   0:00 nginx: worker process
root       8092  0.0  0.0 112720   976 pts/0    R+   15:12   0:00 grep --color=auto nginx

停止 nginx
[root@localhost sbin]# ./nginx  -s stop
  • 查看nginx 端口是否被占用
    nginx 默认占用 80 端口
[root@localhost sbin]# netstat -tlnp
  • 测试
    注意关闭防火墙或者对 80 端口放行


    一、nginx 之 概述_第1张图片
    测试 nginx
  • 添加软连接,在任意目录下执行 nginx 程序
[root@localhost sbin]# ln -s ./nginx /usr/local/sbin/nginx

3.nginx 基本配置 (nginx.conf 配置文件)

3.1 配置文件结构

配置文件结构是由 5 个块组成 如下图:


一、nginx 之 概述_第2张图片
配置文件5部分组成

配置文件默认配置内容:

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
  }
}
  • worker_processes 指令
    配置 nginx 工作进程数,一般为cpu 总核心数或者 总核心数的2倍

  • worker_connections 指令
    配置一个工作进程并发处理的连接数

  • include 指令
    引入配置文件 路径为nginx.conf 配置文件的相对路径。 eg:/opt/nginx/conf/mime.types

  • default_type 指令
    设置默认文件类型

  • sendfile 指令
    默认的值为 on ,表示开启高效文件传输

  • keepalive_timeout 指令
    设置长连接超时时间,秒为单位

  • listen 指令
    设置监听端口,默认为 80

  • server_name 指令
    设置主机域名

  • root 指令
    设置主机站点的根目录地址

  • index 指令
    设置默认索引文件

  • error_page 指令
    设置自定义错误页面

3.2 访问控制

是对资源的访问权的控制

  • 访问控制指令(allow deny)
    allow : 允许访问权限
    deny :禁止访问权限
    以上两个指令值可以跟 ip地址 、 ip 段 、 all

注意:allow 、 deny 两种指令单个、或者混合、还是单个多次、混合多次出现时,优先级为里层块出现的优先级高于外层块出现的指令 或者 在同一块出现,后出现的指令可以覆盖前出现的指令。

  • 访问控制指令窄化限定 配置使用 location 指令
    location 指令前缀:


    一、nginx 之 概述_第3张图片
    location 指令前缀

例子:

http {
    ...
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
            # deny all; 拒绝请求,返回403
            # allow all; 允许请求
        }

        location /abc {
            deny all;
        }

        location ~ /.+\.jsp$ {
            proxy_pass http://location:9090;
        }

        # 匹配所有/test路径下的jsp文件
        location ~ /test/.+\.jsp$ {
            proxy_pass http://localhost:8080;
        }

        # 定义各类错误页
        error_page 404  /404.html

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # @类似于变量定义
        # error_page 403 http://blog.csdn.net; #这种定义不允许,需求利用@定义临时变量来实现
        error_page 403 @page403;
        location @page403 {
            proxy_pass http://blog.csdn.net;
        } 
    }
}

4.虚拟主机

4.1 基于端口配置虚拟主机

#配置端口8001 端口号的虚拟主机
server {
listen 8001;
server name 192.168.1.188;
root html/html8001;
index index.html index.htm;
)
#配置端口8002 端口号的虚拟主机
server {
 listen 8002;
 server name 192.168.1.188;
 root html/html8002;
 index index . html index. htm;
 )

4.2 基于ip配置虚拟主机

#配置ip为192.168.1.189 的虚拟主机
server {
listen 80;
server name 192.168.1.189;
root html/html8001;
index index.html index.htm;
)
#配置ip为192.168.1.190 的虚拟主机
server {
 listen 80;
 server name 192.168.1.190;
 root html/html8002;
 index index . html index. htm;
 )

4.3 基于域名配置虚拟主机

#配置域名为www.cqzhangjian.cn 的虚拟主机
server {
listen 80;
server name www.cqzhangjian.cn;
root html/cqzhangjian.cn;
index index.html index.htm;
)
#配置域名为cqzhangjian.cn 的虚拟主机
server {
 listen 80;
 server name cqzhangjian.cn;
 root html/cqzhangjian.cn;
 index index . html index. htm;
 )

4.4 设置目录列表

Nginx 提供的autoindex on 开启目录列表
Nginx 还提供的autoindex_ exac t size 指令设置精准
显示文件大小还是大概显示文件大小;通过autoindex_localtime 指令设置文件最后一次修
改时间的格式。默认情况下, autoindex
exact_size 指令和autoind e x_localtime 指令的值分
别为on 和off

4.5 虚拟机主机配置文件引入

1.在 /usr / local/nginx/ conf 路径下创建vhost 目录,用于保存Nginx 服务器的虚拟主机配置文件。
2.为了便于管理,推荐使用站点域名为配置文件命名。例如,创建域名为www.cqzhangjian.cn的配置文件。
3.第1 种方式: 且在个文件引人 include vhost/www.cqzhangjian.cn;第2 种方式:利用通配符include vhost /*. conf;

你可能感兴趣的:(一、nginx 之 概述)