nginx多个host配置文件

本文详细介绍了Nginx服务器的配置文件内容,包括工作进程数、错误日志设置、最大文件描述符数量等核心参数,并深入解析了HTTP块中关于压缩、超时设置及静态资源缓存等高级配置。
user  daemon daemon;

worker_processes 4;

error_log  /opt/modules/nginx/logs/nginx_error.log  crit;

pid        /opt/modules/nginx/logs/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;

events
	{
		use epoll;
		worker_connections 1500;
	}

http
	{
		include       mime.types;
		default_type  application/octet-stream;

		server_names_hash_bucket_size 128;
		client_header_buffer_size 32k;
		large_client_header_buffers 4 32k;
		client_max_body_size 8m;

		sendfile on;
		tcp_nopush     on;

		keepalive_timeout 120;

		tcp_nodelay on;		

		#fix_502_error
                proxy_buffer_size  64k;
                proxy_buffers 4 64k;
		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;
		fastcgi_temp_file_write_size 256k;

		gzip on;
		gzip_min_length  1k;
		gzip_buffers     4 16k;
		gzip_http_version 1.0;
		gzip_comp_level 2;
		gzip_types       text/plain application/x-javascript text/css application/xml;
		gzip_vary on;

		limit_zone  crawler  $binary_remote_addr  10m;

server
        {
                listen       80;
                server_name gaoqingyue.mk.com newcms.mk;
                index index.html index.htm;
                root  /opt/c/public;
		
		location /
                {
                        if (!-f $request_filename ){
                                rewrite ^/(.*) /index.php?$1;
                        }
                }

                location ~ .*\.(php|php5)?$
                        {
                                fastcgi_pass  127.0.0.1:9100;
                                fastcgi_index index.php;
                                include fcgi.conf;
                        }

                location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
                        {
                                expires      30d;
                        }

                location ~ .*\.(js|css)?$
                        {
                                expires      1h;
                        }

                log_format access_gaoqingyue '$remote_addr - $remote_user [$time_local] "$request" '
                                   '$status $body_bytes_sent "$http_referer" '
                                    '"$http_user_agent" $http_x_forwarded_for';
                access_log  /opt/data/logs/nginx/access_gaoqingyue.log  access_gaoqingyue;

        }

server
        {
                listen       80;
                server_name neiyijie.mk.xxxxxx.com;
                index index.html index.htm index.php;
                root  /opt/hd/neiyijie;

                location ~ .*\.(php|php5)?$
                        {
                                proxy_pass http://neiyijie.mk.xxxxxx.com:8000;
                                fastcgi_index index.php;
                                #include fcgi.conf;
				#limit_conn  crawler 5;
                                #proxy_set_header Host $host;
                                #proxy_set_header X-Real-IP $remote_addr;
                                 proxy_set_header Host $host;
                                 proxy_set_header X-Real-IP $remote_addr;
                                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        }

                location /status {
                        stub_status on;
                        access_log   off;
                }

		location ~ .*\.(php)$
                        {
                                expires      300s;
                        }

                location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
                        {
                                expires      30d;
                        }

                location ~ .*\.(js|css)?$
                        {
                                expires      12h;
                        }
        } 

include vhost/*.conf;
}

<think>好的,我需要回答用户关于Nginx配置文件中是否可以包含多个server块的问题。首先,我应该确认Nginx是否支持多个server块。根据已有的知识,Nginx确实允许在一个配置文件中定义多个server块,每个块对应不同的虚拟主机或服务配置。接下来,我需要解释如何配置多个server实例,可能涉及listen和server_name指令的使用。 然后,我需要参考提供的引用资料,特别是引用3中提到server块的配置,包括default_server和server_name的设置。这可以用来举例说明如何设置默认主机和不同域名的处理。同时,引用4提到同时配置多个server块可能出现的问题,比如端口冲突或证书加载问题,这部分需要作为注意事项提及。 另外,用户可能关心多个server块的工作机制,比如Nginx如何根据请求的域名和端口选择正确的server块。需要解释匹配规则,比如精确匹配、通配符匹配和正则表达式匹配的顺序。 还需要提到配置的最佳实践,比如使用include指令来组织多个配置文件,保持主配置文件整洁。同时,引用2中的location模块配置可以作为示例的一部分,说明如何在server块内部进行更详细的路由设置。 最后,生成相关问题时要围绕Nginx配置的其他方面,比如location块的作用、SSL证书配置、性能优化等,确保问题有逻辑关联,帮助用户进一步学习。</think>是的,Nginx 配置文件完全支持多个 `server` 块的配置。这是 Nginx 实现虚拟主机(Virtual Host)功能的核心机制,允许通过不同的域名、端口或 IP 地址提供多个独立的服务[^3]。 ### 一、配置多 server 块的方法 1. **基础结构** 在 `nginx.conf` 文件的 `http{}` 上下文中,通过多个 `server{}` 块定义不同服务: ```nginx http { server { listen 80; server_name domain1.com; # 配置规则1... } server { listen 80; server_name domain2.com; # 配置规则2... } } ``` 2. **关键参数说明** - `listen`:指定监听的端口(如 `80`/`443`),可扩展为 `listen 192.168.1.1:80` 形式绑定特定 IP - `server_name`:定义域名匹配规则,支持精确匹配(如 `api.example.com`)、通配符(如 `*.example.com`)和正则表达式[^3] - `default_server`:标记默认处理未匹配到其他 `server` 块的请求(示例见引用3) ### 二、匹配优先级规则 当多个 `server` 块监听同一端口时,Nginx 按以下顺序匹配请求: 1. 精确域名匹配(如 `www.example.org`) 2. 以 `*` 开的最长通配符(如 `*.example.org`) 3. 以 `*` 结尾的最长通配符(如 `mail.*`) 4. 第一个匹配的正则表达式 5. 标记了 `default_server` 的 `server` 块 6. 按配置文件顺序选择第一个 `server` 块[^3] ### 三、典型应用场景 1. **多域名托管** ```nginx server { listen 80; server_name siteA.com; root /var/www/siteA; } server { listen 80; server_name siteB.com; root /var/www/siteB; } ``` 2. **HTTP/HTTPS 共存** ```nginx server { listen 80; server_name example.com; return 301 https://$host$request_uri; # 强制跳转HTTPS } server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/cert.pem; # SSL配置... } ``` ### 四、注意事项 1. **端口冲突处理**:确保同一 IP+端口组合的多个 `server` 块有明确的 `server_name` 区分 2. **证书绑定**:HTTPS 服务需要每个 `server` 块单独配置 SSL 证书(SNI 支持情况下) 3. **配置维护**:建议使用 `include` 指令拆分多个配置文件,例如: ```nginx http { include /etc/nginx/conf.d/*.conf; } ``` 通过将不同站点的配置存放在 `conf.d` 目录下,便于管理(如引用4中提到的26.conf和28.conf的配置方式)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值