nginx之location介绍
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx之location介绍相关的知识,希望对你有一定的参考价值。
参考技术A location中root指定的只是 相对路径 ,需要和路径结合起来映射地址,比如alias指定的是绝对路径,不会和location中的路径结合使用,而是直接使用地址映射到文件,比如
1、用前缀字符串(前缀location)匹配URL,并且选中并记住最长匹配前缀的location(注意:是在匹配的里面记住最长的那个)
2、按照正则表达式在配置文件中出现的顺序依次去匹配,当匹配到第一个以后立即停止,并使用与之相应的那个location。如果没有一个正则表达式匹配,则使用之前记住的那个前缀location。
以上,我们可以得出一个结论:优先使用正则表达式,如果没有匹配的正则表达式发现,则使用匹配的最长前缀字符串location
在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。
假设下面四种情况分别用 http://192.168.1.1/proxy/test.html 进行访问。
综合架构web服务之nginx详解
文章目录
- nginx 服务配置详细介绍
- 关于作者
- 前言
- 一、nginx web 入门简介
- 二、nginx 服务部署安装
- 2.1实验环境
- 2.2 YUM 安装
- 2.3 源码编译安装
- 2.4 nginx重要文件目录结构
- 2.5 虚拟主机介绍及配置
- 2.5.1利用nginx服务搭建一个网站(www)
- 2.5.2 location介绍、location 访问控制及 优雅404显示
- 2.5.3 利用nginx服务搭建一个多网站(www、 love、 blog)
- 2.5.4 企业中虚拟主机 访问方式
- 2.5.5 基于 用户访问 认证
- 2.5.6 利用nginx服务搭建网站文件共享服务器--index of
- 2.5.7 nginx 解决首页乱码问题
- 2.5.8 利用nginx服务搭配置文件别名功能
- 2.5.9 利用nginx状态模块功能对网站进行监控
- 2.5.10 nginx 日志功能配置及错误日志介绍
- 2.5.11 利用nginx实现页面跳转功能
- 2.5.12 nginx 防盗链配置介绍
- 2.5.13 部署搭建网站常见错误
- 三、nginx 性能优化
- 总结
nginx 服务配置详细介绍
关于作者
📢博客主页:https://blog.csdn.net/weixin_42313749
hello,大家好!我是黄昏,我们一起来学linux 云计算。如果喜欢博客,点个赞,关注下哟
📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
对linux 云计算|华为|华三|思科等数通网络技术感兴趣,可以私信博主,私信获取教程,一起交流技术。📢未来可期 让生命像一团热烈燃烧的火,直到死亡才能使它熄灭✨
前言
如果你听说或使用过Apache 软件,那么很快就会熟悉nginx 软件,与Apache 软件类似,它是一个 俄罗斯人 lgor Sysoev 开发的。最初用在俄罗斯的大型网站上,后来将代码公布,形成一个开源的、支撑高性能、高并发的 WWW 服务器和代理服务软件。
那么今天呢,小编就结合企业工作案列,对nginx 做一个详解的介绍。
如果有少许问题,如果少许错误,可以私信博主纠正、一起学习进步!
一、nginx web 入门简介
1.1 什么是nginx
- Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器
- Nginx是一款轻量级的Web 服务器/反向代理服 务器及电子邮件(IMAP/POP3)代理服务器
- nginx 可以运行在UNIX、Linux、BSD 、Mac OS X 、Solaris,以及windows 等操作系统中。随着nginx 在国内很多大型网站中的稳定高效运行,近两年来它 逐渐被越来越多的中小型网站所使用。当前流行的Nginx Web组合被称为 LNMP 或LEMP(linux nginx Mysql PHP ),其中E 取自 Nginx中得(enginex)
1.2 常见的网站服务
-
处理静态资源的服务:
apache软件: http://apache.org/
nginx软件: http://nginx.org -
处理动态资源的服务:
PHP: php.net 终端浏览器进行访问
Tomcat(java): 利用移动端查看网页 安卓-java
PYTHON: 开发难度比较低
1.3 nginx 网站服务特点
-
Nginx具有高并发,消耗内存少
-
具有多种功能(web、负载均衡–LVS、网站缓存–Squid)
-
实现通讯时使用 异步网络IO 模型:epoll模型
-
可以部署的平台多样化
-
对php可使用cgi方式和fastcgi方式
-
补充:
异步:(你发给我,我可以缓存,稍后在处理) 同步:(你发我一个,我就必须处理一个)
1.4 网站页面访问原理
-
将域名进行解析 www.hbs.com — 10.0.0.7
-
建立TCP的连接(四层协议)
- 10.0.0.7 目标端口 8080
-
请求报文: hosts: bbs.hbs.com
- 没有相同域名的server主机,会找满足端口要求的第一个主机
显示主机的网站页面
- 没有相同域名的server主机,会找满足端口要求的第一个主机
二、nginx 服务部署安装
2.1实验环境
系统版本 | 系统ip地址 |
---|---|
Centos 7.6 | 10.0.0.7 |
2.2 YUM 安装
-
使用官方yum源进行安装 安装的是最新版本 软件目录结构比较标准 (推荐)
-
配置官方nginx yum 源:
-
安装命令
# 配置nginx yum源 [root@web_server01~]# cat /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 [root@web_server01~]# #安装 nginx [root@web_server01~]# yum -y install nginx # 启动nginx 服务,检查安装正确性 [root@web_server01~]# systemctl start nginx [root@web_server01~]# systemctl enable nginx # 测试,打开本地浏览器,输入IP 地址可以访问即 安装成功
-
本地浏览器测试
-
清除 nginx 软件
#去除nginx 安装软件 [root@web_server01~]# yum erase nginx [root@web_server01~]# yum clean all # 目的是,为了演示源码编译安装。后面实验,均是源码安装
2.3 源码编译安装
-
源码安装步骤
1.# 下载源码安装包 [root@web_server01~]# wget http://nginx.org/download/nginx-1.20.1.tar.gz --2021-08-31 13:48:54-- http://nginx.org/download/nginx-1.20.1.tar.gz Resolving nginx.org (nginx.org)... 3.125.197.172, 52.58.199.22, 2a05:d014:edb:5704::6, ... Connecting to nginx.org (nginx.org)|3.125.197.172|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1061461 (1.0M) [application/octet-stream] Saving to: ‘nginx-1.20.1.tar.gz’ 100%[=========================================================>] 1,061,461 278KB/s in 3.7s 2021-08-31 13:48:59 (278 KB/s) - ‘nginx-1.20.1.tar.gz’ saved [1061461/1061461] 2. # 解压安装包 [root@web_server01~]# tar xf nginx-1.20.1.tar.gz -C /usr/src/ 3. # 创建系统用户 [root@web_server01~]# useradd -M -s /sbin/nologin nginx 4. # 创建日志存放目录 [root@web_server01~]# mkdir -p /var/log/nginx 5. # 安装nginx 依赖包 [root@web_server01~]# yum -y install pcre-devel openssl openssl-devel gd-devel gcc gcc-c++ 6. # 开始编译 [root@web_server01/usr/src/nginx-1.20.1]# ./configure --user=nginx --prefix=/usr/local/nginx --with-http_ssl_module --with-http_realip_module --with-http_image_filter_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_stub_status_module --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --without-http_rewrite_module 7. # 编译&&安装 [root@web_server01/usr/src/nginx-1.20.1]# make && make install 8.# 检查nginx 配置文件是否安装正确 ,返回ok 即可 [root@web_server01/usr/src/nginx-1.20.1]# /usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
-
启动nginx 服务
# 启动nginx 服务 [root@web_server01~]# /usr/local/nginx/sbin/nginx
-
补充:
nginx 安装后配置(可以不配),推荐配置
# 配置nginx 环境变量 [root@web_server01~]# echo 'export PATH=/usr/local/nginx/sbin:$PATH' > /etc/profile.d/nginx.sh [root@web_server01~]# source /etc/profile.d/nginx.sh #服务控制方式,使用nginx命令 -t //检查配置文件语法 -v //输出nginx的版本 -c //指定配置文件的路径 -s //发送服务控制信号,可选值有{stop|quit|reopen|reload} # 启动nginx [root@web_server01~]# nginx [root@web_server01~]# ss -lant State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:80 *:* LISTEN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* ESTAB 0 0 10.0.0.7:22 10.0.0.1:62580 LISTEN 0 128 :::22 :::* LISTEN 0 100 ::1:25 :::* # 停止nginx [root@web_server01~]# nginx -s stop
2.4 nginx重要文件目录结构
-
/etc/nginx 配置文件 /var/log/nginx 日志文件 /usr/share/nginx/html 站点目录 /etc/nginx/nginx.conf nginx 主配置文件 /etc/nginx/conf.d/default.conf 扩展配置文件(虚拟主机) -
/etc/logrotate.d/
日志切割的目录
[root@web_server01~]# rpm -ql nginx /etc/logrotate.d/nginx # 实现nginx日志文件定时切割处理 /etc/nginx # nginx 配置文件 /etc/nginx/nginx.conf # 主配置文件 /etc/nginx/conf.d/default.conf # 虚拟主机配置文件 /etc/nginx/fastcgi_params /etc/nginx/mime.types # 媒体资源类型文件 /etc/nginx/modules /etc/nginx/nginx.conf /etc/nginx/scgi_params …… 等
-
nginx 主配置文件介绍
# 备份 nginx 配置文件 [root@web_server01/etc/nginx]# cp nginx.conf{,.bak} # 过滤以 空格 开头的内容 [root@web_server01/etc/nginx]# grep "^$" nginx.conf.bak # 将过滤出来的内容取反 [root@web_server01/etc/nginx]# grep -v "^$" nginx.conf.bak # 过滤取反后的文件重定向 到nginx 配置文件中 [root@web_server01/etc/nginx]# grep -v "^$" nginx.conf.bak > nginx.conf ==重要提示== [root@web_server01/etc/nginx]# cat nginx.conf # 第一部分:配置文件主区域配置 user nginx; # 定义worker进程管理的用户 worker_processes auto; # 定义有几个worker进程,它等于CPU 核数 /核数的2倍 error_log /var/log/nginx/error.log notice; #定义错误日志 pid /var/run/nginx.pid; #定义PID 文件路径信息 # 第二个部分: 配置文件事件区域 events { worker_connections 1024; ---- 一个worker进程同时可以接受1024个访问请求 } # 配置http 区域 http { include /etc/nginx/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 /var/log/nginx/access.log main; ---- 指定日志路径,调用日志 sendfile on; ---- 特殊的数据传输功能 #tcp_nopush on; 参数sendfile on 用于开启文件高效传输模式,同时将tcp_nopush on 和tcp_nodelay on 两个指令设置为on,可防止网络及磁盘I/O阻塞,提升Nginx工作效率 keepalive_timeout 65; ----超时时间 #gzip on; include /etc/nginx/conf.d/*.conf; - --- 加载一个配置文件 } # 第四个部分: server区域信息(配置一个网站 www/bbs/blog -- 一个虚拟主机) server { listen 8080; --- 指定监听的端口 server_name www.oldboy.com; --- 指定网站域名 root /usr/share/nginx/html; --- 定义站点目录的位置 index index.html index.htm; --- 定义首页文件 error_page 500 502 503 504 /50x.html; --- 优雅显示页面信息 location = /50x.html { root /usr/share/nginx/html; } } ============分割线==============分割线===================分割线================= 补充:nginx 进程,他有2个进程 master process:主进程 ----管理服务是否正常运行 worker process:工作进程 ----处理用户的访问请求 [root@web_server01/etc/nginx]# ps -ef|grep nginx root 35183 1 0 11:54 ? 00:00:00 nginx: master process nginx nginx 35184 35183 0 11:54 ? 00:00:00 nginx: worker process root 35419 35155 0 13:04 pts/0 00:00:00 grep --color=auto nginx
2.5 虚拟主机介绍及配置
-
虚拟主机配置
在真实的服务器环境,为了充分利用服务器资源,一台nginx web服务器同时会配置N个虚拟域名主机,即多个域名对于同样一个80端口。然后服务器IP数量很多,也可以配置基于多个IP对应同一个端口。
-
配置虚拟主机配置文件介绍
[root@web_server01/etc/nginx]# cd conf.d/ [root@web_server01/etc/nginx/conf.d]# cp default.conf{,.bak} #先备份配置文件 #过滤空格、# 开头的内容。(^$ 空格空格开头,^# #号开头、-v 取反) [root@web_server01/etc/nginx/conf.d]# egrep -v "^$|#" default.conf.bak server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } [root@web_server01/etc/nginx/conf.d]# egrep -v "^$|#" default.conf.bak > default.conf [root@web_server01/etc/nginx/conf.d]# cat default.conf server { listen 8080; -----指定监听端口,原本80,这里我修改成8080(目的是为了做第一个简单的www网站) server_name localhost; ----指定网站域名 location / { ----通过指定模式来与客户端请求的URI相`匹配` root /usr/share/nginx/html; ---- 定义站点目录的位置 index index.html index.htm; ---- 定义首页文件 } error_page 500 502 503 504 /50x.html; ---- 优雅显示页面信息 location = /50x.html { root /usr/share/nginx/html; } } [root@web_server01/etc/nginx/conf.d]#
2.5.1利用nginx服务搭建一个网站(www)
前提是,你把
/etc/nginx/conf.d/default.conf
,80端口 修改成8080或其他端口。否则看不到效果,每次看到的都是 默认欢迎界面
# 第一步:进入到虚拟主机配置文件目录 [root@web_server01~]# cd /etc/nginx/conf.d/ [root@web_server01/etc/nginx/conf.d]# ls default.conf default.conf.bak www.conf [root@web_server01/etc/nginx/conf.d]# vim www.conf [root@web_server01/etc/nginx/conf.d]# cat www.conf server { listen 80; server_name www.hbs.com; location / { root /usr/share/nginx/html; index hbs.html; } } [root@web_server01/etc/nginx/conf.d]#
第二个历程: 需要获取开发人员编写的网站代码
# 这里自己写一个测试网页 [root@web_server01/etc/nginx/conf.d]# cd /usr/share/nginx/html/ [root@web_server01/usr/share/nginx/html]# cat hbs.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>我的第一个html</title> </head> <body> <h1>大家好!我是黄昏</h1> <p>nginx配置的第一个简单的html</p> </body> </html> [root@web_server01/usr/share/nginx/html]# ls 50x.html hbs.html index.html
第三个历程: 重启nginx服务
第三个历程: 重启nginx服务(平滑重启) 两种方法: systemctl reload nginx nginx -s reload nginx命令参数 -t : test configuration and exit 检查测试配置文件语法 -s : send signal to a master process: stop, quit, reopen, reload 控制服务停止或者重新启动
第四个历程: 编写DNS配置信息
第四个历程: 编写DNS配置信息 真实域名: 在阿里云上进行DNS解析记录配置 模拟域名: 在windows主机的hosts文件中进行配置即可 C:\\Windows\\System32\\drivers\\etc\\hosts 10.0.0.7 www.hbs.com hosts文件末尾添加Ip 域名
第五个历程: 进行测试访问
第五个历程: 进行测试访问 浏览器中: http://www.oldboy.com
2.5.2 location介绍、location 访问控制及 优雅404显示
-
location 介绍:
允许根据用户请求的URI来匹配定义的各location,匹配到时,此请求将被相应的location配置块中的配置所处理,例如做访问控制等功能 = 精确匹配 location = /hbs ~ 正则表达式,区分大消息 location ~ ^/hbs$ ~* 不区分大小写 location ~* ^/hbs$ 匹配顺序: 带有=的精确匹配优先 正则表达式按照他们在配置文件中定义的顺序 带有^~修饰符的,开头匹配
-
location 访问控制
用于location段 allow:设定允许哪台或哪些主机访问,多个参数间用空格隔开 deny:设定禁止哪台或哪些主机访问,多个参数间用空格隔开 示例: allow 192.168.1.1/32 172.16.0.0/16; deny all; # 放行了10.0.0.81/32 172.16.0.0/16,拒绝了其它ip地址 location /hbs { root /usr/share/nginx/html; index hbs.html; allow 10.0.0.81/32 172.16.0.0/16 deny all }
-
补充:访问策略配置写法
写法1: server { listen 80; server_name www.hbs.com; root /html/www; index index.html; location /AV { deny 10.0.0.0/24; allow 172.16.1.0/24; } } 写法2: server { listen 80; server_name www.hbs.com; location / { root /html/www; index index.html; } location /AV { deny 10.0.0.0/24; allow 172.16.1.0/24; root /html/www; index index.html; } } 补充: location外面的信息, 全局配置信息 location里面的信息, 局部配置信息
-
优雅界面404 显示
2.5.3 利用nginx服务搭建一个多网站(www、 love、 blog)
-
第一步:创建三个配置文件
[root@web_server01/etc/nginx/conf.d]# ls bbs.conf blog.conf default.conf default.conf.bak www.conf # www.conf 配置文件 [root@web_server01/etc/nginx/conf.d]# cat www.conf server { listen 80; server_name www.hbs.com; location / { root /usr/share/nginx/html/www; index index.html; } } # bbs.conf 配置文件 [root@web_server01/etc/nginx/conf.d]# cat bbs.conf server { listen 80; server_name bbs.hbs.com; location / { root /usr/share/nginx/html/bbs; index index.html; } } # blog.conf 配置文件 [root@web_server01/etc/nginx/conf.d]# cat blog.conf server { listen 80; server_name blog.hbs.com; location / { root /usr/share/nginx/html/blog; index index.html; } } [root@web_server01/etc/nginx/conf.d]#
-
第二步:创建站点目录和目录中首页文件
# 常见站点目录 [root@web_server01~]# mkdir -p /usr/share/nginx/html/{www,bbs,blog} # 创建站点首页文件 [root@web_server01/usr/share/nginx/html]# ls 50x.html bbs blog index.html www [root@web_server01/usr/share/nginx/html]# cat www/index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>我的第一个html</title> </head> <body> <h1>大家好!我是黄昏</h1> <p>10.0.0.7 www.hbs.com</p> </body> </html> …… # 重启 nginx [root@web_server01~]# systemctl stop nginx [root@web_server01~]# systemctl start nginx
-
添加hosts 文件:
-
测试
2.5.4 企业中虚拟主机 访问方式
-
基于域名的方式方式进行访问
-
基于地址的方式进行访问(只能用指定地址访问)—
负载均衡+高可用服务
server { listen 10.0.0.7:80; # 填写地址 server_name www.hbs.com; location / { root /html/www; index index.html; } } 配置完毕了,需要关闭/重启nginx
-
基于端口的方式进行访问:(
zabbix服务(apache:80) + web服务(nginx:80) --> 2个端口重复
)# 修改端口 [root@web_server01/etc/nginx/conf.d]# cat www.conf server { listen 8080; server_name www.hbs.com; location / { root /usr/share/nginx/html/www; index index.html; } } [root@web_server01/etc/nginx/conf.d]# [root@web_server01/etc/nginx/conf.d]# systemctl restart nginx [root@web_server01/etc/nginx/conf.d]# netstat -lntup|grep 80 tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 38784/nginx: master tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 38784/nginx: master [root@web_server01/etc/nginx/conf.d]#
2.5.5 基于 用户访问 认证
-
nginx认证模块:
ngx_http_auth_basic_module
-
举例配置
location / { auth_basic "closed site"; --- 开启认证功能(欢迎信息) auth_basic_user_file conf/htpasswd; --- 加载用户密码文件,密码文件存放路径 } 密码文件存放路径,推荐相对路径
-
具体详细配置过程
第一个历程: 编写虚拟主机配置文件
[root@web_server01/etc/nginx]# cat conf.d/www.conf server { listen 80; server_name www.hbs.com; location / { root /usr/share/nginx/html/www; index index.html; auth_basic "欢迎来到王者荣耀!"; auth_basic_user_file passwd/passwd; #passwd目录下的passwd密码文件 } }
第二个历程: 创建密码文件(文件中密码信息必须是密文的)
# 创建 一个目录,存放密码文件 [root@web_server01/etc/nginx]# mkdir passwd # 检查是否有htpasswd 密码工具,没有yum 安装httpd-tools [root@web_server01/etc/nginx/passwd]# rpm -qf `which htpasswd` httpd-tools-2.4.6-97.el7.centos.x86_64 [root@web_server01/etc/nginx/passwd]# # 生成密码文件 [root@web_server01/etc/nginx/passwd]# htpasswd -bc passwd hbs 123456 Adding password for user hbs [root@web_server01/etc/nginx/passwd]# cat passwd hbs:$apr1$7WaamHGp$ENgUQ2yncebNZpFtGbRyX. [root@web_server01/etc/nginx/passwd]# # 查看生成的用户及密码 [root@web_server01/etc/nginx/passwd]# cat passwd hbs:$apr1$7WaamHGp$ENgUQ2yncebNZpFtGbRyX. [root@web_server01/etc/nginx/passwd]#
这样就可以直接测试,但是由于这样的密码文件具有较高的权限,不安全,所以涉及到修改密码文件,及文件属主。如果不修改文件权限,则不安全。
-
测试
-
修改文件权限
[root@web_server01/etc/nginx/passwd]# chmod 600 ./passwd
-
测试
-
报500问题原因
-
解决问题方法
[root@web_server01/etc/nginx/passwd]# chown nginx ./passwd
-
测试
2.5.6 利用nginx服务搭建网站文件共享服务器–index of
-
文件共享
如何利用nginx服务搭建文件共享呢,比如像 阿里镜像网站那样,输入域名就可以看到很多目录,打开还可以 下载呢
-
操作步骤
第一个步: 编写配置文件(开启autoindex模块)
server { listen 80; server_name www.hbs.com; location / { root /usr/share/nginx/html/www; auth_basic "欢迎来到王者荣耀!"; auth_basic_user_file passwd/passwd; autoindex on; # 开启autoindex 模块即可。 } }
第二步:重启服务,如果有首页,将首页删除并制造测试数据
# 准备好的测试数据 [root@web_server01/usr/share/nginx/html/www]# ls Centos Centos6.5 Centos6.9 Centos7.1 Centos7.2 hbs.txt index.html.backup # 重启nginx 服务 [root@web_server01/usr/share/nginx/html/www]# systemctl restart nginx
此时测试,我们只有查看的权限,如果想下载,还学要修改
mime.types
文件。mime.types媒体资源类型文件作用
文件中有的扩展名信息资源, 进行访问时会直接看到数据信息 txt
文件中没有的扩展名信息资源, 进行访问时会直接下载资源 php -
赋予下载权限,修改mime.types 配置文件
修改 mime.types配置文件,搜索txt,将txt 改成php 就可以下载了。
-
测试
2.5.7 nginx 解决首页乱码问题
-
设置成utf-8
server { listen 80; server_name www.hbs.com; location / { root /usr/share/nginx/html/www; auth_basic "欢迎来到王者荣耀!"; auth_basic_user_file passwd/passwd; charset utf-8; } } location 添加 charset utf-8;
2.5.8 利用nginx服务搭配置文件别名功能
-
配置别名
这里就是比如你的域名很长,你想配置短一点的域名例如:
www.hbs.com 你配一个 bs.com的别名
1.修改配置文件
server_name www.hbs.com bs.com
2.重启nginx 服务
[root@web_server01/etc/nginx]# systemctl restart nginx
3.修改hosts 文件
2.5.9 利用nginx状态模块功能对网站进行监控
-
开启监控模块ngx_http_stub_status_module
location = /basic_status { stub_status; } =========================== 这里我在 conf.d 目录新建了一个关于状态的站点 status.conf [root@web_server01/etc/nginx/conf.d]# cat status.conf server { listen 80; server_name status.oldboy.com stub_status; } # 平滑启动nginx [root@web_server01/etc/nginx/conf.d]# systemctl reload nginx 添加hosts 域名
-
访问测试
-
监控获取参数说明
Active connections: 激活的连接数信息 4000用户 3500
accepts: 接收的连接数汇总(综合) TCP
handled: 处理的连接数汇总(综合) TCP
requests: 总计的请求数量 HTTP协议请求
Reading: nginx服务读取请求报文的数量 100人点餐
Writing: nginx服务响应报文信息数量 100人响应
Waiting: nginx队列机制,要处理(读取或者响应保存进行保存) 监控
2.5.10 nginx 日志功能配置及错误日志介绍
-
访问日志
/var/log/nginx/access.log ngx_http_log_module
-
错误日志
/var/log/nginx/error.log --- Core functionality
访问日志介绍
# 定义日志内容格式 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 /var/log/nginx/access.log main; #调用日志格式 $remote_addr 显示用户访问源IP地址信息 $remote_user 显示认证的用户名信息 [$time_local] 显示访问网站时间 "$request" 请求报文的请求行信息 $status 用户访问网站状态码信息 $body_bytes_sent 显示响应的数据尺寸信息 $http_referer 记录调用网站资源的连接地址信息(防止用户盗链) www.hbs.com---access.log--->blog.hbs.com到www.hbs.com的连接--->http_referer(链接) $http_user_agent 记录用户使用什么客户端软件进行访问页面的 (谷歌 火狐 IE 安卓 iphone) $http_x_forwarded_for 负载均衡 [root@web_server01/var/log/nginx]# tail -f /var/log/nginx/www_access.log 10.0.0.129 - - [02/Sep/2021:17:52:41 +0800] "GET / HTTP/1.1" 401 179 "-" "Mozilla/5.0
以上是关于nginx之location介绍的主要内容,如果未能解决你的问题,请参考以下文章