Nginx中虛擬主機(jī)與指定訪問(wèn)路徑的設(shè)置方法講解
添加多個(gè)虛擬主機(jī)
最近在ubuntu上搗騰nginx,安裝成功了,就只有rewrite沒(méi)有試驗(yàn),因?yàn)榉?wù)器上有多個(gè)網(wǎng)站,還不敢在服務(wù)器上嘗試,慢慢來(lái)。網(wǎng)上查了一些文章,下了一篇留下來(lái)做試驗(yàn)。
nginx上虛擬主機(jī)的配置其實(shí)跟apache上的基本上類似。
需要注意的幾點(diǎn)是:
第一、關(guān)于.htaccess配置,也就是為靜態(tài)配置,在nginx上一般你要寫在虛擬主機(jī)的配置文本中,但是我也有看到用包含文件解決這個(gè)問(wèn)題的,即在虛擬主機(jī)配置腳本上include .htaccess文件,不過(guò)沒(méi)有沒(méi)有試過(guò)。
第二、計(jì)劃好用何種方式運(yùn)行php,fastcgi?我并不認(rèn)為在網(wǎng)上流傳的這種辦法是一個(gè)好辦法,相反我認(rèn)為作為一個(gè)出色的反向代理服務(wù)器應(yīng)該發(fā)揮其反向代理的優(yōu)勢(shì),所以執(zhí)行php的方式上請(qǐng)先斟酌好。
好了,回到正題上。
觀察一下nginx的目錄結(jié)構(gòu),大概你已經(jīng)知道該怎么做了,跟apache的虛擬主機(jī)配置基本類似。
在/etc/nginx/sites-available上新建一個(gè)文件,比如叫www.dhdzp.com吧
然后
vi www.dhdzp.com
加入文件內(nèi)容如下:
server
{
listen [::]:80;
server_name www.dhdzp.com jb51.net;
root /var/www/jb51.net;
index index.html index.htm index.php;
include /etc/nginx/common.conf;
location /nginx_status
{
stub_status on;
access_log off;
allow all;
}
}
簡(jiǎn)單的解釋一下:
listen就是監(jiān)聽(tīng)端口,不必多說(shuō);
server_name要多說(shuō)幾句,因?yàn)槟憧赡芟氲搅藄erver_alias,其實(shí)在nginx中第一個(gè)就是server_name,后面的就是server_alias,所以在nginx中server alias name別名是不用另外聲明的,這根apache有很大的區(qū)別,注意下。
index就是查找網(wǎng)頁(yè)的先后順序
include 是包含文件,www.dhdzp.com包含的文件是干啥用的呢?里面是指定php的運(yùn)行方式,文件緩存等,我不妨把我提示的配置貼一個(gè)上來(lái):
location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
expires max;
break;
}
location ~ .*\.php$ {
# fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}
if ( $fastcgi_script_name ~ \..*\/.*php ) {
return 403;
}
最后 location /nginx_status相當(dāng)與apache的server-status,就不多少說(shuō)了。
location /nginx_status
{
stub_status on;
access_log off;
allow all;
}
然后第二步,建立軟連接到sites-enable里面去
ln -s /etc/nginx/sites-available/www.dhdzp.com /etc/nginx/sites-enabled/www.dhdzp.com
你是否需要檢查一下配置語(yǔ)法是不是正確呢?
檢查一下:
/etc/init.d/nginx configtest Testing nginx configuration: nginx.
沒(méi)有返回錯(cuò)誤,重啟nginx就可以了。
/etc/init.d/nginx restart
指定訪問(wèn)路徑
niginx 似乎沒(méi)有虛擬目錄的說(shuō)法,但是可以指定請(qǐng)求路徑時(shí)nginx訪問(wèn)的路徑,也算是一個(gè)解決辦法。
server {
listen 80 default;
server_name _;
location / {
root html;
index 403.html;
}
location ~ //.ht {
deny all;
}
location /phpadmin/ {
alias /opt/www/phpadmin/;
index index.php;
}
location ~ /.php$ {
include httpd.conf;
}
}
要注意的是, location /phpadmin/ {} 和 location /phpadmin {} 是完全不同的。
前者可以訪問(wèn)到目錄,而后者將被重定向到服務(wù)器,如: http://127.0.0.1/phpadmin ,將被重定向到 http://_/phpadmin
下面這個(gè)配置和上面基本類似,唯一的不同是,所有對(duì) /phpadmin/的訪問(wèn)將正確解析,而其他訪問(wèn)則返回頁(yè)面不存在(404)的信息。
server {
listen 80 default;
server_name _;
location / {
root html;
#index 403.html;
return 404;
}
location ~ //.ht {
deny all;
}
location /phpadmin/ {
alias /opt/www/phpadmin/;
index index.php;
}
location ~ /.php$ {
include httpd.conf;
}
}
相關(guān)文章
Nginx配置實(shí)現(xiàn)用IP灰度測(cè)試(不同用戶ID)
本文主要介紹了使用Nginx配置實(shí)現(xiàn)基于IP的灰度發(fā)布實(shí)驗(yàn),以及如何通過(guò)不同用戶ID測(cè)試灰度發(fā)布,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11
SpringBoot前端后端分離之Nginx服務(wù)器下載安裝過(guò)程
Nginx是一款輕量級(jí)的Web服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,這篇文章主要介紹了SpringBoot前端后端分離之Nginx服務(wù)器,需要的朋友可以參考下2022-08-08
使用log_format為Nginx服務(wù)器設(shè)置更詳細(xì)的日志格式方法
下面小編就為大家分享一篇使用log_format為Nginx服務(wù)器設(shè)置更詳細(xì)的日志格式方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
解決Nginx配置靜態(tài)資源文件404 Not Found問(wèn)題
在使用Nginx作為靜態(tài)資源服務(wù)器時(shí),如果配置了根目錄root導(dǎo)致404錯(cuò)誤,而使用前綴URL配置alias則需要正確處理目錄路徑,使用alias時(shí)要確保目錄名后加‘/’,并且在需要時(shí)使用root和alias配置,本文介紹Nginx配置靜態(tài)資源文件404 Not Found問(wèn)題解決方法,感興趣的朋友一起看看吧2025-03-03
通過(guò)Nginx定義Header頭信息的實(shí)現(xiàn)步驟
本文主要介紹了通過(guò)Nginx定義Header頭信息的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
nginx使用ssl模塊配置支持HTTPS訪問(wèn)的方法
這篇文章主要介紹了nginx使用ssl模塊配置支持HTTPS訪問(wèn)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06

