1. 程式人生 > >nginx常用配置系列-虛擬主機

nginx常用配置系列-虛擬主機

server com 文件 主機 -o 書寫 lena 準備 類型

本來準備詳盡的出一份nginx配置講解,但nginx功能配置繁多,平常使用中使用最多的一般有:

1. 虛擬主機配置

2. HTTPS配置

3. 靜態資源處理

4. 反向代理

================= 虛擬主機配置 =================

先說虛擬主機配置,nginx的核心配置文件在nginx的安裝目錄下conf目錄中(如果是CentOS通過yum安裝則在/etc/nginx目錄中)

在conf目錄下創建vhost目錄,方便管理虛擬主機的配置文件

mkdir vhost

以example.com域名為例,在vhost目錄中新建虛擬主機的配置文件example.com.conf(文件名依照域名來構造,方便辨別),編輯example.com.conf(下面是一段PHP虛擬主機的典型配置)

server {
    # 監聽的端口
    listen      80;
    # host域名
    server_name example.com www.example.com;
    
    # 設置長連接(可選)
    keepalive_timeout 70;
    
    # 減少點擊劫持
    add_header X-Frame-Options DENY;
    # 禁止服務器自動解析資源類型(安全起見,防止文件偽裝)
    add_header X-Content-Type-Options nosniff;
    # 防XSS攻擊
    add_header X-Xss-Protection 1;
    
    # 默認頁面
    index index.html index.htm index.php default.html default.htm default.php;    
    # 網站源碼主目錄
    root  /home/wwwroot/example.com;
    # 寫訪問日誌
    access_log  /home/wwwlogs/kuaimashi.com.log  main;
    # 文件匹配規則(詳解http://seanlook.com/2015/05/17/nginx-location-rewrite/index.html)
    location ~ [^/]\.php(/|$) {
        try_files $uri =404;
        #fastcgi_pass  unix:/tmp/php-cgi.sock;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
        # 靜態資源30天過期
        expires      30d;
    }
    location ~ .*\.(js|css)?$ {
        # js, css 12小時過期
        expires      12h;
    }
    location / {
        index index.php;
        if (!-e $request_filename) {
            rewrite ^/(.*)$ /index.php?$1 last;
            break;
        }
    }
}

保存並關閉

在nginx的主配置文件nginx.conf中include引入虛擬主機的配置文件(放在括號內的最下面即可)

include vhost/*.conf;

配置文件寫好了,這時最好先測試文件是否書寫正確

nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

nginx -t輸出這樣表明配置無誤,否則需要根據輸出進行配置文件檢查

在確認虛擬主機文件無誤後,讓nginx把我們的配置文件加載進來(reload)

nginx -s reload

加載完畢後就可以在瀏覽器看效果了

================= 虛擬主機介紹完畢 =================

後續繼續記錄HTTPS,靜態資源處理,反向代理常見用法

文章有不足之處請直接指出,互相學習交流QQ:1485619676

nginx常用配置系列-虛擬主機