1. 程式人生 > >lnmp下 nginx 配置虛擬主機

lnmp下 nginx 配置虛擬主機

這裡以配置2個站點(2個域名)為例,n 個站點可以相應增加調整,假設:

IP地址: 202.55.1.100

域名1 example1.com 放在 /www/example1

域名2 example2.com 放在 /www/example2

配置 nginx virtual hosting 的基本思路和步驟如下:

把2個站點 example1.com, example2.com 放到 nginx 可以訪問的目錄 /www/

給每個站點分別建立一個 nginx 配置檔案 example1.com.conf,example2.com.conf, 並把配置檔案放到 /etc/nginx/vhosts/

然後在 /etc/nginx.conf 裡面加一句 include 把步驟2建立的配置檔案全部包含進來(用 * 號)

重啟 nginx

具體過程

下面是具體的配置過程:

1、在 /etc/nginx 下建立 vhosts 目錄

mkdir /etc/nginx/vhosts

2、在 /etc/nginx/vhosts/ 裡建立一個名字為 example1.com.conf 的檔案,把以下內容拷進去

server {

listen 80;

server_name example1.com www. example1.com;

access_log /www/access_ example1.log main;

location / {

root /www/example1.com;

index index.php index.html index.htm;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

location ~ \.php$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /www/example1.com/$fastcgi_script_name;

include fastcgi_params;

}

location ~ /\.ht {

deny all;

}

}

3、在 /etc/nginx/vhosts/ 裡建立一個名字為 example2.com.conf 的檔案,把以下內容拷進去

server {

listen 80;

server_name example2.com www. example2.com;

access_log /www/access_ example1.log main;

location / {

root /www/example2.com;

index index.php index.html index.htm;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

location ~ \.php$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /www/example2.com/$fastcgi_script_name;

include fastcgi_params;

}

location ~ /\.ht {

deny all;

}

}

4、開啟 /etc/nginix.conf 檔案,在相應位置加入 include 把以上2個檔案包含進來

user nginx;

worker_processes 1;

# main server error log

error_log /var/log/nginx/error.log ;

pid /var/run/nginx.pid;

events {

worker_connections 1024;

}

# main server config

http {

include mime.types;

default_type application/octet-stream;

log_format main ‘$remote_addr – $remote_user [$time_local] $request ‘

‘”$status” $body_bytes_sent “$http_referer” ‘

‘”$http_user_agent” “$http_x_forwarded_for”‘;

sendfile on;

#tcp_nopush on;

#keepalive_timeout 0;

keepalive_timeout 65;

gzip on;

server {

listen 80;

server_name _;

access_log /var/log/nginx/access.log main;

server_name_in_redirect off;

location / {

root /usr/share/nginx/html;

index index.html;

}

}

# 包含所有的虛擬主機的配置檔案

include /usr/local/etc/nginx/vhosts/*;

}

5、重啟 Nginx

/etc/init.d/nginx restart

</參考>

<二、我的例項>

--------- vhosts/led.conf

  server {
        listen       80;
        server_name   www.led.com
        index index.html index.htm index.php;
        root /usr/local/vhost/led;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root  /usr/local/vhost/led;
            index  index.html index.htm index.php;
        }

        #error_page  404              /404.html;

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

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
 
    location ~ .*\.(php|php5)?$
       {
        #fastcgi_pass unix:/tmp/php-cgi.sock;
         fastcgi_pass  127.0.0.1:9000;
         fastcgi_index index.php;
         fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;