nginx配置详解
来源:互联网 发布:怎么推广淘宝产品 编辑:程序博客网 时间:2024/06/09 14:29
nginx的默认的配置文件有如下的内容,nginx配置分为
user nginx nginx; //运行的用户和组worker_processes 1; //进程数,通常设置与cpu核数相同#error_log logs/error.log; //定义日志文件及写入等级#error_log logs/error.log notice;#error_log logs/error.log info;error_log /tmp/nginx_error.log error;#pid logs/nginx.pid; //定义进程文件位置worker_rlimit_nofile 65535; //一个nginx进程打开的最多文件描述符数目//工作模式及连接上限events { use epool; //参考时间模型 异步 worker_connections 65535; //单个进程最大连接数(最大连接数=连接数*进程数)}//设定http服务器http { include mime.types; //设定文件扩展名和文件映射类型,路径/nginx安装路径/conf/mime.types default_type application/octet-stream; //设置自定义的日志格式,类型为main #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; sendfile on; //开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off #tcp_nopush on; //防止网络阻塞 #tcp_nodelay on; //防止网络阻塞 #keepalive_timeout 0; keepalive_timeout 65; //连接超时时间 #charset utf-8; #默认编码 server_names_hash_bucket_size 128; //服务器名字的hash表大小 client_header_buffer_size 32k; //上传文件大小限制 large_client_header_buffers 4 64k; //设定请求缓冲 client_max_body_size 8m; //设定请求缓冲 #gzip on; gzip on; #开启gzip压缩输出 gzip_min_length 1k; #最小压缩文件大小 gzip_buffers 4 16k; #压缩缓冲区 gzip_http_version 1.0; #压缩版本(默认1.1,前端如果是squid2.5请使用1.0) gzip_comp_level 2; #压缩等级 gzip_types text/plain application/x-javascript text/css application/xml; #压缩类型,默认就已经包含textml,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。 gzip_vary on; #FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。下面参数看字面意思都能理解。(根据实际情况调整) fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; #limit_zone crawler $binary_remote_addr 10m; #开启限制IP连接数的时候需要使用//接下来就是虚拟主机的配置,可以用多个文件表示,只要加个include就可以如#include /usr/local/nginx/conf/vhost/*.conf//这里分两类,一种用nginx只做负载均衡,然后将请求转发到web服务器上,这种这里只要设置upstream机器--------------------------------------------------------------------------------- upstream web_A_80{ server 192.168.1.1; //web服务器1 server 192.168.2.1; //web服务器2 } **//https请求访问443端口**upstream web_A_443{ server 192.168.1.1:443; //web服务器1 server 192.168.2.1:443; //web服务器2 } server { listen 80; server_name web1.com web2.com //可以设置多个域名 location / { # root html; # index index.html index.htm; # limit_req zone=juheapi.com burst=5; proxy_pass web_A_80; proxy_set_header X-Real-IP \$remote_addr; proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; proxy_set_header Host $host; # proxy_set_header X-NginX-Proxy true; } } server { listen 443; server_name web1.com web2.com //可以设置多个域名 location / { # root html; # index index.html index.htm; # limit_req zone=juheapi.com burst=5; proxy_pass web_A_443; proxy_set_header X-Real-IP \$remote_addr; proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; proxy_set_header Host $host; # proxy_set_header X-NginX-Proxy true; } } 然后在对应的web服务器上设置访问控制,如在192.168.1.1机器上,配置web1.com.confserver { listen 443; listen 80; fastcgi_intercept_errors on; server_name web1.com; root /data/www/nginx/web1.com; location / { index index.html index.htm; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 30d; } location ~ /\.ht { deny all; } #禁止访问.sql文件 location ~ /*\.sql { return 404; } #禁止访问.md文件 location ~ /*\.md { return 404; } #禁止访问所有隐藏文件 location ~ /\. { return 404; } #禁止访问所有隐藏文件夹的内容 location ~ /\.*/ { return 404; } access_log /var/log/weblog/web1.com_acc.log main; error_log /var/log/weblog/web1.com_err.log error;}----------------------------------------------------------------------------------------另一种,直接将本机作为web服务器,不需要负载均衡,则同上面的,只是不需要upstream。
0 0
- nginx 配置nginx.conf 详解
- 详解Nginx配置nginx.conf
- nginx-nginx集群配置详解
- Nginx nginx.conf 配置详解
- Nginx域名配置详解
- Nginx 配置详解
- nginx 配置详解
- nginx 配置详解
- nginx.conf配置详解
- nginx--fast_cgi配置详解
- nginx配置详解
- nginx配置详解
- nginx配置详解
- nginx配置详解
- nginx配置详解
- nginx配置详解
- nginx配置详解
- Nginx配置详解
- Java是编译型语言还是解释型语言?
- Android Dex分包之旅
- Android弹出窗口的实现(PopupWindow)
- JMC: Java Mission Control
- MAC下阅读Android源代码
- nginx配置详解
- RichTextBox替换文字并改变字体颜色
- Android中的进程简介(可见进程,前台进程,后台进程等)
- 常用的Http Response Code所代表的意思
- Unity - 延时操作方案
- Android插件化之Activity生命周期处理
- memcached安装失败
- 抽象类和接口的区别总结
- iOS容易造成循环引用的三种场景,就在你我身边!