Linux中Nginx服務器的部署和配置

目錄php

Nginx安裝方式:html

yum源安裝mysql

目錄結構:nginx

源碼包安裝c++

目錄結構:sql

Nginx中支持PHP數據庫

Nginx中配置php對mysql數據庫的支持後端

Nginx配置反向代理服務器centos

正常代理服務器

根據不一樣端口進行轉發 

負載均衡 

本地轉發代理(基於不一樣後綴) 


Nginx是一個高性能的HTTP和反向代理服務器,該程序由俄羅斯Rambler.ru 站點開發,Nginx由於性能穩定、低系統資源消耗而聞名。默認監聽端口: tcp / 80

nginx安裝包官網下載地址http://nginx.org/en/download.html

Nginx安裝方式:

yum源安裝

yum安裝會比源碼包編譯安裝簡單的多,默認會安裝許多模塊,但缺點是若是之後想安裝第三方模塊那就沒辦法了。

可是默認的 yum 源不少都沒有nginx包的,想安裝nginx,咱們能夠在 /etc/yum.repos.d/ 下新建一個 nginx.repo 文件,而後加入下面的內容 (Redhat 7 和 Centos 7 中適用)

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

//若是是Centos6的系統,把baseurl中的7換成6便可

而後  yum  -y  install  nginx   安裝便可。

目錄結構:

程序可執行文件: /usr/sbin/nginx
主要配置文件:   /etc/nginx/conf.d/default.conf
網頁主頁目錄:/usr/share/nginx/html/
日誌文件目錄:/var/log/nginx/
控制服務: systemctl   start / stop / restart  / status        nginx

訪問服務器,若是看到下面頁面,說明nginx服務器搭建完成!

源碼包安裝

  • 源碼安裝以前先安裝編譯工具: yum  -y  install  gcc  gcc-c++  make
  • 源碼安裝包含三個源碼包:   nginx程序主包:nginx-xxx            nginx程序依賴包 :pcre-xxx 和  zlib-xxx                            百度雲網盤連接:連接: https://pan.baidu.com/s/17msvtirIlbL2vXJaU-cp7Q   提取碼: nq7w
  • 解壓,而後分別進入三個解壓目錄, ./configure   編譯, make && make install  安裝便可

目錄結構:

安裝完成後,nignx默認安裝在  /usr/local/  目錄下
程序可執行文件: /usr/local/nginx/sbin/nginx
配置文件:  /usr/local/nginx/conf/nginx.conf
網頁主頁目錄:/usr/loca/nginx/html/
日誌文件目錄:/usr/local/nginx/log/

可是,當你去 /usr/local/nginx/sbin/ 下執行  ./nginx  命令運行程序時,有可能會報錯

[root@Centos sbin]# ./nginx 
./nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

報這個錯是由於咱們的 libpcre 的相關庫文件在  /usr/loca/lib/  下,而nginx默認讀的是 /lib64/  下的。因此,咱們只須要添加一個軟連接便可解決:  ln   -s   /usr/local/lib/libpcre.*    /lib64/

解決了上面的問題,咱們就能夠直接啓動nignx了:咱們可使用這個命令啓動nginx : /usr/local/nginx/sbin/nginx  ,也能夠去 /usr/local/nginx/sbin/   目錄下直接 nginx 啓動。可是這樣未免太麻煩了。因而,咱們也能夠建立一個軟連接: ln  -s    /usr/local/nginx/sbin/nginx     /usr/sbin/nginx       ,這樣,不管咱們到了哪一個位置,均可以直接 nginx 啓動。而後中止的話,能夠用   nginx  -s  stop

Nginx中支持PHP

ningx中支持php的包爲 php-fpm (php fastcgi process manager) , PHP-FPM提供了更好的PHP進程管理方式,能夠有效控制內存和進程、能夠平滑重載PHP配置。

安裝php-fpm:  yum  -y install  php-fpm

而後修改nginx配置文件: /etc/nginx/conf.d/default.conf

location / {                                             //默認全部形式的後綴都由這裏處理                               
        root   /usr/share/nginx/html;                    //主頁目錄
        index   index.php index.html index.htm;         //在這裏加上 index.php
   }

// 把下面這幾行的註釋給取消,而後修改
location ~ \.php$ {                                  //將後綴爲 .php 的由這裏處理
        root           /usr/share/nginx/html;        //主頁目錄
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;   //這裏須要修改
        include        fastcgi_params;
    }

修改完nginx配置文件後,開啓php-fpm: systemctl  start  php-fpm  
而後讓nginx從新加載配置文件:    nginx    -s  reload

php的配置文件: /etc/php.ini    是用來控制php解析器

/etc/php-fpm.conf是控制php-fpm守護進程的

Nginx中配置php對mysql數據庫的支持

yum  -y  install  php-mysql

Nginx配置反向代理服務器

正常代理

將外界客戶端發來的請求,轉發給真正提供服務的服務器。

修改nginx配置文件:/etc/nginx/nginx.conf   ,在最後的 http{   } 中加入如下內容

// 下面這些代碼的意思是將本機80號端口接受來的消息轉發給 192.168.10.10 的 80 號端口
upstream www.xie.com{                          //這裏的域名隨便填,可是要和下面的對應
        server 192.168.10.10:80;            //真正提供服務的服務器的ip地址和端口
    }   
server{
listen  80;                                  // 監聽80號端口發過來的消息
location  /{
         proxy_pass http://www.xie.com;
         index  index.html index.php;
         }   
}

根據不一樣端口進行轉發 

 

//這些代碼的意思是將80端口接收到的信息轉發給 192.168.10.10的80端口,而將接受到的 8080端口的信息轉發給 192.168.10.20的8080端口
upstream www.xie.com{
        server 192.168.10.10:80;
 }

upstream www.xie2.com{
        server 192.168.10.20:8080;
 }

server{
listen 80;
location /{
    proxy_pass http://www.xie.com;
    index  index.html index.php;
         }
}

server{
listen 8080;
location /{
    proxy_pass http://www.xie2.com;
    index  index.html index.jsp;
        }
}

負載均衡 

1:輪詢:每一個請求按時間順序逐一分配到不一樣的後端服務器,若是後端服務器down掉,能自動剔除
upstream www.xie.com{
        server 192.168.10.10:80;
        server 192.168.10.20:80;
    }
server{
listen 80;
location /{
  proxy_pass http://www.xie.com;
  index  index.html index.php index.jsp;
  }
}

2:ip_hash:每一個請求按訪問ip的hash結果分配,這樣每一個訪客固定訪問一個後端服務器,能夠解決session的問題。
upstream www.xie.com{
        ip_hash;
        server 192.168.10.10:80;
        server 192.168.10.20:80;
    }
server{
listen 80;
location /{
  proxy_pass http://www.xie.com;
  index  index.html index.php index.jsp;
  }
}

3:weight:指定輪詢概率,weight和訪問比率成正比,用於後端服務器性能不均的狀況。
upstream www.xie.com{
        server 192.168.10.10:80 weight=10;
        server 192.168.10.20:80 weight=20;
    }
server{
listen 80;
location /{
  proxy_pass http://www.xie.com;
  index  index.html index.php index.jsp;
  }
}

4: fair : 按後端服務器的響應時間來分配請求,響應短的服務器優先分配
upstream www.xie.com{
        server 192.168.10.10:80 weight=10;
        server 192.168.10.20:80 weight=20;
        fair;
    }
server{
listen 80;
location /{
  proxy_pass http://www.xie.com;
  index  index.html index.php index.jsp;
  }
}

本地轉發代理(基於不一樣後綴) 

以上的反向代理的工做原理,都是根據監聽不一樣端口,而後將流量轉發到真正服務器的不一樣端口。

還有一種反向代理是監聽80端口,而後根據請求的頁面的不一樣後綴(.php / .jsp / 等等),來轉發給不一樣的端口進行解析。

server {
    listen       80;
    server_name  localhost;
    location / {
        root   /usr/share/nginx/html;
        index  index.php index.html index.htm;
    }
   
    location ~ \.php$ {              //當請求的後綴是以 .php結尾的話,將流量轉發給本地的800端口
        proxy_pass   http://127.0.0.1:800;
    }
    location ~ \.jsp$ {            //當請求的後綴是以 .jsp結尾的話,將流量轉發給本地的8080端口
        proxy_pass   http://127.0.0.1:8080;
    }
    location ~ \.(jpg|png)$ {     //當請求的後綴是以 .jpg或.png 結尾的話,則請求 /img 目錄下
       root  /img;
    }
}

 

相關文章: Linux下Apache服務的部署和配置

                   Linux中Tomcat和Jboss的安裝和部署

                   LNMP環境搭建Wordpress博客

相關文章
相關標籤/搜索