使用nginx在一台伺服器部署多個Web Server

來源:互聯網
上載者:User
這篇文章主要介紹了關於使用nginx在一台伺服器部署多個Web Server,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

最近搗鼓了不少時間,起初想到要弄這個就是因為 node 直接起 server 的方式有點暴力,因為佔用了 80 連接埠就是真的佔用了,很難在用一個 80 連接埠掛多個 WebServer。你只能掛載在多個連接埠上,訪問起來後面還得加個連接埠,太醜了,所以摸索了一下,用 Nginx 配置了一個多服務結構。這樣就能通過不同的子網域名稱來訪問不同的應用了!

大致的結構

本質上就是 nginx 負責轉寄進來的請求,那麼轉寄的依據就是判斷不同的子網域名稱

STEP 1 Install Nginx

第一步當然是安裝 nginx,各個平台不太一樣,也沒法分享了。我自己的 ubuntu 的環境

apt-get isntall nginx

STEP 2 Set DNS AND PORT

去你的網域名稱管理商那裡分配你想要的子網域名稱,當然都是 A 記錄並全部解析到你的 VPS 公網 IP 上.

另外一個準備就是修改你所有的 NodeWebServer 的連接埠,可以按你的愛好設定,但是不要佔用 80 以及 443 連接埠

STEP 3 nginx config Node.js

切換到你的nginx 配置目錄

我的目錄位置

/etc/nginx/

這裡要說明 nginx 是擁有 Include 機制的,他會自動載入 conf.d 目錄下的所有 _.conf_(預設配置下) ,所以我們並不需要修改 nginx.conf 檔案。我們接下來需要在 conf.d 目錄下建立一系列的設定檔,檔案名稱請使用你相應的工程名,比如 project1.conf

如果沒有請手動加入

        include /etc/nginx/conf.d/*.conf;        # include /etc/nginx/sites-enabled/*; // 最好給他注釋了 預設頁面沒啥用

開始編寫項目配置

cd conf.d

touch project1.conf

vim project1.conf

讓我們編寫詳細的轉寄規則

// 這是一個NODE Web Server// 我已經將這個服務的連接埠改成了8000連接埠// 當nginx捕獲到訪問網域名稱為api.yinode.tech的時候// 就會轉寄到本地的8000連接埠server{    server_name api.yinode.tech;    listen 80;    location / {        # proxy_http_version 1.1;        proxy_set_header Connection "";        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_set_header Host $http_host;        proxy_set_header X-NginX-Proxy true;        proxy_pass http://127.0.0.1:8000$request_uri;        proxy_redirect off;    }}

如果你需要轉寄 HTTPS,請複製一份上面的內容粘貼到下面,修改監聽連接埠為 443,轉送連接埠就是你監聽的 https 連接埠!

STEP 4 nginx config PHP

php 的轉寄設定會稍有一些不同,(預設你已經安裝好了 PHP)

server {  listen 80;  root /var/www/longqiyoutian/wordpress; // 你的根目錄  index index.php;  server_name dragon.yinode.tech;  error_page 404 /404.html;  location ~ \.php$ {    try_files $uri = 404;    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; // 你的fpm地址    fastcgi_index index.php;    include fastcgi_params;    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; // 必須填寫,注意順序  }}

逐個講解,首先我們的 Root 目錄會變的重要,Nginx 將會把這個目錄轉寄給 FPM 來跑 PHP 代碼,所以不要寫錯了,第二是後面的轉寄必須加上 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;這能引導 fpm 進行正確的地址拼接

TIPS:提醒

nginx 和 FPM 的預設啟動使用者都是 www-data,所以你的網站根目錄請務必修改所屬者為 www-data,並且不要將這個目錄放置到/root/ 下,會出現許可權問題,最好複製到/var/www 目錄下,並設定所屬者!

STEP 5 Repeat

重複 3 4 步驟,建立所有你需要的項目配置

STEP 6 Restart nginx

service nginx restart

如果出現報錯,仔細查看資訊,去網上找,一般都是因為設定檔格式錯誤。

STEP 7 Run

開啟你的網站吧,應該可以正常運行了!以後新增 Server 其實也只要增加一個對應的 conf 檔案,可以很方便的橫向擴充,並且整個網站訪問起來也會比較美觀!

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.