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基础模块的主要内容,如果未能解决你的问题,请参考以下文章
如何使用模块化代码片段中的LeakCanary检测内存泄漏?
[vscode]--HTML代码片段(基础版,reactvuejquery)
CTS测试CtsWindowManagerDeviceTestCases模块的testShowWhenLockedImeActivityAndShowSoftInput测试fail项解决方法(代码片段