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.conf
server {
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。
1025

被折叠的 条评论
为什么被折叠?



