Nginx的安裝和多域名配置的實現(xiàn)方法
Nginx安裝
centos6.x yum默認沒有nginx的軟件包
安裝方式:
到nginx下載頁面http://nginx.org/en/linux_packages.html#stable,復(fù)制CENTOS 6的nginx軟件源安裝包
運行命令:wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
安裝rpm包 yum install nginx-release-centos-6-0.el6.ngx.noarch.rpm -y , 此步實際只是加入了nginx的軟件包源
執(zhí)行 yum install nginx -y 就可以安裝好nginx了。
nginx默認安裝為Linux的服務(wù) ,所以可以使用service nginx start, stop, restart, try-restart, reload, force-reload, status來操作nginx。
Nginx配置文件
nginx的配置文件默認讀取/etc/nginx/nginx.conf文件。
當(dāng)然也可以修改使用的conf路徑,使用命令:
./nginx -c 你的conf文件位置
可以相對路徑或者絕對路徑。
如果是不熟悉環(huán)境的Linux服務(wù)器,可以使用命令來快速查找nginx.conf文件 :
sudo find / -name "nginx.conf"
也可以使用命令
sudo nginx -t
來輸出正在使用的配置文件:
nginx: the configuration file /data/nginx/conf/nginx.conf syntax is ok nginx: configuration file /data/nginx/conf/nginx.conf test is successful
nginx的配置都是由 directives組成,directives由簡單指令或者區(qū)塊指令組成
簡單指令:listen 80;
區(qū)塊指令由{}包含,區(qū)塊指令又可以包含多個簡單指令和區(qū)塊指令:
http {
server {
}
}
多域名配置
我們都知道如果在域名管理的控制面板設(shè)置域名對應(yīng)ip只能設(shè)置到ip,不能詳細設(shè)置到端口。如果一臺服務(wù)器部署了多個web應(yīng)用,使用的不同端口啟動的,那么就可以Nginx做映射。
比如我有一個域名 www.525.life。
域名還可以分出2級域名: admin.525.life。
我在域名控制面板把這兩個域名都指向我的服務(wù)器公網(wǎng)ip 123.123.123.123。
這時候發(fā)現(xiàn)www.525.life和admin.525.life域名訪問都只是對應(yīng)到了 使用端口80的Web程序(默認的)。
如果我們要訪問81端口的應(yīng)用程序只能使用:
www.525.life:81或者admin.525.life:81。
但是這樣很不方便。我們要把端口去掉也能訪問就需要使用Nginx做映射。
我們期望www.525.life訪問8880端口,admin.525.life訪問8881端口。那么可以設(shè)置如下:
server
{
listen 80;
server_name www.525.life;
location / {
#....
proxy_pass http://localhost:8880;
}
##### other directive
}
server
{
listen 80;
server_name admin.525.life;
location / {
#....
proxy_pass http://localhost:8881;
}
##### other directive
}
這樣設(shè)置就可以了。把8880和8881都映射到80端口的監(jiān)聽。
使用重載命令使nginx生效:
sudo nginx -s reload
使用命令重啟nginx生效:
/etc/init.d/nginx restart
這樣就能使用www.525.life訪問8880端口,admin.525.life訪問8881端口。
每個域名一個conf的寫法
我們在上面的例子中使用的是一個文件多個域名的寫法,也就是只使用一個conf,在里面不斷的增加server。這種方式很直觀,但是域名多了不好管理。
Nginx支持引入的用法,也就是我們可以在其他地方先新建好conf文件,conf文件中記錄server的信息如下:
admin.conf中的內(nèi)容是:
server
{
listen 80;
server_name admin.525.life;
location / {
#....
proxy_pass http://localhost:8881;
}
##### other directive
}
www.conf中的內(nèi)容是:
server
{
listen 80;
server_name www.525.life;
location / {
#....
proxy_pass http://localhost:8880;
}
##### other directive
}
admin.conf和www.conf都放在/data/nginx/conf/vhost目錄下。
然后在nginx.conf中使用引入命令:
include /data/nginx/conf/vhost/*.conf;
即可。
需要注意的是這句命令應(yīng)該放在
http{
}
的花括號內(nèi)。
因為include的命令引入相當(dāng)于被引入的所有代碼寫在nginx.conf中一樣。
301跳轉(zhuǎn)
我們留意到生活中很多時候不帶www也能訪問到某個網(wǎng)站,這也能通過Nginx實現(xiàn)。跟上面的配置一樣,再增加一個server如下:
server
{
listen 80;
server_name 525.life;
location / {
#....
proxy_pass http://localhost:8880;
}
##### other directive
}
或者進行301跳轉(zhuǎn)
server
{
listen 80;
server_name 525.life;
rewrite ^/(.*) http://www.525.life/$1 permanent;
}
添加404網(wǎng)頁
添加404網(wǎng)頁,都可又直接在里面添加,如:
server
{
listen 80;
server_name www.web126.com; #綁定域名
error_page 404 /404.html;
}
禁止IP直接訪問
最后還有一個方法需要注意,可能有需要禁止IP直接訪問80端口或者禁止非本站的域名綁定我們的IP,這樣的話應(yīng)該
如下處理,放到最前一個server上面即可:
server{
listen 80 default;
server_name _;
return 403;
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持本站。
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信