溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Nginx的安裝和多域名配置

發(fā)布時(shí)間:2021-06-03 17:29:05 來源:億速云 閱讀:125 作者:Leah 欄目:服務(wù)器

Nginx的安裝和多域名配置?針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

Nginx安裝

centos6.x yum默認(rèn)沒有nginx的軟件包

安裝方式:

到nginx下載頁面http://nginx.org/en/linux_packages.html#stable,復(fù)制CENTOS 6的nginx軟件源安裝包

運(yùn)行命令: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 , 此步實(shí)際只是加入了nginx的軟件包源

執(zhí)行 yum install nginx -y 就可以安裝好nginx了。

nginx默認(rèn)安裝為Linux的服務(wù) ,所以可以使用service nginx start, stop, restart, try-restart, reload, force-reload, status來操作nginx。

Nginx配置文件

nginx的配置文件默認(rèn)讀取/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ū)塊指令又可以包含多個(gè)簡單指令和區(qū)塊指令:

http {
 server {
 }
}

多域名配置

我們都知道如果在域名管理的控制面板設(shè)置域名對應(yīng)ip只能設(shè)置到ip,不能詳細(xì)設(shè)置到端口。如果一臺服務(wù)器部署了多個(gè)web應(yīng)用,使用的不同端口啟動(dòng)的,那么就可以Nginx做映射。

比如我有一個(gè)域名 www.525.life。

域名還可以分出2級域名: admin.525.life。

我在域名控制面板把這兩個(gè)域名都指向我的服務(wù)器公網(wǎng)ip 123.123.123.123。

這時(shí)候發(fā)現(xiàn)www.525.life和admin.525.life域名訪問都只是對應(yīng)到了 使用端口80的Web程序(默認(rèn)的)。

如果我們要訪問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端口。

每個(gè)域名一個(gè)conf的寫法

我們在上面的例子中使用的是一個(gè)文件多個(gè)域名的寫法,也就是只使用一個(gè)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)。

因?yàn)閕nclude的命令引入相當(dāng)于被引入的所有代碼寫在nginx.conf中一樣。

301跳轉(zhuǎn)

我們留意到生活中很多時(shí)候不帶www也能訪問到某個(gè)網(wǎng)站,這也能通過Nginx實(shí)現(xiàn)。跟上面的配置一樣,再增加一個(gè)server如下:

server
{
 listen 80;
 server_name 525.life;
 location / {
  #....
   proxy_pass http://localhost:8880;
 }
 ##### other directive
}

或者進(jìn)行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直接訪問

最后還有一個(gè)方法需要注意,可能有需要禁止IP直接訪問80端口或者禁止非本站的域名綁定我們的IP,這樣的話應(yīng)該
如下處理,放到最前一個(gè)server上面即可:

server{
listen 80 default;
server_name _;
return 403;
}

關(guān)于Nginx的安裝和多域名配置問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI