当前位置:首页 > 教程 > 正文内容

nginx开启ipv6(nginx开启文件浏览)

2023-05-31 16:20:06教程1

nginx开启ipv6

1 IPV4公网IP

2 由于IPV4和IPV6两个网络不同不通,所以IPV4与IPV6之间要建立隧道,以便访问

3 服务器要开启IPV6支持,Linux通过修改系统参数实现

4 服务器上的Web服务器,如Nginx要开启IPV6支持

5 服务器要获取IPV6的IP,并做AAAA域名解析

nginx开启文件浏览

添加网站是通过编辑nginx.conf文件来实现的

首先打开nginx.conf

在http块中添加一个server块

在server块中配置站点的信息

使用listen指令配置nginx监听的端口,默认为80

使用server_name指令配置nginx站点的主机名(域名),用来区分请求是要发给哪个站点的

使用root设置站点的根目录

配置完后保存并使用nginx-sreload重新加载配置文件即可

nginx开启accesslog

1、nigix是否在正常运行,需要用linux命令查看nginx运行情况。执行命令:ps -A | grep nginx。

如果返回结果的话,说明有nginx在运行,服务已经启动。如果不怕nginx关闭的话。也可以执行:service nginx restart。

把nginx服务重启,在重启时,也可以看到具体有没有什么地方出错。

2、看端口netstat -ntlp;

看进程ps -ef|grep nginx;

看日志是否更新tail -f access.log。

3、直接查看进程id:ps -C nginx -o pid。

这种直接返回pid的方式比较适合跟其他程序结合使用,比如在shell/python脚本中执行这个命令拿到pid,让后根据pid来判断Nginx是否启动。 推荐使用这种方式。

nginx开启ssl

2、检查的防火墙设置3、安装上传的nginx ssl证书配置指南重新部署一遍。

nginx开启缓存

日志对于统计排错来说非常有利的。本文总结了nginx日志相关的配置如access_log、log_format、open_log_file_cache、log_not_found、log_subrequest、rewrite_log、error_log。

nginx有一个非常灵活的日志记录模式。每个级别的配置可以有各自独立的访问日志。日志格式通过log_format命令来定义。ngx_http_log_module是用来定义请求日志格式的。

1. access_log指令

语法: access_log path [format [buffer=size [flush=time]]];

access_log path format gzip[=level] [buffer=size] [flush=time];

access_log syslog:server=address[,parameter=value] [format];

access_log off;

默认值: access_log logs/access.log combined;

配置段: http, server, location, if in location, limit_except

gzip压缩等级。

buffer设置内存缓存区大小。

flush保存在缓存区中的最长时间。

不记录日志:access_log off;

使用默认combined格式记录日志:access_log logs/access.log 或 access_log logs/access.log combined;

2. log_format指令

语法: log_format name string …;

默认值: log_format combined “…”;

配置段: http

name表示格式名称,string表示等义的格式。log_format有一个默认的无需设置的combined日志格式,相当于apache的combined日志格式,如下所示:

log_format combined '$remote_addr - $remote_user [$time_local] '

' "$request" $status $body_bytes_sent '

' "$http_referer" "$http_user_agent" ';

log_formatcombined'$remote_addr - $remote_user [$time_local] '

' "$request" $status $body_bytes_sent '

' "$http_referer" "$http_user_agent" ';

如果nginx位于负载均衡器,squid,nginx反向代理之后,web服务器无法直接获取到客户端真实的IP地址了。 $remote_addr获取反向代理的IP地址。反向代理服务器在转发请求的http头信息中,可以增加X-Forwarded-For信息,用来记录 客户端IP地址和客户端请求的服务器地址。PS: 获取用户真实IP 参见http://www.ttlsa.com/html/2235.html如下所示:

log_format porxy '$http_x_forwarded_for - $remote_user [$time_local] '

' "$request" $status $body_bytes_sent '

' "$http_referer" "$http_user_agent" ';

log_formatporxy'$http_x_forwarded_for - $remote_user [$time_local] '

' "$request" $status $body_bytes_sent '

' "$http_referer" "$http_user_agent" ';

日志格式允许包含的变量注释如下:

$remote_addr, $http_x_forwarded_for 记录客户端IP地址

$remote_user 记录客户端用户名称

$request 记录请求的URL和HTTP协议

$status 记录请求状态

$body_bytes_sent 发送给客户端的字节数,不包括响应头的大小; 该变量与Apache模块mod_log_config里的“%B”参数兼容。

$bytes_sent 发送给客户端的总字节数。

$connection 连接的序列号。

$connection_requests 当前通过一个连接获得的请求数量。

$msec 日志写入时间。单位为秒,精度是毫秒。

$pipe 如果请求是通过HTTP流水线(pipelined)发送,pipe值为“p”,否则为“.”。

$http_referer 记录从哪个页面链接访问过来的

$http_user_agent 记录客户端浏览器相关信息

$request_length 请求的长度(包括请求行,请求头和请求正文)。

$request_time 请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止。

$time_iso8601 ISO8601标准格式下的本地时间。

$time_local 通用日志格式下的本地时间。

$remote_addr,$http_x_forwarded_for记录客户端IP地址

$remote_user记录客户端用户名称

$request记录请求的URL和HTTP协议

$status记录请求状态

$body_bytes_sent发送给客户端的字节数,不包括响应头的大小;该变量与Apache模块mod_log_config里的“%B”参数兼容。

$bytes_sent发送给客户端的总字节数。

$connection连接的序列号。

$connection_requests当前通过一个连接获得的请求数量。

$msec日志写入时间。单位为秒,精度是毫秒。

$pipe如果请求是通过HTTP流水线(pipelined)发送,pipe值为“p”,否则为“.”。

$http_referer记录从哪个页面链接访问过来的

$http_user_agent记录客户端浏览器相关信息

$request_length请求的长度(包括请求行,请求头和请求正文)。

$request_time请求处理时间,单位为秒,精度毫秒;从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止。

$time_iso8601ISO8601标准格式下的本地时间。

$time_local通用日志格式下的本地时间。

[warning]发送给客户端的响应头拥有“sent_http_”前缀。 比如$sent_http_content_range。[/warning]

实例如下:

http {

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

'"$status" $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for" '

'"$gzip_ratio" $request_time $bytes_sent $request_length';

log_format srcache_log '$remote_addr - $remote_user [$time_local] "$request" '

'"$status" $body_bytes_sent $request_time $bytes_sent $request_length '

'[$upstream_response_time] [$srcache_fetch_status] [$srcache_store_status] [$srcache_expire]';

open_log_file_cache max=1000 inactive=60s;

server {

server_name ~^(www\.)?(.+)$;

access_log logs/$2-access.log main;

error_log logs/$2-error.log;

location /srcache {

access_log logs/access-srcache.log srcache_log;

}

}

}

http{

log_formatmain'$remote_addr - $remote_user [$time_local] "$request" '

'"$status" $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for" '

'"$gzip_ratio" $request_time $bytes_sent $request_length';

log_formatsrcache_log'$remote_addr - $remote_user [$time_local] "$request" '

'"$status" $body_bytes_sent $request_time $bytes_sent $request_length '

'[$upstream_response_time] [$srcache_fetch_status] [$srcache_store_status] [$srcache_expire]';

open_log_file_cachemax=1000inactive=60s;

server{

server_name~^(www\.)?(.+)$;

access_loglogs/$2-access.logmain;

error_loglogs/$2-error.log;

location/srcache{

access_loglogs/access-srcache.logsrcache_log;

}

}

}

3. open_log_file_cache指令

语法: open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];

open_log_file_cache off;

默认值: open_log_file_cache off;

配置段: http, server, location

对于每一条日志记录,都将是先打开文件,再写入日志,然后关闭。可以使用open_log_file_cache来设置日志文件缓存(默认是off),格式如下:

参数注释如下:

max:设置缓存中的最大文件描述符数量,如果缓存被占满,采用LRU算法将描述符关闭。

inactive:设置存活时间,默认是10s

min_uses:设置在inactive时间段内,日志文件最少使用多少次后,该日志文件描述符记入缓存中,默认是1次

valid:设置检查频率,默认60s

off:禁用缓存

实例如下:

open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;

1

open_log_file_cachemax=1000inactive=20svalid=1mmin_uses=2;

4. log_not_found指令

语法: log_not_found on | off;

默认值: log_not_found on;

配置段: http, server, location

是否在error_log中记录不存在的错误。默认是。

5. log_subrequest指令

语法: log_subrequest on | off;

默认值: log_subrequest off;

配置段: http, server, location

是否在access_log中记录子请求的访问日志。默认不记录。

6. rewrite_log指令

由ngx_http_rewrite_module模块提供的。用来记录重写日志的。对于调试重写规则建议开启。 Nginx重写规则指南

语法: rewrite_log on | off;

默认值: rewrite_log off;

配置段: http, server, location, if

启用时将在error log中记录notice级别的重写日志。

7. error_log指令

语法: error_log file | stderr | syslog:server=address[,parameter=value] [debug | info | notice | warn | error | crit | alert | emerg];

默认值: error_log logs/error.log error;

配置段: main, http, server, location

配置错误日志。

nginx开启gzip

1、可以高并发连接

官方测试Nginx能够支撑5万并发连接,实际生产环境中可以支撑2~4万并发连接数。

原因,主要是Nginx使用了最新的epoll(Linux2.6内核)和kqueue(freeBSD)网路I/O模型,而Apache使用的是传统的Select模型,其比较稳定的Prefork模式为多进程模式,需要经常派生子进程,所以消耗的CPU等服务器资源,要比Nginx高很多。

2、内存消耗少

Nginx+PHP(FastCGI)服务器,在3万并发连接下,开启10个Nginx进程消耗150MB内存,15MB*10=150MB,开启的64个PHP-CGI进程消耗1280内存,20MB*64=1280MB,加上系统自身消耗的内存,总共消耗不到2GB的内存。

如果服务器的内存比较小,完全可以只开启25个PHP-CGI进程,这样PHP-CGI消耗的总内存数才500MB。

3、成本低廉

购买F5BIG-IP、NetScaler等硬件负载均衡交换机,需要十多万到几十万人民币,而Nginx为开源软件,采用的是2-clause BSD-like协议,可以免费试用,并且可用于商业用途。

BSD开源协议是一个给使用者很大自由的协议,协议指出可以自由使用、修改源代码、也可以将修改后的代码作为开源或专用软件再发布。

4、配置文件非常简单

网络和程序一样通俗易懂,即使,非专用系统管理员也能看懂。

5、支持Rewrite重写

能够根据域名、URL的不同,将http请求分到不同的后端服务器群组。

6、内置的健康检查功能

如果NginxProxy后端的某台Web服务器宕机了,不会影响前端的访问。

7、节省带宽

支持GZIP压缩,可以添加浏览器本地缓存的Header头。

8、稳定性高

用于反向代理,宕机的概率微乎其微。

9、支持热部署

Nginx支持热部署,它的自动特别容易,并且,几乎可以7天*24小时不间断的运行,即使,运行数个月也不需要重新启动,还能够在不间断服务的情况下,对软件版本进行升级。

nginx开启access访问日志后可以看到哪些信息

获取url参数

在 ngx_lua 中访问 Nginx 内置变量 ngx.var.arg_PARAMETER 即可获得GET参数PARAMETER的内容。

在 nginx配置中,通过$arg_PARAMETER 即可获得GET参数PARAMETER的内容。

获取请求头

在 ngx_lua 中访问 Nginx 内置变量 ngx.var.http_HEADER 即可获得请求头HEADER的内容。

在 nginx配置中,通过$http_HEADER 即可获得请求头HEADER的内容。

通过以下方式进行验证,比如说,通过 http://www.test.com?name=hello&id=123 来验证url的请求参数,能够在nginx中获取到,只需要修改nginx.conf 配置文件如下,就可以在access.log中看到id和name在log中

http {

include mime.types;

default_type application/octet-stream;

log_format main '{ "@timestamp": "$time_iso8601", '

'"servername": "$http_host", '

'"id": "$arg_id",'

'"name": "$arg_name",'

'"remote_addr": "$remote_addr",'

'"referer": "$http_referer",'

'"request": "$request",'

'"request_time": "$request_time",'

'"status": $status,'

'"bytes":$body_bytes_sent,'

'"agent": "$http_user_agent",'

'"x_forwarded": "$http_x_forwarded_for",'

'"upstr_addr": "$upstream_addr",'

'"upstr_host": "$upstream_http_host",'

'"ups_resp_time": "$upstream_response_time" }';

access_log logs/access.log main;

server_names_hash_bucket_size 128;

nginx开启gzip压缩

我的回答:gzip是GNU-ZIP的压缩技术,经过gzip压缩后页面大小可以变成原来的30%甚至更小,用户浏览页面的速度会快得多。

gzip的压缩界面需要浏览器和服务器端都支持,实际上就是服务器端压缩,浏览器端解压并且解析页面,大多数浏览器都支持gzip过的页面。所以确定压缩生效,可以对照gzip的压缩比进行抓包比较。

nginx开启目录浏览功能

从nginx官网下载相应的安装包建议下载 下载稳定版解压到相应的目录,比如我是e盘 然后修改目录名字为nginx进入nginx目录 双击nginx.exe 来启动nginx此时 直接在浏览器地址栏输入:localhost 便能看到 欢迎页面,说明你虚拟主机已经搭建好了但是有时候 我们需要配置路径 在默认情况下 他的root是 nginx目录下的html文件夹如若修改 则打开conf目录下的nginx.conf找到server 选项 修改咯location 中的root 选项。

本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.

本文链接:https://www.xibujisuan.cn/98871888.html