阿里云產(chǎn)品通用代金券,最高可領(lǐng)1888元代金券分享一波阿里云紅包. 阿里云的購買入口
對于訪問量不大的服務(wù)器,只運行一個網(wǎng)站會不會覺得有點浪費資源活喊,或者說有多個網(wǎng)站要部署丐膝,但是只有一臺服務(wù)器,能不能在一臺主機上運行多個網(wǎng)站呢。當(dāng)然是可以的尤误,可以使用不同的目錄區(qū)分不同的網(wǎng)站侠畔,這種方法好處是比較簡單,但是會造成網(wǎng)站文件混亂损晤,在使用框架時可能會產(chǎn)生沖突软棺,使用虛擬主機可以方便的解決這個問題。
準(zhǔn)備
- 一個已經(jīng)備案的域名
- 一臺有Nginx的服務(wù)器
- ssl證書(不開啟HTTPS可以忽略)
-
添加子域名尤勋。比如你注冊的域名是qiandu.com喘落,可以自己設(shè)置多個二級子域名比如m.qiandu.com,api.qiandu.com等等最冰。以阿里云解析為例
記錄值選擇A,主機記錄直接填寫二級域名就行,比如二級域名是m.qiandu.com,只要填寫m就行瘦棋。記錄值就是服務(wù)器ip了,然后確定就可以了暖哨。添加了域名后赌朋,可以去下載一個免費的ssl證書。 配置ssl證書篇裁。(不適用HTTPS可以跳過)把從阿里云下載的證書放到服務(wù)器上沛慢,一邊都放在Nginx配置文件的目錄中,比如
/etc/nginx
,在這個目錄中新建一個目錄,比如ssl
,然后把證書放到這里达布。注意团甲,一定要有可讀權(quán)限配置Nginx。根據(jù)自己的具體情況黍聂,進入Nginx的配置文件目錄躺苦,一般是
/etc/nginx
。一般會有一個conf.d
目錄或者vhost
目錄,什么名無所謂,只要是沒有被占用的就行,然后編輯nginx.conf
,在http
節(jié)點中添加include /etc/nginx/conf.d/*.conf;
在conf.d目錄中添加一個配置文件,為了方便區(qū)分,一般都以域名作為文件名,比如域名為m.qiandu.com产还,新建m.qiandu.com.conf
匹厘。然后添加配置信息
server
{
listen 80;
server_name m.qiandu.com;
index index.html index.htm index.php default.html default.htm default.php;
root /home/www/m.qiandu.com;
include php.conf;
include rewrite/thinkphp.conf;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /.well-known {
allow all;
}
location ~ /\.
{
deny all;
}
access_log off;
}
server
{
listen 443 ssl http2;
#listen [::]:443 ssl http2;
server_name m.qiandu.com;
index index.html index.htm index.php default.html default.htm default.php;
root /home/www/m.qiandu.com;
ssl on;
ssl_certificate /etc/nginx/ssl/m.qiandu.com.pem;
ssl_certificate_key /etc/nginx/ssl/m.qiandu.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
include php.conf;
include rewrite/thinkphp.conf;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /.well-known {
allow all;
}
location ~ /\.
{
deny all;
}
access_log off;
}
第一個server是HTTP的配置,第二個是HTTPS的配置。
server_name m.qiandu.com;
是匹配的域名,只有當(dāng)域名是m.qiandu.com 訪問時,才會響應(yīng).
root /home/www/m.qiandu.com;
是網(wǎng)站文件的的目錄,注意,Nginx對這個目錄有讀寫權(quán)限
include是引入別的配置信息,我用的php,就引入了php的配置信息,還有重寫配置雕沉。這個根據(jù)需要選擇配置
php.conf
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
有一些location
是針對靜態(tài)文件的訪問控制集乔。
配置完,保存坡椒。
service nginx restart
重啟服務(wù)器,訪問以下試試
總結(jié)
以上是Nginx虛擬主機的配置方法,只要你服務(wù)器能負載,可以配置多個站點,方法一樣,添加配置文件就行
其實所有的配置文件都可以寫在nginx.conf文件中,但是為了方便閱讀和修改,一般都是寫在多個文件中,通過include引入