worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream web_pools { //upstream模块
server 10.0.0.9:80 weight=5 max_fails=10 fail_timeout=10s; //根据权重值来分配服务器的访问比例
server 10.0.0.10:80 weight=5;
#server 10.0.0.10:80 weight=5 backup;
}
server {
listen 80;
server_name www.etiantian.org;
location / {
root html;
index index.html index.htm;
proxy_pass http://web_pools; //服务器分配策略,proxy_pass是轮回rr
proxy_set_header Host $host; //因为客户端访问代理服务器,代理服务器是不会把客户端的head字段中的主机名传给服务器的,所以配置了此参数,可以让
客户端的head字段中的主机名传给服务器,这样apache可以根据主机名来分给相应的虚拟主机(apache中多主机头的概念)
)。
proxy_set_header X-Forwarded-For $remote_addr; //如果不配置此项,那么在apache日志中,看到的都是代理服务器发来的ip,配置之后,可以显示不同客户端的
ip地址。
proxy_connect_timeout 90; //表示代理服务器和服务器连接的时间
proxy_send_timeout 90; //表示后端服务器回传给服务器的时间
proxy_read_timeout 90; //表示代理服务器从服务器获取信息的时间
proxy_buffer_size 4k; //表示设置代理服务器缓存大小
proxy_buffers 4 32k; //表示设置代理服务器缓存数量和大小
proxy_busy_buffers_size 64k; //表示在系统很忙时,服务器缓存大小
proxy_temp_file_write_size 64k; //当代理服务器缓存不够用时,可以写进临时文件的大小
}
location / {
if ($http_user_agent ~* "MSIE") //可以根据浏览器的类别,来判断访问的服务器路径
{
proxy_pass http://dynamic_pools;
}
if ($http_user_agent ~* "Firefox")
{
proxy_pass http://static_pools;
}
proxy_pass http://dynamic_pools;
include proxy.conf;
}
location /image/ { //可以根据路径来匹配访问的服务器。比如访问www.baidu.com/image/ ,此时会发送给static_pools
proxy_pass http://static_pools;
include proxy.conf;
}
location /dynamic/ {
proxy_pass http://dynamic_pools;
include proxy.conf;
}
}
}
————————————————————————————————————————————————————————————————————————————————————————————————————
多主机头绑定
(就是在一个端口上绑定多个域名,然后每个域名可以指向不同的目录进行访问,主机头是IIS里面的说法),打开httpd.conf文件,在文件最后添加如下内容
复制代码
#多主机头配置无需放在特定的节点下面,一般直接在配置文件底部添加即可
#NameVirtualHost addr[:port] 为一个基于域名的虚拟主机指定一个IP地址(和端口)
#声明主机头必须加这条指令,否者主机头配置不会生效
#VirtualHost节点下面ServerName就是要绑定的域名,DocumentRoot表示此域名指向的目录
#本机测试的话请在hosts中进行域名绑定如 127.0.0.1 www.mysite1.com
NameVirtualHost *:8080
<VirtualHost *:8080>
ServerName www.mysite1.com
DocumentRoot "D:\Program Files\Apache2.2\htdocs"
</VirtualHost>
<VirtualHost *:8080>
ServerName www.mysite2.com
DocumentRoot "D:\Code\MySite"
</VirtualHost>
配置好后,重启apache服务,浏览器输入www.mysite1.com:8080,就会自动定向到D:\Program Files\Apache2.2\htdocs站点了
输入www.mysite2.com:8080就会自动定向到D:\Code\MySite站点,如此就可以实现在一个服务器上同时运行多个站点
——————————————————————————————————————————————————————————————————————————————————————————————————————-
apache的访问日志
自定义Apache日志,则在http.conf中加入如下字段:
LogFormat "%h %l %u %t %T \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" common
说明:一般Apache默认的格式为“LogFormat "%h %l %u %t %T \"%r\" %>s %b”,上面字段中“%{Referer}i”代表访问网站时,自己所处的地址,“%{User-Agent}i”代表用户使用什么
浏览器访问的网站,以及用户所使用的系统是什么操作系统。后面“common”字段很重要,它代表是自己定义的,如果不加些字段,则添加的自定义日志不起作用。
nginx记录
最新推荐文章于 2023-08-23 14:09:32 发布