Nginx 虛擬主機 VirtualHost 配置

增長 Nginx 虛擬主機

這裏假設你們的 Nginx 服務器已經安裝好, 不懂的請閱讀各 Linux 發行版的官方文檔或者 LNMP 的安裝說明. 配置 Virtual host 步驟以下:php

1. 進入 /usr/local/nginx/conf/vhost 目錄, 建立虛擬主機配置文件 demo.neoease.com.conf ({域名}.conf).html

2. 打開配置文件, 添加服務以下:nginx

server {
	listen       80;
	server_name demo.neoease.com;
	index index.html index.htm index.php;
	root  /var/www/demo_neoease_com;
 
	log_format demo.neoease.com '$remote_addr - $remote_user [$time_local] $request'
	'$status $body_bytes_sent $http_referer '
	'$http_user_agent $http_x_forwarded_for';
	access_log  /var/log/demo.neoease.com.log demo.neoease.com;
}

3. 打開 Nginx 配置文件 /usr/local/nginx/conf/nginx.conf, 在 http 範圍引入虛擬主機配置文件以下:bash

include vhost/*.conf;

4. 重啓 Nginx 服務, 執行如下語句.服務器

service nginx restart

讓 Nginx 虛擬主機支持 PHP

在前面第 2 步的虛擬主機服務對應的目錄加入對 PHP 的支持, 這裏使用的是 FastCGI, 修改以下.wordpress

server {
	listen       80;
	server_name demo.neoease.com;
	index index.html index.htm index.php;
	root  /var/www/demo_neoease_com;
 
	location ~ .*\.(php|php5)?$ {
		fastcgi_pass unix:/tmp/php-cgi.sock;
		fastcgi_index index.php;
		include fcgi.conf;
	}
 
	log_format demo.neoease.com '$remote_addr - $remote_user [$time_local] $request'
	'$status $body_bytes_sent $http_referer '
	'$http_user_agent $http_x_forwarded_for';
	access_log  /var/log/demo.neoease.com.log demo.neoease.com;
}

圖片防盜鏈

圖片做爲重要的耗流量大的靜態資源, 可能網站主並不但願其餘網站直接引用, Nginx 能夠經過 referer 來防止外站盜鏈圖片.post

server {
	listen       80;
	server_name demo.neoease.com;
	index index.html index.htm index.php;
	root  /var/www/demo_neoease_com;
 
	# 這裏爲圖片添加爲期 1 年的過時時間, 而且禁止 Google, 百度和本站以外的網站引用圖片
	location ~ .*\.(ico|jpg|jpeg|png|gif)$ {
		expires 1y;
		valid_referers none blocked demo.neoease.com *.google.com *.baidu.com;
		if ($invalid_referer) {
			return 404;
		}
	}
 
	log_format demo.neoease.com '$remote_addr - $remote_user [$time_local] $request'
	'$status $body_bytes_sent $http_referer '
	'$http_user_agent $http_x_forwarded_for';
	access_log  /var/log/demo.neoease.com.log demo.neoease.com;
}

WordPress 僞靜態配置

若是將 WordPress 的連接結構設定爲 /%postname%//%postname%.html 等格式時, 須要 rewrite URL, WordPress 提供 Apache 的 .htaccess 修改建議, 但沒告知 Nginx 該如何修改. 咱們能夠將 WordPress 的虛擬主機配置修改以下:網站

server {
	listen       80;
	server_name demo.neoease.com;
	index index.html index.htm index.php;
	root  /var/www/demo_neoease_com;
 
	location / {
		if (-f $request_filename/index.html){
			rewrite (.*) $1/index.html break;
		}
		if (-f $request_filename/index.php){
			rewrite (.*) $1/index.php;
		}
		if (!-f $request_filename){
			rewrite (.*) /index.php;
		}
	}
	rewrite /wp-admin$ $scheme://$host$uri/ permanent;
 
	location ~ .*\.(php|php5)?$ {
		fastcgi_pass unix:/tmp/php-cgi.sock;
		fastcgi_index index.php;
		include fcgi.conf;
	}
 
	log_format demo.neoease.com '$remote_addr - $remote_user [$time_local] $request'
	'$status $body_bytes_sent $http_referer '
	'$http_user_agent $http_x_forwarded_for';
	access_log  /var/log/demo.neoease.com.log demo.neoease.com;
}

LNMP 套件在提供了 WordPress 爲靜態配置文件 /usr/local/nginx/conf/wordpress.conf, 在虛擬主機配置的 server 範圍引用以下便可.google

include wordpress.conf;

若是你使用 LNMP 套件, 進入 WordPress 後臺發現會出現 404 頁面, wp-admin 後面缺乏了斜杆 /, 請在 wordpress.conf 最後添加如下語句:unix

rewrite /wp-admin$ $scheme://$host$uri/ permanent;
相關文章
相關標籤/搜索