11.Nginx基础模块

Posted 柯正

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11.Nginx基础模块相关的知识,希望对你有一定的参考价值。

安装nginx

1.修改nginx的官方源

[root@web01 ~]# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

2.安装ngixn

[root@web01 ~]# yum install -y nginx

3.启动nginx,并加入开机自启

[root@web01 ~]# nginx
[root@web01 ~]# nginx
[root@web01 ~]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

4.检测端口和进程

[root@web01 ~]# ps -ef|grep [n]ginx
[root@web01 ~]# netstat -lntup|grep 80

5.部署新网站

[root@web01 ~]# vim /etc/nginx/nginx.conf
server {
listen 80;
server_name www.lol.com;
location / {
root /cole/lol;
index inde.html;
}
}

# 创建站点目录
[root@web01 ~]# mkdir -p /cole/lol
# 把lol前端的代码复制过来,粘贴到index.html里面
[root@web01 ~]# vim /cole/lol/index.html

6.检查语法重新加载nginx

# 1.检测语法
[root@web01 ~]# nginx -t
# 2.重新加载
[root@web01 ~]# systemctl reload nginx

7.给web01做域名解析

技术图片

技术图片

8.给centos和Mac上做域名解析(哪台虚拟机需要就做)

[root@web01 ~]# vim /etc/hosts
10.0.0.8 www.lol.com

9.访问网站,这里加了解决乱码的模块

技术图片

nginx常用基础模块

需要了解

技术图片

技术图片

ctrl f 可以查找

Syntax: 语法

Default: 系统默认

Context: 环境(放哪)

CRM学习法

C:copy (复制)

R:run (运行)

M:modifu (修改)

ngx_http_index_module

############## index模块

Syntax: index file ...;              # 语法
Default: index index.html;           # 系统默认
Context: http, server, location      # 环境(放哪)

# 例:
location = / {
    index index.html;
}

ngx_http_autoindex_module

################ 目录索引模块
# 1. ngx_http_autoindex_module模块处理以斜杠字符(‘/‘)结尾的请求,并生成目录列表。
# 2. 当ngx_http_index_module模块找不到索引文件时,通常会将请求传递给ngx_http_autoindex_module模块。

# autoindex 系统默认是off,需要改成on。然后注释掉index模块,就可以目录索引了。


Syntax: autoindex on | off;        
Default: autoindex off;
Context: http, server, location

# autoindex常用参数
autoindex_exact_size off;
# 默认为on, 显示出文件的确切大小,单位是bytes。
# 修改为off,显示出文件的大概大小,单位是kB或者MB或者GB。
 
autoindex_localtime on;
# 默认为off,显示的文件时间为GMT时间。
# 修改为on, 显示的文件时间为文件的服务器时间。
 
charset utf-8,gbk;
# 默认中文目录乱码,添加上解决乱码。

# (不常用) autoindex_format html | xml | json | jsonp;
# 设置目录列表格式

开启autoindex模块

# 开启autoindex模块
[root@web01 lol]# vim /etc/nginx/conf.d/www.lol.com.conf
server {
listen 80;
server_name www.lol.com;
access_log /var/log/nginx/lol_access.log main;
location / {
root /cole/lol;
autoindex on;
}
}


# 把/cole/lol里面的index.html名字修改成其他名字

技术图片

修改乱码,大小和时间

# 开启autoindex模块
[root@web01 lol]# vim /etc/nginx/conf.d/www.lol.com.conf
server {
        listen 80;
        server_name www.lol.com;
        access_log /var/log/nginx/lol_access.log main;
        charset utf-8,gbk;                                             # 修改乱码
        location / {
        root /cole/lol;
        autoindex on;                                                  # 开启目录索引
        autoindex_exact_size off;                                      # 文件大小以 k或者k以上显示
        autoindex_localtime on;                                        # 与跟系统同步时间
        autoindex_format html;                                         # 默认格式
        }
}

技术图片

可以让他默认访问域名是一个页面,域名下的download是一个目录索引

[root@web01 lol]# vim /etc/nginx/conf.d/www.lol.com.conf
server {
        listen 80;
        server_name www.lol.com;
        access_log /var/log/nginx/lol_access.log main;
        charset utf-8,gbk;
        location / {
        root /cole/lol;
        index index.html;
        }
        location /download {
        alias  /opt/down;                              # 别名,使用绝对路径好找到目录
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
        autoindex_format html;
        }
  
}

访问域名

技术图片

域名下的download

技术图片

ngx_http_stub_status_module

################ Nginx监控状态模块
ngx_http_stub_status_module模块提供对基本状态信息的访问。
默认情况下不构建此模块,应使用--with-http_stub_status_module配置参数启

Syntax:	stub_status;
Default:	—
Context:	server, location

# 添加到之前location下面就可以,sercer内。
[root@web01 lol]# vim /etc/nginx/conf.d/www.lol.com.conf
        location  /zt {                                         # 随便取名字
        stub_status;
        }



# 检测
[root@web01 /cole/lol]# nginx -t 
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

技术图片

Active connections  # 当前活动的连接数                                1
accepts             # 当前的总连接数TCP                               147
handled             # 成功的连接数TCP                                 147
requests            # 总的http请求数                                  991

Reading             # 请求                                            0
Writing             # 响应                                            1
Waiting             # 等待的请求数,开启了keepalive                     0

# 注意, 一次TCP的连接,可以发起多次http的请求, 如下参数可配置进行验证
# 在nginx的默认配置里面
keepalive_timeout  0;   # 类似于关闭长连接
keepalive_timeout  65;  # 65s没有活动则断开连接

http_auth_basic_module

############# 基于用户登入认证模块
ngx_http_auth_basic_module模块允许通过使用“http基本身份验证”协议验证用户名和密码来限制对资源的访问
可以使用“htpasswd”实用程序从Apache HTTP服务器分发版或“openssl passwd”命令生成。


Syntax:	auth_basic string | off;                    # 随便写点东西或者是off就可以开启
Default:	
auth_basic off;
Context:	http, server, location, limit_except
# 例:
location / {                
    auth_basic           "closed site";            
    auth_basic_user_file conf/htpasswd;
}

# 1. 引号里随便写就可以了,想锁哪个location就复制下面3行到某个站点下,用户密码文件需要配一个路径。
# 2. 然后配合htpasswd设置用户和密码(htpasswd命令在httpd服务的包下)。


# 例如,放在index.html的站点目录下
[root@web01 lol]# vim /etc/nginx/conf.d/www.lol.com.conf
server {
        listen 80;
        server_name www.lol.com;
        access_log /var/log/nginx/lol_access.log main;
        charset utf-8,gbk;
        location / {
        root /cole/lol;
        index index.html;
            auth_basic           "ok";
            auth_basic_user_file /opt/pass;
}

# 检查语法
[root@web01 /cole/lol]# nginx -t
# 设置密码文件
[root@web01 pass]# htpasswd -b -c /opt/pass qwe qwe123
Adding password for user qwe


# htpasswd:创建一个http协议支持的用户名和加密密码
-b:免交互,直接在命令行输入密码
-c:创建一个新文件,后面跟文件路径(将用户名和加密密码放入)
文件路径后面跟: user password



[root@web01 /cole/lol]# cat /opt/pass 
qwe:$apr1$Pnr3PeiB$r/w7O1877tPJh5vSogC/y/
# 如果你想多设置几个用户,那么就htpasswd这个命令多设置几个加密密码在其他目录,然后把加密密码和用户名追加到/opt/pass目录下,就可以多个用户登入了。(没啥用)

技术图片

几个模块完整的命令

[root@web01 lol]# vim /etc/nginx/conf.d/www.lol.com.conf
server {
        listen 80;
        server_name www.lol.com;
        access_log /var/log/nginx/lol_access.log main;
        charset utf-8,gbk;
        location / {
        root /cole/lol;
        index index.html;
            auth_basic           "ok";
            auth_basic_user_file /opt/pass;
        }
        location /download {
        alias  /opt/down;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
        autoindex_format html;
        }
        location /zt {
        stub_status;
        }
}

以上是关于11.Nginx基础模块的主要内容,如果未能解决你的问题,请参考以下文章

python之基础篇——模块与包

Yarn: 一个新的JavaScript模块管理器

如何使用模块化代码片段中的LeakCanary检测内存泄漏?

如何有条件地将 C 代码片段编译到我的 Perl 模块?

[vscode]--HTML代码片段(基础版,reactvuejquery)

CTS测试CtsWindowManagerDeviceTestCases模块的testShowWhenLockedImeActivityAndShowSoftInput测试fail项解决方法(代码片段