Nginx配置实例
来源:互联网 发布:怎么把mac照片导入u盘 编辑:程序博客网 时间:2024/06/11 16:30
虚拟主机配置实例
下面在Nginx中创建3个虚拟主机。
http { server { listen 80; server_name www,domain1.com; access_log logs/domain1.access.log main; location / { root /web/www/domain1.com/htdocs; index index.html; } } server { listen 80; server_name www.domain2.com; access_log logs/domain2.access.log main; location / { index index.html; root /web/www/domain2.com/htdocs; } } include /usr/local/nginx/conf/vhosts/www.domain2.com.conf; }
这里使用include引用了一个虚拟主机配置文件,其中的内容如下:
server { listen 80; server_name www.domain3.com; access_log logs/domain3.access.log main; location / { index index.html; root /web/www/domain3.com/htdocs; } }
负载均衡配置实例
通过Nginx的反向代理功能配置一个Nginx负载均衡服务器,通过Nginx调度后端3个结点:
http { upstream myserver { server 192.168.12.181:80 weight=3 max_fails=3 fail_timeout=20s; server 192.168.12.182:80 weight=1 max_fails=3 fail_timeout=20s; server 192.168.12.183:80 weight=4 max_fails=3 fail_timeout=20s; } server { listen 80; server_name www.domain.com 192.168.12.189; index index.htm index.html; root /ixdba/web/wwwroot; location / { proxy_pass http://myserver; proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header; include /usr/local/nginx/conf/proxy.conf; } } }
在上面的定义中,先定义了一个名叫myserver的负载均衡列表,然后在location中通过“proxy_pass http://myserver;”实现负载调度功能,其指定后端服务器的地址和端口,地址可以为ip或主机名。“proxy_next_upstream”用来定义故障转移策略,当后端返回500、502、503、504和执行超时等错误时,自动请求upstream负载均衡组的另一台服务器,实现故障转移。
最后用include包含进一个proxy.conf文件,内容如下:
proxy_redirect off; proxy_set_header Host $Host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_body_buffer_size 128k; 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;
proxy_set_header:设置由后端服务器获取用户的主机名和ip地址,以及代理者的真是ip地址;
client_body_buffer_size:指定客户端请求主体缓冲区大小,可以理解为先保存到本地再传给用户;
proxy_connect_timeout:与后端服务器连接的超时时间,即发起握手等候响应的超时时间;
proxy_send_timeout:后端服务器的数据返回时间,即在规定时间内后端服务器必须传完说有数据,否则Nginx将断开连接;
proxy_read_timeout:Nginx从代理的后端服务器获取信息的时间,表示连接建立成功后,Nginx等待后端服务器的响应时间;
proxy_buffer_size:设置缓冲区大小,默认等于proxy_buffers设置的大小;
proxy_buffers:设置缓冲区数量和大小,Nginx从代理的后端服务器获取的响应信息会放到缓冲区;
proxy_busy_buffers_size:设置系统繁忙时使用proxy_buffers的大小,推荐为proxy_buffers*2;
proxy_temp_file_write_size:指定proxy缓存临时文件的大小;
防盗链配置实例
location ~* \.(jpg|gif|png|swf|mp3|mp4)$ { valid_referers none blocked *.ixdbal.net ixdbal.net; if ($invalid_referer) { rewrite ^/ http://www.ixdba.net/img/error.gif; } } location /images { root /usr/local/nginx/html; valid_referers none blocked *.ixdbal.net ixdbal.net; if ($invalid_referer) { return 403; } }
jpg|gif|png|swf|mp3|mp4:表示针对这些后缀文件进行防盗链处理;
*.ixdbal.net ixdbal.net:这个请求可以正常访问上面指定的资源;
if {}:如果地址不是上边指定的地址就跳转到通过rewrite指定的地址,也可以通过return返回403错误;
更加复杂的防盗链可以使用HttpAccessKeyModule模块。
日志分割配置实例
可以通过Nginx的“USER1”信号控制来实现日志的自动切割,脚本如下:
#!/bin/bashsavepath_log='/home/nginx/logs'nglogs='/usr/local/nginx/logs'mkdir -p $savepath_log/$(date +%Y)/$(date +%m)mv $nglogs/access.log $savepath_log/$(date +%Y)/$(date +%m)/access.$(date +%Y%m%d).logmv $nglogs/error.log $savepath_log/$(date +%Y)/$(date +%m)/error.$(date +%Y%m%d).logkill -USER1 `cat /usr/local/nginx/logs/nginx.pid`
把这段脚本加入定时任务中,在凌晨执行就可以实现每天日志分割了。
- nginx配置实例
- nginx rewrite 配置实例
- nginx虚拟主机配置实例
- Nginx常用配置实例
- Nginx + Keepalived 配置实例
- nginx配置实例
- Nginx配置虚拟主机实例
- nginx 配置实例
- Nginx配置实例
- Nginx虚拟主机配置实例(Nginx VirtualHost Example)
- Nginx服务器基础配置实例nginx.conf
- Nginx 负载均衡配置实例
- nginx配置rewrite实例【转】
- nginx伪静态配置实例
- Nginx 负载均衡配置实例
- Nginx负载均衡配置实例
- 04-Nginx配置服务器实例
- Nginx跳转的配置实例
- Kafka 详解 + 集群部署
- 欢迎使用CSDN-markdown编辑器
- 软件测试概念
- 由VMware卸载引出CCleaner
- Android中单例模式
- Nginx配置实例
- 粘性定位------------------position:sticky
- C语言-指针
- Vue.js自定义指令的用法与实例
- Debian/Ubuntu上如何使用APT包管理工具
- d3d11的转换-两个立方体发生旋转
- Hadoop
- Spring ActiveMQ 整合(二.1): 重发机制概念解释
- java数据类型