Nginx多域名配置
一、環境準備
1.Tengine,也稱Taobao nginx,淘寶在Nginx基礎上,針對大型網站訪問,添加了一些高級功能和特性。
2.Resin服務器或者Tomcat服務器,用來做Web服務器
二、域名解析
假設虛擬主機外網IP是123.123.123.123,添加解析到該域名:
1.添加域名解析,@和www,分別對應tngtech.com和www.tngtech.com映射;
2.添加手機站域名解析,m.tngtech.com
3.添加圖片域名解析,image.tngtech.com
三、Nginx配置多域名
1.創建Nginx運行用戶
groupadd www
useradd -s /sbin/nologin -g www www
2.配置Nginx
2.1 配置運行用戶和工作進程數
user www; #Nginx運行用戶
worker_processes 8; #工作進程數量,一般和CPU核數相等
2.2 配置Nginx連接數
events {
worker_connections 2048;
use epoll;
}
worker_connections 設置可由一個worker進程同時打開的最大連接數。
use 設置用於複用客戶端線程的輪詢方法。如果你使用Linux 2.6+,你應該使用epoll,高效處理事件驅動。
2.3 配置http長連接超時時間
keepalive_timeout 30;
2.4 開啓Gzip壓縮
gzip on;
gzip_min_length 1000;
gzip_comp_level 4;
gzip_types text/css application/json text/javascript text/plain;
3. 配置多域名解析
3.1 配置www.tngtech.com域名解析
server {
listen 80;
server_name www.tngtech.com;
location / {
proxy_pass http://localhost:8083;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
配置www.tngtech.com域名解析到80端口,proxy_pass配置代理轉發到本機8083端口的Web服務器上(Tomcat或者Resin),proxy_set_header設置請求header參數,包括host,ip頭等。
3.2 配置手機站m.tngtech.com域名解析
server {
listen 80;
server_name m.tngtech.com;
location / {
proxy_pass http://localhost:8082;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
跟配置www域名類似,轉發到本機8082端口的Web服務器上。
3.3 配置圖片服務器
server {
listen 80;
server_name image.tngtech.com;
charset utf-8;
location ~* \.(gif|jpg|png)$ {
root /webser/www/images;
expires 30d;
}
}
過濾圖片後綴,gif|jpg|png等,直接映射到/webser/www/images目錄,設置緩存30d(天)過期。
至此,通過上面的Nginx配置,可以實現多個域名的解析。