站長資訊網
        最全最豐富的資訊網站

        Nginx安裝部署之反向代理配置與負載均衡

        Nginx 部署、反向代理配置、負載均衡

        最近我們的angular項目部署,我們采用的的是Nginx,下面對Nginx做一個簡單的介紹。

        為什么選擇Nginx

        • 輕:相比于Apache,同樣的web服務器占用的資源少
        • 多線程模式:Nginx擁有多個worker進程,處理請求時是異步非阻塞的
        • 社區活躍
        • 可以做反向代理
        • 支持7層負載均衡。什么是七層負載均衡
        • 配置簡單,易上手。這才是我們選擇的主要原因。

        上一個官方下載下來的文檔

        PDF幻燈片可以到Linux公社資源站下載:

        ——————————————分割線——————————————

        免費下載地址在 http://linux.linuxidc.com/

        用戶名與密碼都是www.linuxidc.com

        具體下載目錄在 /2019年資料/3月/22日/Nginx安裝部署之反向代理配置與負載均衡/

        下載方法見 http://www.linuxidc.com/Linux/2013-07/87684.htm

        ——————————————分割線——————————————

        Window下 的 Nginx

        雖然一般的服務器都不使用windows系統,我們還是先來一段window的

        • 訪問 ngix下載頁下載windows 版本的 ngix壓縮包
        • 解壓到相應的目錄下。
        • 打開CMD, cd到解壓ngix的目錄下,鍵入 start nginx.exe
        • 打開瀏覽器,輸入localhost/127.0.0.1
        • 上圖:

        Nginx安裝部署之反向代理配置與負載均衡

        • 常用命令:
        nginx -s stop                  #停止nginx  nginx -s reload                #重新加載nginx配置  nginx -s reopen                #重新啟動  nginx -s quit                  #退出nginx

        Linux(CentOS) 下的 Nginx

        下面是我們真正使用的Linux 下 搭建Nginx,演示時我使用的WM Ware創建的虛擬機。使用putty進行遠程連接。注:如果使用服務器操作的話,粘貼可就麻煩了,所以還是用遠程連接吧,能直接copy paste命令

        菜鳥教程的方法

        直接上鏈接。Nginx安裝

        官方文檔上的方法

        • cd 到 yum的資源目錄下
         cd  /etc/yum.repos.d/
        • 創建一個文件:nginx.repo,
        vi nginx.repo  # 內容  [nginx]  name=nginx repo  baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/  gpgcheck=0  enabled=1  # 文檔上的url是http://nginx.org/packages/mainline/OS/OSRELEASE/$basearch/  # 替換成你的 os 與 版本  # 保存退出
        • 鍵入如下一系列命令
        yum -y install nginx    # 安裝  systemctl enable nginx  #開機自啟  systemctl start nginx   #啟動nginx  firewall-cmd --permanent --zone=public --add-port=80/tcp #永久開啟80端口  firewall-cmd --reload   #重新加載防火墻
        • 下面我們回到物理機,測試一下虛擬機上的Nginx 服務是否安裝成功。在物理機打開瀏覽器,鍵入:虛擬機IP:80,上圖:

        Nginx安裝部署之反向代理配置與負載均衡

        • 常用命令與Windows相同。
        • 個人建議使用官方上的配置。

        說明Angular 項目的打包,并部署到虛擬機的Nginx

        • 在本地找了一個angular項目目錄下 ng-build,會生一個dist文件夾
        • 鍵入如下命令:nginx -t
        nginx -t #查看配置文件路徑  #結果  nginx: the configuration file /etc/nginx/nginx.conf syntax is ok  nginx: configuration file /etc/nginx/nginx.conf test is successful  
        #查看上述路徑的文件  user  nginx;  worker_processes  1;    error_log  /var/log/nginx/error.log warn;  pid        /var/run/nginx.pid;      events {      worker_connections  1024;  }      http {      include       /etc/nginx/mime.types;      default_type  application/octet-stream;        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;        keepalive_timeout  65;        #gzip  on;        include /etc/nginx/conf.d/*.conf;  }
        • 注意上面最后一句話包含conf.d文件夾下的所有.conf。我們再那個文件夾下找到了default.conf ,編輯default.conf
        server {      listen       80;      server_name  localhost;      location / {          #root   /usr/share/nginx/html;          root   /usr/share/nginx/html/dist/demo;          #更改成我們上傳的目錄一定要寫到有index.html那一級          index  index.html index.htm;      }      error_page   500 502 503 504  /50x.html;      location = /50x.html {          root   /usr/share/nginx/html;      }  }    
        • 重新載入Nginx配置
        nginx -s reload
        • 上對比圖

        Nginx安裝部署之反向代理配置與負載均衡

        配置一個簡單的反向代理

        前端需要調用后端的Rest API,我們需要將一部分請求配置反向代理。

        • 直接上conf配置
        server {      listen       80;      server_name  localhost;        location / {          root   /usr/share/nginx/html/dist/demo;          index  index.html index.htm;      }        error_page   500 502 503 504  /50x.html;      location = /50x.html {          root   /usr/share/nginx/html;      }          # 匹配到/proxy/這個url的時候代理到220.181.112.244 百度這個服務器      location ^~ /proxy/ {          proxy_set_header Host 220.181.112.244;          proxy_set_header X-Real-IP  220.181.112.244;          proxy_pass http://220.181.112.244/proxy/;          proxy_http_version 1.1;          proxy_set_header Connection "";      }  }
        • 在重新載入配置前,我們先嘗試一下,上圖:

        注:本地項目,沒有配置路由,所有會沒有proxy這個東西,會報404錯誤,我們可以通過查看當前404是哪個服務器包的錯,來判斷是否發生反向代理

        從圖中可以看出,此時沒有進行反向代理,在虛擬機的服務器上提示404

        Nginx安裝部署之反向代理配置與負載均衡

        注:這里說明一點,就是即便發生了法相貸,但是network中的顯示還是我的虛擬機的ip,所以不能當做是否發生反向代理的標注

        • 重新載入Nginx配置
        nginx -s reload
        • 刷新剛才的頁面,上圖:可以發現,已經代理到百度的錯誤頁面上去了。

        Nginx安裝部署之反向代理配置與負載均衡

        • 一個簡單的反向代理就配置好了。

          nginx 負載均衡

        注:20190220更新

        • 準備工作
        1.一臺虛擬機  2.虛擬機安裝docker
        • 如上面操作在虛擬機上搭載一個Nginx服務器
        • 使用docker 拉取nginx 鏡像
        docker pull nginx
        • 運行兩個nginx的容器
        docker run --name nginx-test-1 -d -p 8888:80 nginx /bin/bash  docker run --name nginx-test-2 -d -p 8889:80 nginx /bin/bash
        • 分別進入到兩個容器中,更改其中nginx web目下的index.html
        docker exec -it nginx-test-1 /bin/bash  內容改成 this is nginx1  docker exec -it nginx-test-2 /bin/bash  內容改成 this is nginx2
        • 退回到虛擬機中,更改虛擬機的nginx conf文件
        server{      location / {          root   /usr/share/nginx/html;          index  index.html index.htm;          proxy_pass http://balance;  #balance 是下面upstream后定義的名字      }  }  # 在server{}外面增加如下代碼  upstream balance {       server localhost:8888 weight=1;       server localhost:8889 weight=1;   }
        • 在本機訪問localhost
        curl localhost  #  會發現this is nginx1 、 this is nginx2交替出現

        下面關于Nginx的文章您也可能喜歡,不妨參考下:

        CentOS 7下Nginx服務器的安裝配置  http://www.0106606.com/Linux/2017-04/142986.htm
        CentOS上安裝Nginx服務器實現虛擬主機和域名重定向  http://www.0106606.com/Linux/2017-04/142642.htm
        CentOS 6.8 安裝LNMP環境(Linux+Nginx+MySQL+PHP)  http://www.0106606.com/Linux/2017-04/142880.htm
        Linux下安裝PHP環境并配置Nginx支持php-fpm模塊  http://www.0106606.com/Linux/2017-05/144333.htm
        Nginx服務的SSL認證和htpasswd認證  http://www.0106606.com/Linux/2017-04/142478.htm
        Ubuntu 16.04上啟用加密安全的Nginx Web服務器  http://www.0106606.com/Linux/2017-07/145522.htm
        Linux中安裝配置Nginx及參數詳解  http://www.0106606.com/Linux/2017-05/143853.htm
        Nginx日志過濾 使用ngx_log_if不記錄特定日志 http://www.0106606.com/Linux/2014-07/104686.htm
        CentOS 7.2下Nginx+PHP+MySQL+Memcache緩存服務器安裝配置  http://www.0106606.com/Linux/2017-03/142168.htm
        Nginx反向代理實現Tomcat負載均衡 http://www.0106606.com/Linux/2018-03/151223.htm

        Nginx的正向代理與反向代理詳解  http://www.0106606.com/Linux/2019-03/157360.htm

        Nginx搭建反向代理服務器 http://www.0106606.com/Linux/2018-03/151418.htm

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 18国产精品白浆在线观看免费 | 日本精品一区二区三区在线视频| 中文字幕精品无码一区二区三区 | 人妻一区二区三区无码精品一区| …久久精品99久久香蕉国产 | 亚洲精品国产品国语在线| 亚洲精品欧美日韩| 国产精品无码AV一区二区三区| 无码精品蜜桃一区二区三区WW| 国产精品成人观看视频网站| 国产精品无码一区二区三级| 亚洲国产精品无码久久久蜜芽| 久久97久久97精品免视看| 99久久精品国产一区二区| 精品视频一区二区三区免费| 精品欧洲AV无码一区二区男男| 在线精品亚洲| 午夜三级国产精品理论三级| 精品免费久久久久国产一区| 国产成人精品免费视频大全| 久久伊人精品青青草原高清| 国产成人精品免费视频大全麻豆 | 四虎永久在线精品免费一区二区 | 国产精品宾馆在线精品酒店| 久久99精品久久久久久hb无码 | 欧美亚洲色综久久精品国产| 亚洲国产精品无码久久九九| 精品国产91久久久久久久a | 国产亚洲精品资在线| 国产成人亚洲精品91专区手机| 欧美亚洲国产精品久久蜜芽| 国产精品爽黄69天堂a| 国产精品久久久久久久久鸭| 国产91久久精品一区二区| 福利姬在线精品观看| 国产精品一级香蕉一区| 久久97精品久久久久久久不卡| 久久免费国产精品一区二区| 亚洲日本精品一区二区| 国产99久久久国产精品~~牛| 国产精品自产拍高潮在线观看|