nginx多站点配置

Posted 彼扬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx多站点配置相关的知识,希望对你有一定的参考价值。

主配置文件 nginx.conf:

user www;
worker_processes 2;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections  102400;
}


http {
    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  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;
}

 

站点1配置文件:one.conf

server {
    listen       80;
    server_name  www.xx.cn;

    #charset koi8-r;

    access_log  /data/logs/wwwxx.access.log  main;

    location / {
        root   /data/wwwxx;
        index  index.html index.htm index.php;
    }

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

   
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    
    
    if (!-e $request_filename) {
        #rewrite ^/(.*) /index.php?$1 last;

    rewrite ^(?!/favicon)(?!/data)(?!/static)(?!/MP)(.*)$ /index.php?$1 last;

        break;
    }


    location ~ \.php$ {
        root           /data/wwwxx;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
    

    # deny access to .htaccess files, if Apache‘s document root
    # concurs with nginx‘s one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

 

https-ssl带证书配置站点 web.conf

server {
    listen       443;
    server_name  www.xx.cn ;

    if ($host = xx.cn){
        rewrite ^/(.*)$ https://www.xx.cn/$1 permanent;
    }

    ssl on;
    ssl_certificate /data/ssl/xx.cn.crt;
    ssl_certificate_key /data/ssl/xx.cn.key;

    #charset koi8-r;

    access_log  /data/logs/wwwxx.access.log  main;


        root   /data/wweb;
        index  index.html index.htm index.php;


    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location / {
    if (!-e $request_filename) {
        #rewrite ^/(.*) /index.php?$1 last;

      rewrite ^(?!/pc)(?!/static)(?!/robots)(.*)$ /index.php?$1 last;

        break;
    }
  }

    location ~ \.php$ {
        root           /data/wweb;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apaches document root
    # concurs with nginxs one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

 

反向代理站点配置 two.conf

upstream two_web{
    server 127.0.0.1:8088 weight=1;
    server 127.0.0.1:8081 weight=2;
}


server {
    listen       80;
    server_name  www.xx.com;

    #charset koi8-r;

    access_log  /data/logs/xx.access.log  main;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
        
        index  index.htm index.html;

        proxy_pass   http://two_web;    #在这里设置一个代理,和upstream的名字一样
        #以下是一些反向代理的配置可删除
        proxy_redirect             off; 
        #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
        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_max_body_size       10m; #允许客户端请求的最大单文件字节数
        client_body_buffer_size    128k; #缓冲区代理缓冲用户端请求的最大字节数
        proxy_connect_timeout      300; #nginx跟后端服务器连接超时时间(代理连接超时)
        proxy_send_timeout         300; #后端服务器数据回传时间(代理发送超时)
        proxy_read_timeout         300; #连接成功后,后端服务器响应时间(代理接收超时)
        proxy_buffer_size          4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
        proxy_buffers              4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
        proxy_busy_buffers_size    64k; #高负荷下缓冲大小(proxy_buffers*2)
        proxy_temp_file_write_size 64k;
        

    }

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

  
}

 

静态资源访问配置 image.conf

server {
    listen       80;
    server_name  img002.xx.com;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;


    location / {
        root   /data/www/resource/;
        index  index.html index.htm;
    }

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

 
}

 

以上是关于nginx多站点配置的主要内容,如果未能解决你的问题,请参考以下文章

nginx下配置多站点

phpstudy使用nginx配置多站点域名

Ubuntu Nginx 配置多站点

nginx多站点配置

Nginx 多站点配置

Nginx 配置多站点vhost