Nginx中虛擬主機(jī)與指定訪問路徑的設(shè)置方法講解
添加多個虛擬主機(jī)
最近在ubuntu上搗騰nginx,安裝成功了,就只有rewrite沒有試驗,因為服務(wù)器上有多個網(wǎng)站,還不敢在服務(wù)器上嘗試,慢慢來。網(wǎng)上查了一些文章,下了一篇留下來做試驗。
nginx上虛擬主機(jī)的配置其實跟apache上的基本上類似。
需要注意的幾點(diǎn)是:
第一、關(guān)于.htaccess配置,也就是為靜態(tài)配置,在nginx上一般你要寫在虛擬主機(jī)的配置文本中,但是我也有看到用包含文件解決這個問題的,即在虛擬主機(jī)配置腳本上include .htaccess文件,不過沒有沒有試過。
第二、計劃好用何種方式運(yùn)行php,fastcgi?我并不認(rèn)為在網(wǎng)上流傳的這種辦法是一個好辦法,相反我認(rèn)為作為一個出色的反向代理服務(wù)器應(yīng)該發(fā)揮其反向代理的優(yōu)勢,所以執(zhí)行php的方式上請先斟酌好。
好了,回到正題上。
觀察一下nginx的目錄結(jié)構(gòu),大概你已經(jīng)知道該怎么做了,跟apache的虛擬主機(jī)配置基本類似。
在/etc/nginx/sites-available上新建一個文件,比如叫chabaoo.cn吧
然后
vi chabaoo.cn
加入文件內(nèi)容如下:
server { listen [::]:80; server_name chabaoo.cn 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; } }
簡單的解釋一下:
listen就是監(jiān)聽端口,不必多說;
server_name要多說幾句,因為你可能想到了server_alias,其實在nginx中第一個就是server_name,后面的就是server_alias,所以在nginx中server alias name別名是不用另外聲明的,這根apache有很大的區(qū)別,注意下。
index就是查找網(wǎng)頁的先后順序
include 是包含文件,chabaoo.cn包含的文件是干啥用的呢?里面是指定php的運(yùn)行方式,文件緩存等,我不妨把我提示的配置貼一個上來:
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,就不多少說了。
location /nginx_status { stub_status on; access_log off; allow all; }
然后第二步,建立軟連接到sites-enable里面去
ln -s /etc/nginx/sites-available/chabaoo.cn /etc/nginx/sites-enabled/chabaoo.cn
你是否需要檢查一下配置語法是不是正確呢?
檢查一下:
/etc/init.d/nginx configtest Testing nginx configuration: nginx.
沒有返回錯誤,重啟nginx就可以了。
/etc/init.d/nginx restart
指定訪問路徑
niginx 似乎沒有虛擬目錄的說法,但是可以指定請求路徑時nginx訪問的路徑,也算是一個解決辦法。
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ù)器,如: http://127.0.0.1/phpadmin ,將被重定向到 http://_/phpadmin
下面這個配置和上面基本類似,唯一的不同是,所有對 /phpadmin/的訪問將正確解析,而其他訪問則返回頁面不存在(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)文章
解決httpd占用80端口導(dǎo)致Nginx啟動失敗報錯的解決辦法
今天在建自己小網(wǎng)站時啟動Nginx時,發(fā)現(xiàn)其報下列錯誤,意思是因為80端口被占用導(dǎo)致Nginx啟動失敗,所以本文小編給大家介紹介紹如何解決解決httpd占用80端口導(dǎo)致Nginx啟動不成功報nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)2023-11-11Centos 6.5 64位中Nginx詳細(xì)安裝部署教程
Nginx是一個web服務(wù)器也可以用來做負(fù)載均衡及反向代理使用,目前使用最多的就是負(fù)載均衡,具體簡介我就不介紹了百度一下有很多,下面直接進(jìn)入安裝步驟,需要的朋友可以參考下2017-08-08nginx和Apache配置SSL證書的實現(xiàn)步驟
SSL證書是一種數(shù)字證書,用于加密在網(wǎng)絡(luò)上發(fā)送的數(shù)據(jù)并保護(hù)敏感信息的安全性,本文主要介紹了nginx和Apache配置SSL證書的實現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下2023-12-12Ubuntu使用nginx搭建webdav文件服務(wù)器的詳細(xì)過程
今天通過本文給大家分享Ubuntu使用nginx搭建webdav文件服務(wù)器的詳細(xì)過程,在這小編提示大家在安裝nginx時需要先安裝nginx-full,具體安裝方法跟隨小編一起通過本文學(xué)習(xí)下吧2021-05-05nginx快速部署一個網(wǎng)站服務(wù)(多域名+多端口)
本文主要介紹了nginx快速部署一個網(wǎng)站服務(wù),并實現(xiàn)多域名和多端口,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-10-10