体育西网站开发定制,WordPress挂在虚拟站点,网站栏目内容,年收入100万要交多少税目录 1 网页的状态页
2 Nginx 第三方模块
2.1 ehco 模块
3 变量
3.1 内置
3.2 定义变量
4 Nginx压缩功能
5 https 功能
6 自定义图标 1 网页的状态页
基于nginx 模块 ngx_http_stub_status_module 实现#xff0c;在编译安装nginx的时候需要添加编译参数 --with-http…目录 1 网页的状态页
2 Nginx 第三方模块
2.1 ehco 模块
3 变量
3.1 内置
3.2 定义变量
4 Nginx压缩功能
5 https 功能
6 自定义图标 1 网页的状态页
基于nginx 模块 ngx_http_stub_status_module 实现在编译安装nginx的时候需要添加编译参数 --with-http_stub_status_module否则配置完成之后监测会是提示语法错误注意: 状态页显示的是整个服务器的状态,而非虚拟主机的状态 只需要添加 location location /nginx_status { stub_status; } 2 Nginx 第三方模块 2.1 ehco 模块
解压并编译安装 echo-nginx [rootlocalhost nginx-1.18.0]#./configure --prefix/apps/nginx --usernginx --groupnginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module --add-module/opt/echo-nginx-module-master make make install 编写配置文件 用另一台机器测试 3 变量
官方文档 http://nginx.org/en/docs/varindex.html
3.1 内置
常用内置变量
$remote_addr;
#存放了客户端的地址注意是客户端的公网IP$proxy_add_x_forwarded_for
#此变量表示将客户端IP追加请求报文中X-Forwarded-For首部字段,多个IP之间用逗号分隔,如果请求中没有X-Forwarded-For,就使用$remote_addrthe “X-Forwarded-For” client request header field with the $remote_addr variable appended to it, separated by a comma. If the “X-Forwarded-For” field is not present in the client request header, the $proxy_add_x_forwarded_for variable is equal to the $remote_addr variable.
客户机 代理1 代理2 nginx服务器
$proxy_add_x_forwarded_for 在代理1 上存的是 客户机的ip
$proxy_add_x_forwarded_for 在代理2 上存的是 客户机的ip代理1的ip 用逗号隔开
$proxy_add_x_forwarded_for nginx 上存的是 客户机的ip代理1的ip代理2的ip$args;
#变量中存放了URL中的参数例如:http://www.kgc.org/main/index.do?id20190221partnersearch
#返回结果为: id20190221partnersearch 存放的就是这个$document_root;
#保存了针对当前资源的请求的系统根目录,例如:/apps/nginx/html。$document_uri;
#保存了当前请求中不包含参数的URI注意是不包含请求的指令比
如:http://www.kgc.org/main/index.do?id20190221partnersearch会被定义为/main/index.do
#返回结果为:/main/index.do$host;
#存放了请求的host名称limit_rate 10240;
echo $limit_rate;
#如果nginx服务器使用limit_rate配置了显示网络速率则会显示如果没有设置 则显示0$remote_port;
#客户端请求Nginx服务器时随机打开的端口这是每个客户端自己的端口$remote_user;
#已经经过Auth Basic Module验证的用户名$request_body_file;
#做反向代理时发给后端服务器的本地资源的名称$request_method;
#请求资源的方式GET/PUT/DELETE等$request_filename;
#当前请求的资源文件的磁盘路径由root或alias指令与URI请求生成的文件绝对路径如:/apps/nginx/html/main/index.html$request_uri;
#包含请求参数的原始URI不包含主机名相当于:$document_uri?$args,例如/main/index.do?id20190221partnersearch $scheme;
#请求的协议例如:httphttps,ftp等$server_protocol;
#保存了客户端请求资源使用的协议的版本例如:HTTP/1.0HTTP/1.1HTTP/2.0等$server_addr;
#保存了服务器的IP地址$server_name;
#请求的服务器的主机名$server_port;
#请求的服务器的端口号$http_name
#name为任意请求报文首部字段,表示记录请求报文的首部字段
arbitrary request header field; the last part of a variable name is the field name converted to lower case with dashes replaced by underscores
#用下划线代替横线
#示例: echo $http_User_Agent; $http_user_agent;
#客户端浏览器的详细信息$http_cookie;
#客户端的cookie信息$cookie_name
#name为任意请求报文首部字部cookie的key名$http_name
#name为任意请求报文首部字段,表示记录请求报文的首部字段ame的对应的首部字段名需要为小写如果有
横线需要替换为下划线
arbitrary request header field; the last part of a variable name is the field
name converted to lower case with dashes replaced by underscores #用下划线代替横线
#示例:
echo $http_user_agent;
echo $http_host;$sent_http_name
#name为响应报文的首部字段name的对应的首部字段名需要为小写如果有横线需要替换为下划线,此变量有问题
echo $sent_http_server;$arg_name
#此变量存放了URL中的指定参数name为请求url中指定的参数
#对比 变量 $arg 是全部 如果 要id 如下
echo $arg_id;
编写 重启nginx后用另一台机器进行测试 -b 加上cookie 3.2 定义变量
假如需要自定义变量名称和值使用指令set $variable value;
语法格式 Syntax: set $variable value;
Default: —
Context: server, location, if例如
location /test {set $name kgc;echo $name;set $my_port $server_port;echo $my_port;} 重启nginx后用另一台机器进行测试 4 Nginx压缩功能
支持对指定类型的文件进行压缩然后再传输给客户端而且压缩还可以设置压缩比例压缩后的文件大小将比源文件显著变小这样有助于降低出口带宽的利用率降低企业的IT支出不过会占用相应的CPU资源。Nginx对文件的压缩功能是依赖于模块 ngx_http_gzip_module
官方文档 Module ngx_http_gzip_module
配置指令如下
#启用或禁用gzip压缩默认关闭
gzip on | off;
#压缩比由低到高从1到9默认为1
gzip_comp_level level;
#禁用IE6 gzip功能
gzip_disable MSIE [1-6]\.;
#gzip压缩的最小文件小于设置值的文件将不会压缩
gzip_min_length 1k;
#启用压缩功能时协议的最小版本默认HTTP/1.1
gzip_http_version 1.0 | 1.1;
#指定Nginx服务需要向服务器申请的缓存空间的个数和大小,平台不同,默认:32 4k或者16 8k;
gzip_buffers number size;
#指明仅对哪些类型的资源执行压缩操作;默认为gzip_types text/html不用显示指定否则出错
gzip_types mime-type ...;
#如果启用压缩是否在响应报文首部插入“Vary: Accept-Encoding”,一般建议打开
gzip_vary on | off;
#预压缩
gzip_static on | off;#重启nginx并进行访问测试压缩功能
[rootlocalhost ~]# cp /apps/nginx/logs/access.log /data/nginx/html/pc/m.txt
[rootlocalhost ~]# echo test /data/nginx/html/pc/test.html #小于1k的文件测试是否
会压缩
[rootlocalhost ~]# vim /apps/nginx/conf/nginx.conf
gzip on;gzip_comp_level 5;
gzip_min_length 1k;
gzip_types text/plain application/javascript application/x-javascript text/css
application/xml text/javascript application/x-httpd-php image/gif image/png;
gzip_vary on;
#重启Nginx并访问测试
[rootlocalhost ~]# curl --head --compressed 192.168.91.100/test.html
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 22 Feb 2019 01:52:23 GMT
Content-Type: text/html
Last-Modified: Thu, 21 Feb 2019 10:31:18 GMT
Connection: keep-alive
Keep-Alive: timeout65
Vary: Accept-Encoding
ETag: W/5c6e7df6-171109
Content-Encoding: gzip #压缩传输
#验证不压缩访问的文件大小
实际操作
1、上传图片 2、编写配置文件后重启nginx 3、测试查看 5 https 功能
Web网站的登录页面都是使用https加密传输的加密数据以保障数据的安全HTTPS能够加密信息以免敏感信息被第三方获取所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议HTTPS其实是有两部分组成HTTP SSL / TLS也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密所以传输的数据都是加密后的数据。
nginx 的https 功能基于模块ngx_http_ssl_module实现因此如果是编译安装的nginx要使用参数ngx_http_ssl_module开启ssl功能但是作为nginx的核心功能yum安装的nginx默认就是开启的编译安装的nginx需要指定编译参数--with-http_ssl_module开启
官方文档https://nginx.org/en/docs/http/ngx_http_ssl_module.html
参数 https
listen 443 ssl;
#为指定的虚拟主机配置是否启用ssl功能此功能在1.15.0废弃使用listen [ssl]替代
ssl_certificate /path/to/file;
#指向包含当前虚拟主机和CA的两个证书信息的文件一般是crt文件
ssl_certificate_key /path/to/file;
#当前虚拟主机使用的私钥文件一般是key文件
ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2];
#支持ssl协议版本早期为ssl现在是TLS默认为后三个
ssl_session_cache off | none | [builtin[:size]] [shared:name:size];
#配置ssl缓存off #关闭缓存none: #通知客户端支持ssl session cache但实际不支持builtin[:size]#使用OpenSSL内建缓存为每worker进程私有[shared:name:size]#在各worker之间使用一个共享的缓存需要定义一个缓存名称和缓存空间
大小一兆可以存储4000个会话信息多个虚拟主机可以使用相同的缓存名称
ssl_session_timeout time;
#客户端连接可以复用ssl session cache中缓存的有效时长默认5m
这里用脚本生成自签证书所需文件 编写配置文件后重启nginx 在浏览器上访问测试
注(必须用域名访问)!
域名配置具体在Windows电脑中的C:\Windows\System32\drivers\etc\hosts 测试 6 自定义图标
favicon.ico 文件是浏览器收藏网址时显示的图标当客户端使用浏览器问页面时浏览器会自己主动发起请求获取页面的favicon.ico文件但是当浏览器请求的favicon.ico文件不存在时服务器会记录404日志而且浏览器也会显示404报错将图标保存到指定目录访问#location ~ ^/favicon\.ico$ {
location /favicon.ico {root /data/nginx/html/pc/images;expires 365d; #设置文件过期时间
} 将图片保存至/data/nginx/html/pc/images 重启nginx后测试