ubuntu 13.04 nginx.conf 配置詳解


1、nginx.conf 文件,路徑為:/etc/nginx/agin.conf

#使用的用戶和組
user www-data; 

#指定工作衍生進程數(一般等於CPU總核數或總核數的兩倍)
worker_processes 4;

#指定PID存放的路徑
pid /run/nginx.pid;

#指定文件描述符數量
worker_rlimit_nofile 51200;

events {
    #使用的網絡I/O模型,linux戲台推薦采用epoll模型,freebsd系統采用kqueue模型
    use epoll;

    #允許最大連接數
    worker_connections 51200;
    # multi_accept on;
}

http {

    ##
    # 基礎設置
    ##
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    server_names_hash_bucket_size 128;
    # server_name_in_redirect off;

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

    ##
    # 日志設置
    ##
    #指定錯誤日志存放路徑數, 錯誤日志記錄的級別可選項為:[debug|info|notice|warn|error|crit]
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # 壓縮設置
    ##
    gzip on;
    gzip_disable "msie6";

    gzip_vary on;
    # gzip_proxied any;
    gzip_comp_level 2;
    gzip_buffers 4 16k;
    gzip_http_version 1.1;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    ##
    # nginx-naxsi config
    ##
    # Uncomment it if you installed nginx-naxsi
    ##

    #include /etc/nginx/naxsi_core.rules;

    ##
    # nginx-passenger config
    ##
    # Uncomment it if you installed nginx-passenger
    ##
    
    #passenger_root /usr;
    #passenger_ruby /usr/bin/ruby;

    ##
    # 虛擬主機設置
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}


#mail {
#    # See sample authentication script at:
#    # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
# 
#    # auth_http localhost/auth.php;
#    # pop3_capabilities "TOP" "USER";
#    # imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#    server {
#        listen     localhost:110;
#        protocol   pop3;
#        proxy      on;
#    }
# 
#    server {
#        listen     localhost:143;
#        protocol   imap;
#        proxy      on;
#    }
#}

 

 

2、default 服務主機配置文件,路徑為:/etc/nginx/sites-available/default

#主機
server {
    listen 80;
    server_name www.demo.com;
    root /home/zxl/wwwroot/demo/;
    index index.php index.html index.htm;

    #如果沒有可訪問目錄或文件
    if (!-e $request_filename) {
        #將訪問路徑跳轉至根目錄下的index.php接受處理
        rewrite  ^/(.*)$  /index.php/$1  last;
        break;
    }

     #處理請求路徑滿足匹配 .php  的響應
   # “ location ~ \.php ” == “ location ~ \.php($|/) ”
   #第一句的意思是如果請求字符中匹配到“ .php ”字符,就交給php解析器處理
   #第二句的意思是如果請求字符中匹配到以“ .php ”字符為結尾的或 “ .php/ ” 字符,就交給php解析器處理
   #推薦采納第二句
    location ~ \.php($|/)
    {
        #響應請求處理入口,使用php-fpm進行管理
        fastcgi_pass unix:/var/run/php5-fpm.sock;

        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    #配置靜態圖片文件客戶端緩存時間
    location ~ .*\.(gif|jgp|jpeg|png|bmp|swf)$
    {
        expires 30d; #30天
    }

    #配置js、css文件客戶端緩存時間
    location ~ .*\.(js|css)?$
    {
        expires 1h; #1小時
    }

    #設置訪問日志保存格式
    #log_format access '$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 access;
}

 


虛擬主機的綁定:
可以是同主機多IP,二是同IP多虛擬主機方式。
同主機多IP的方式,是使用網卡回環功能,同一網卡綁定多個ip。


 同IP多虛擬主機方式(推薦,很適合開發者同時開發多個項目的情況下使用):
本地開發的時侯給每個虛擬主機設定一個域名,
編輯 /etc/hosts 文件:

127.0.0.1        www.demo.com
127.0.0.1        www.demo2.com
127.0.0.1        www.demo3.com

在編輯 /etc/nginx/sites-available/default 文件

service{
   ******
}

拷貝該代碼體,復制你要的虛擬機個數數。

再編輯  

    server_name www.demo2.com; //設置為你設定好的域,依次類推
    root /home/zxl/wwwroot/demo2; 

最終如下:

#demo
server {
    listen 80;
    server_name www.demo.com;
    root /home/zxl/wwwroot/demo/;
    index index.php index.html index.htm;



    if (!-e $request_filename) {
        rewrite  ^/(.*)$  /index.php/$1  last;
        break;
    }

    location ~ \.php
    {
        #響應請求處理入口,使用php-fpm進行管理
        fastcgi_pass unix:/var/run/php5-fpm.sock;

        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

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

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

    #log_format access '$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 access;
}

#demo2
server {
    listen 80;
    server_name www.demo2.com;
    root /home/zxl/wwwroot/demo2/;
    index index.php index.html index.htm;



    if (!-e $request_filename) {
        rewrite  ^/(.*)$  /index.php/$1  last;
        break;
    }

    location ~ \.php
    {
        #響應請求處理入口,使用php-fpm進行管理
        fastcgi_pass unix:/var/run/php5-fpm.sock;

        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

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

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

    #log_format access '$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 access;
}

#demo3
server {
    listen 80;
    server_name www.demo3.com;
    root /home/zxl/wwwroot/demo3/;
    index index.php index.html index.htm;



    if (!-e $request_filename) {
        rewrite  ^/(.*)$  /index.php/$1  last;
        break;
    }

    location ~ \.php
    {
        #響應請求處理入口,使用php-fpm進行管理
        fastcgi_pass unix:/var/run/php5-fpm.sock;

        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

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

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

    #log_format access '$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 access;
}
View Code

如此,你便可訪問 www.demo.com www.deom2.com www.demo3.com 了!

如果在正式的生產環境的話,則需要你的DNS服務器指定到你所在的服務器IP了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM