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; }
如此,你便可訪問 www.demo.com www.deom2.com www.demo3.com 了!
如果在正式的生產環境的話,則需要你的DNS服務器指定到你所在的服務器IP了。