溫馨提示×

溫馨提示×

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

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

nginx反向代理二級域名怎么綁定

發(fā)布時間:2022-04-27 14:21:58 來源:億速云 閱讀:116 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“nginx反向代理二級域名怎么綁定”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“nginx反向代理二級域名怎么綁定”吧!

1、應(yīng)用場景

  我們經(jīng)常會遇到在同一臺服務(wù)器建立多個web站點的情況,普遍的做法是為不同的站點配置不同的端口,這樣就可以用ip:port的形式訪問。

  但是用ip訪問畢竟不方便,不生動,不容易記憶。那么,我們可以給每個站點綁定不同的域名。(在這里我們僅談公網(wǎng)情況)即使我們只有一個域名,我們可以設(shè)置多個二級域名,使用nginx很容易實現(xiàn)。

2、基本要求

  通常,網(wǎng)上教程會直接貼一段配置文件的代碼,告訴我們?nèi)绱诉@般就ok了。但我發(fā)現(xiàn)很多新手看著教程配置,并不能像博主那樣就success了,所以接下來我們談一下基本原理。

  首先,要有一個自己能管理的域名,比如我有一個 postmsg.cn 的域名,就可以生出多個子域名,二世三世千萬世……

  其次,有一臺能訪問的公網(wǎng)服務(wù)器,可以在這臺服務(wù)器上建立自己的web站點,一個兩個三四個,對應(yīng)端口不一。

  然后,就是域名和站點的綁定,一個蘿卜一個坑,當然也可以多個蘿卜一個坑……

3、一般配置

  需要配置的地方有兩個,我們先談首要先決條件,也是有些新手容易忽略的地方。

 ?。?)域名配置

    把域名的a記錄解析指向我們的公網(wǎng)服務(wù)器,這一點一般人都能想到。解析的時候只能加ip,是不能帶端口號的,即只能使用默認的80端口。(不討論域名轉(zhuǎn)發(fā))

    若想實現(xiàn)子域名綁定,在域名解析的時候必須配置合理。否則只靠nginx是不行的。

    例如我要把子域名  p.postmsg.cn 綁定到 服務(wù)器的 8001端口,我首先要保證訪問 p.postmsg.cn 的請求能到達該服務(wù)器,然后nginx才能處理。

    此時,要么在域名a記錄解析里加一條 p 的主機記錄,要么主機記錄里有通配符 * 的配置(*.postmsg.cn的訪問全部解析到對應(yīng)的服務(wù)器,慎用),只設(shè)置@和www肯定是不行的。

nginx反向代理二級域名怎么綁定

                        圖1 - 域名解析示例

 ?。?)主機配置

    域名的請求到達主機之后,一切才可以交給nginx來處理。

    修改nginx配置的時候,可以直接在默認配置文件(例如/etc/nginx/nginx.conf,如以下代碼片段所示)里修改,也可以在某個目錄下新建獨立的配置文件,然后 include 這個目錄下的配置文件(如第17行所示)。

http {
  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
           '$status $body_bytes_sent "$http_referer" '
           '"$http_user_agent" "$http_x_forwarded_for"';
  access_log /var/log/nginx/access.log main;
  sendfile      on;
  tcp_nopush     on;
  tcp_nodelay     on;
  keepalive_timeout  65;
  types_hash_max_size 2048;
  include       /etc/nginx/mime.types;
  default_type    application/octet-stream;
  include /etc/nginx/conf.d/*.conf;
}

  這是nginx讀取配置文件的格式,我們的配置通常寫在 http { } 塊里,加上 server 塊,在server塊里配置。剛才也說了,server塊可以寫在一個單獨文件里,在nginx.conf里包含該文件,同時,支持嵌套 include。

  接下來看一下 server 塊的寫法:

server {
  listen 80;
  server_name p.postmsg.cn;
  location / {
  proxy_pass http://127.0.0.1:8008;
    proxy_redirect off;
    proxy_set_header host $host;
    proxy_set_header x-real-ip $remote_addr;
    proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
  }
  #access_log logs/p_access.log;
}

  這里的 server_name 對應(yīng)配置的域名,proxy_pass對應(yīng)代理的真實地址。

 ?。?)注意事項一

    一定要把 80 端口留給負責代理的nginx。我們可以在一個服務(wù)器上同時使用apache httpd,nginx,tomcat,但是域名解析只能使用默認的80端口,負責代理的同志要拿到第一手請求。

 ?。?)注意事項二

    即時生效性。有的朋友感覺自己配置的都對,也重啟服務(wù)了,可就是看不到想要的結(jié)果。這里有三個方面的可能因素。

  1.     域名解析生效時間。阿里云的域名最低生效時間是10分鐘,有時候可能大于這個值。

  2.     本地dns緩存。可在cmd使用 ipconfig /flushdns 命令刷新本地dns緩存。

  3.     瀏覽器緩存。這個可能才是最不容易發(fā)現(xiàn)的,尤其是谷歌瀏覽器。f12之后,右鍵左上角地址欄邊上的刷新按鈕,點擊清空緩存并硬性重新加載。

  4.     服務(wù)未重啟。service nginx restart 有時候可能沒有先 stop, 再 start 好用。

到此,相信大家對“nginx反向代理二級域名怎么綁定”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細節(jié)

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

AI