• Nginx服务配置及相关模块


    目录

    一.Nginx配置文件

    1.1.主配置文件解析

    1.2.子配置文件启用

    二.子配置文件使用

    2.1.创建虚拟主机实验

    2.2.基于端口虚拟主机实验

    三.Nginx模块

    3.1.access模块

    3.2.自定义错误页面

    3.3.状态页开启


    一.Nginx配置文件

    1.1.主配置文件解析

    yum安装主配置文件位置:/etc/nginx/nginx.conf

    ②编译安装主配置文件位置:/编译安装路径/conf/nginx.conf

       nginx主配置文件:nginx.conf详解
    worker_processes  1;
    #全局配置本机可运行多少个master进程,根据本机cpu数量设置数量,可设置为auto按cpu核数自动化调整
    events {
    #events事件处理模块
        worker_connections  1024;
    #每个worker子进程可以处理多少个请求即可以打开多少个文件
    }
    http {
    #http模块,web服务器与网页有关配置写在此模块中
        include       mime.types;
    #mime.type中规定了那些文件是给用户查看的,若文件类型不在此文件中则是下载文件。
        default_type  application/octet-stream;
    #默认支持文件类型
        sendfile        on;
    #开启文件传输
        keepalive_timeout  65;
    #长连接超时时间,单位为秒
        server {
    #http模块中的server模块,主要配置监听端口,虚拟主机,dns域名等
            listen       80;
    #监听所有ip的80端口
            server_name  localhost;
    #主机名为本机,可虚拟域名
        location / {
    #http模块下的location模块
                root   html;
    #此location的根目录位置
                index  index.html index.htm;
    #配置默认寻找文件,先寻找index.html若无此文件则找index.htm
            }
            error_page   500 502 503 504  /50x.html;
    #500、502等错误界面跳转访问指定的/下的50x.html页面
            location = /50x.html {
    #定义此location为精确匹配,必须是50x.html才能访问此页面
                root   html;
            }
    }
    }

    1.2.子配置文件启用

    #启用子配置文件
    #在主配置文件http模块的末尾添加。
    include   /apps/nginx/conf.d/*.conf;
    #注意/apps/nginx/conf.d此文件夹需要存在,若不存在需要先建立好,*.conf表示在此文件夹下所有以.conf结尾的都是子配置文件。
    systemctl restart nginx.service
    #重启服务后即可

    二.子配置文件使用

    2.1.创建虚拟主机实验

    ①创建子配置文件,指定虚拟主机域名为www.kgc.com,指定此虚拟主机根目录为/data/nginx/pc,网页显示内容为“当时只道是寻常”。

        systemctl stop firewalld
        setenforce 0
        #关闭防火墙和selinux
        mkdir -pv /data/nginx/pc
        #递归创建/data/nginx/pc文件夹并显示过程
        echo "当时只道是寻常">/data/nginx/pc/index.html
        #创建index.html文件内容为“当时只道是寻常”
        cd /apps/nginx/conf.d
        #进入指定的子配置文件路径
        vim  test.conf
        #创建子配置文件,文件内容如下:
        server{
        listen 80;
        #监听所有主机的80端口
        server_name www.kgc.com;
        #创建虚拟主机域名为www.kgc.com
        root  /data/nginx/pc;
        #指定此server模块的根目录为/data/nginx/pc,注意指定的目录要存在
        }

    ②配置修改完成后使用命令测试配置文件修改是否有错误,首先将nginx脚本拷贝到/usr/sbin下即可变成外部命令使用,然后使用nginx  -t检查所有配置文件。

    1. [root@wngying nginx]#cd sbin/ #进入nginx脚本存在的文件夹
    2. [root@wngying sbin]#ls
    3. nginx #将nginx脚本拷贝到/usr/sbin下成为外部命令
    4. [root@wngying sbin]#cp nginx /usr/sbin/
    5. cp: overwrite 'usr/sbin/nginx'? y #此提示为本机原本拷贝过一次,第一次操作无提示
    6. [root@wngying sbin]#nginx -t #nginx -t 检查配置文件是否正常 ok和successful是正常提示
    7. nginx: the configuration file /apps/nginx/conf/nginx.conf syntax ls ok
    8. nginx: configuration file /apps/nginx/conf/nginx.conf test ls successful
    9. [root@wngying sbin]#

    ③配置文件检查正常后重新加载配置文件:使用  nginx  -s reload热加载配置文件。

    ④在测试机的/etc/hosts文件下添加nginx服务器的ip和域名。注意不添加此步骤无法访问域名!!

        systemctl stop firewalld
        setenforce 0
        #关闭防火墙和selinu
        vim /etc/hosts
        #编辑hosts文件,添加内容如下
        192.168.47.102  www.kgc.com
        #注意不添加此步骤无法访问域名

    ⑤使用curl测试访问www.kgc.com内容是否为自己的定制的内容。

    1. [root@wangying ~]#curl www.kgc.com
    2. 当时只道是寻常
    3. [root@wangying ~]#curl www.kgc.com
    4. 当时只道是寻常 #内容为设置的index.html文件内容

    2.2.基于端口虚拟主机实验

    ①修改子配置文件中的80端口为8080。

        server{
        listen 8800;
        #监听所有主机的8080端口
        server_name www.kgc.com;
        #创建虚拟主机域名为www.kgc.com
        root  /data/nginx/pc;
        #指定此server模块的根目录为/data/nginx/pc,注意指定的目录要存在
        }

    ②修改完成后检测配置文件然后重新加载。

        nginx -t                        #检测配置文件修改是否正确
        nginx -s reload            #重新加载配置文件

    ③另外一台机器测试curl www.kgc.com:8080。

    1. [root@wangying ~]#curl www.kgc.com:8080
    2. 当时只道是寻常

    三.Nginx模块

    3.1.access模块

    ①access模块默认是安装的无论是yum安装还是编译安装,不安装此模块需要在编译安装时添加--without-http_access_module。

    ②access模块有allow和deny俩个动作,allow是允许那些ip访问,deny是拒绝那些ip。默认是黑名单,拒绝谁才不能通过,不拒绝全部允许通过。

    ③设置拒绝192.168.47.101;

        server {
                listen 80;
                server_name www.kgc.com;
                deny 192.168.47.101/24;
        #拒绝192.168.47.102地址访问此网页
                root /data/nginx/pc/;
         
        }

    ④在其他2台pc的/etc/hosts文件中添加 192.168.47.102 www.kgc.com,然后访问。

    3.2.自定义错误页面

    ① 子配置文件中添加配置如果报错404则跳转到/data/nginx/html/pc/40x.html

        server {
           listen 80;
           server_name www.kgc.com;
           error_page 404 /40x.html;
        #配置报错404则跳转到/根目录下的40x.html文件中
           location / {
                root /data/nginx/html/pc;
         }
        }

    ②在 /data/nginx/html/pc目录下创建40x.html文件内容为“此页面为报错404跳转到此”。

    ③在机器上访问一个www.kgc.com/afasf不存在的文件则跳转到了指定的错误显示页面。

    1. [root@wangying ~]#curl www.kgc.com/afsdsafd
    2. 此页面为报错404跳转到此

    3.3.状态页开启

        server {
           listen 80;
           server_name www.kgc.com;
           location /status {
           root /data/nginx/html/pc;
           stub_status;
        #开启状态页
         }
        }

    1. [root@wangying ~]#curl www.kgc.com/status
    2. Active connections: 1
    3. server accepts handled requests
    4. 20 20 20
    5. Reading: 0 Writing: 1 Waiting: 0
    6. [root@wangying ~]#
  • 相关阅读:
    前馈神经网络(FFNN)和多层感知机(MLP)
    期货开户客户出入金是什么时间?
    恭喜磊哥喜提n+1
    GIS、多场景加载、溶解特效等功能首次公开,全网免费调用!
    第五章:数组、排序和查找
    Hydro-bzoj,你用过吗?
    【前端】NodeJS:包管理工具
    ABTest如何计算最小样本量-工具篇
    Go语言学习笔记—xorm
    leetcode之打家劫舍
  • 原文地址:https://blog.csdn.net/Personal_Liberty/article/details/133012404