简单配置
这个配置只是为了能够快速将反向代理的功能实现出来
# main 全局设置
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
# 每一个worker进程能并发处理(发起)的最大连接数
# (包含与客户端或后端被代理服务器间等所有连接数)
worker_connections 1024;
# nginx 默认使用 epoll 事件模型,提升在 Linux 下的运行效率。
use epoll;
}
http {
include 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 logs/access.log main;
# 开启高校文件传输模式,指定 nginx 是否调用 sendfile 函数输出文件
# 减少用户空间到内核空间的上下文切换。
# 对于普通应用设为 on, 如果用来进行下载等应用磁盘 IO 重负载应用,可以设置为 off
# 以平衡磁盘与网络 I\O 处理速度,降低系统的负载
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
# 长连接超时时间,单位是秒,这个参数很敏感,涉及浏览器种类、后端服务器的超时时间、操作系统的设置
# 长连接请求大量小文件的时候,可以减少重建连接的开销,但假如有大文件上传,65s 内没上传完成会导致失败
# 如果设置时间过长,用户又过多,长时间保持连接会占用大量资源。
keepalive_timeout 65;
#gzip on;
# 设置一系列的后端服务器,设置反向代理及后端服务器的负载均衡
upstream backend {
server localhost:8080 max_fails=2 fail_timeout=30s;
}
# 指令主要用于指定虚拟主机域名、IP和端口
# http 服务上支持若干虚拟主机。
# 每个虚拟主机一个对应的 server 配置项,配置项里面包含该虚拟主机相关的配置。
# 在提供 mail 服务的代理时,也可以建立若干 server。
# 每个 server 通过监听地址或端口来区分
server {
# 监听端口,默认 80, 小于 1024 要以 root 启动。
# 可以为 listen *:80、 listen 127.0.0.1:80 等形式。
listen 80;
# 服务器名, 如 localhost、www.example.com,也可以通过正则匹配。
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
# 用于匹配网页位置(比如,根目录“/”,“/images”,等等)
location / {
proxy_pass http://backend;
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
access.log 配置
在日志格式中加入
# 代表了程序真正响应的时间
$upstream_response_time
# 代表了程序响应的时间和传输到用户的时间,所以如果网络不好,会远远大于前者.
$request_time
-
$remote_addr
记录访问网站的客户端地址 -
$remote_use
r 远程客户端用户名 -
$time_local
记录访问时间与时区 -
$request
用户的 http 请求起始行信息 -
$status http
状态码,200、301、404等 -
$body_bytes_sent
服务器发送给客户端的响应 body 字节数 -
$http_referer
记录此次请求是从哪个连接访问过来的,可以根据该参数进行防盗链设置 -
http_user_agent
记录客户端访问信息。例如,浏览器,手机客户端。 -
http_x_forwarded_for
当前端有代理服务器时,设置 web 节点记录客户端地址的配置,此参数生效的前提时代理服务器也要进行相关的 x_forwarded_for 设置
参考资料:
nginx 与 tomcat 组合搭建web服务
nginx.conf配置文件详解
Nginx访问日志(access_log)配置及信息详解
网友评论