快速掌握Nginx(一) —— 安裝Nginx和簡單配置虛擬主機

Nginx安裝和簡單配置虛擬主機

1 Nginx簡介

  Nginx是近幾年最火熱的http、反向代理服務器,百度阿里等互聯網公司也都在使用Nginx,它也能夠用做郵件代理服務器、TCP/UDP代理服務器等。Nginx功能和Apache類似,其優勢主要在於如下幾點:html

①高併發響應性能好,官方nginx處理靜態文件並不是爲5w/s; ②反向代理性能好(可用於負載均衡); ③內存和cpu佔用率低(爲Apache的1/5~1/10)。

  Nginx是由內核和模塊組成,內核設計十分簡潔,實現的功能僅僅是:經過查找配置文件將客戶端請求映射到一個location block(loaction是nginx配置中的一個指令,用於url匹配),location中所配置的每一個指令都會啓動不一樣的模塊去完成相應的工做。nginx

2 Nginx安裝

  這裏咱們把Nginx安裝在Centos虛擬機上,安裝十分簡單,按照下邊的命令便可安裝成功(下載地址不是穩定的,按照需求更改wget後的下載連接 ,官方網址http://nginx.org/en/download.html):vim

#按裝一些工具,pcre用於支持rewrite yum install pcre-devel pcre -y yum -y install openssl openssl-devel #切換到root,下載並解壓 cd /usr/src wget -c http://120.52.51.15/nginx.org/download/nginx-1.14.2.tar.gz tar -xzf nginx-1.14.2.tar.gz cd nginx-1.14.2.tar.gz 
#查看配置 ./configure --help
#預編譯,設置用戶wyy1和組wyyy,編譯位置爲/usr/local/nginx ,添加兩個http相關模塊 ./configure --user=wyy1 --group=wyyy --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
#編譯並安裝 make &&make install

安裝完成後,轉到安裝目錄 cd /usr/local/nginx ,看到Nginx基本結構以下:瀏覽器

經過命令 /usr/local/nginx/sbin/nginx 就能夠啓動Nginx,Nginx的默認端口是80,咱們在電腦的瀏覽器中輸入虛擬機的IP,若是看到以下界面表示Nginx安裝成功了服務器

幾個Nginx經常使用的命令併發

###啓動nginx
/usr/local/nginx/sbin/nginx  #1.查看配置文件是否有錯誤
/usr/local/nginx/sbin/nginx -t
#2.信號量,-s表示signal #重讀配置文件 /usr/local/nginx/sbin/nginx -s reload #優雅中止nginx /usr/local/nginx/sbin/nginx -s quit #強制中止nginx /usr/local/nginx/sbin/nginx -s stop #重讀日誌文件,日誌切割時使用 /usr/local/nginx/sbin/nginx -s reopen ###其餘 #查看版本號 /usr/local/nginx/sbin/nginx -v #查看預編譯配置(安裝時預編譯的配置) /usr/local/nginx/sbin/nginx -V

 

3 簡單配置和添加虛擬主機

  爲了便於理解,咱們把 /usr/local/nginx/conf/nginx.conf 配置文件的內容替換爲以下內容,server節點下的listen爲監聽的端口,Nginx的默認端口是80;server_name是虛擬主機的名字;location表示當接收到一個請求後怎麼去映射:默認映射到 /usr/local/nginx/html/ 目錄下的index.html,index.htm文件。咱們經過 nginx -s reload 命令重啓Nginx服務器,再次訪問虛擬機IP仍然能夠跳轉到Nginx的歡迎界面。app

#最簡單的配置
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80;                    #端口
        server_name  localhost;             #主機名
        location / { root html; #項目根目錄
            index  index.html index.htm;    #起始頁
 } } }

  若是咱們要使用Nginx部署兩個網站,每一個網站都部署在一臺虛擬主機上,怎麼實現呢?負載均衡

  Nginx添加虛擬主機十分方便,nginx的配置文件中每個server都表示一個虛擬主機,若是咱們想添加一個虛擬主機的話,在配置文件中添加一個server節點,而後執行 /usr/local/nginx/sbin/nginx -s reload 從新加載配置便可。這裏咱們添加兩臺虛擬主機,配置以下:ide

#最簡單的配置
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; #default server
 server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } } #www.mysite1.com
 server { listen 80; server_name www.mysite1.com; location / { root /usr/local/nginx/html/mysite1/; index index.html index.htm; } } #www.mysite2.com
 server { listen 80; server_name www.mysite2.com; location / { root /usr/local/nginx/html/mysite2/; index index.html index.htm; } } }
View Code

  這裏咱們添加了兩臺虛擬主機www.mysite1.com和www.mysite2.com,www.mysite1.com主機對應的網站目錄爲 /usr/local/nginx/html/mysite1/ ,該目錄下有index.html文件,內容以下圖。mysite2也是同樣的結構。高併發

  在咱們的電腦上打開  C:\Windows\System32\drivers\etc 目錄,修改該目錄下的hosts文件,添加兩個DNS映射(簡單說明:添加DNS映射後,輸入www.mysite1.com就會被解析爲IP地址192.160.70.132。):

192.168.70.132 www.mysite1.com 192.168.70.132 www.mysite2.com

  而後打開瀏覽器訪問www.mysite1.com和www.mysite2.com,結果以下:

   咱們看到mysite1和mysite2均可以正常訪問,說明咱們的添加的虛擬主機能夠正常運行。可是這樣有一個問題,若是咱們部署了幾十個、甚至幾百個虛擬主機,那麼就要在nginx.conf中添加不少的server節點,若是咱們想修改其中某一個server節點,查找和修改起來就比較麻煩,並且也容易誤操做。咱們能夠給每一個虛擬主機配置一個配置文件,這樣修改某一個虛擬主機的配置就很方便了。

  針對上邊的栗子,首先咱們建立目錄 /usr/local/nginx/conf/vhosts ,這個目錄用於存放各個虛擬主機的配置,命令以下:

mkdir /usr/local/nginx/conf/vhosts; cd /usr/local/nginx/conf/vhosts; vim www.mysite1.com;

  咱們讓配置文件的名字和虛擬主機名一致,如www.mysite1.com虛擬主機的配置文件是 vhosts/www.mysite1.com文件,其內容以下:

#www.mysite1.com
 server { listen 80; server_name www.mysite1.com; location / { root /usr/local/nginx/html/mysite1/; index index.html index.htm; } }

  一樣www.mysite2.com虛擬主機的配置文件就是 vhosts/www.mysite2.com文件,其內容以下:

#www.mysite2.com
 server { listen 80; server_name www.mysite2.com; location / { root /usr/local/nginx/html/mysite2/; index index.html index.htm; } }

   /usr/local/nginx/conf/nginx.conf 配置文件的內容修改以下:

worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; #加載vhosts目錄下全部配置
include vhosts/* ;

  執行 /usr/local/nginx/sbin/nginx -s reload 命令重啓nginx,而後訪問www.mysite1.com和www.mysite2.com都可正常訪問。

4 Ngnix平滑升級

  最後補充一下Nginx的升級。若是咱們想將Ngnix升級到新版本,可是Nginx已經部署了不少的項目,怎麼才能升級Ngnix而不影響咱們之前部署的項目呢?這裏再也不多贅述,完整的升級命令以下:

### Nginx升級
pkill-9 ngnix ;
cd /usr/src; #①下載新版本 wget -c http://120.52.51.15/nginx.org/download/nginx-1.xx.xx.tar.gz #②獲取舊版本的配置 /usr/local/nginx/sbin/nginx -V #③解壓安裝包 tar -xzf nginx-1.xx.xx.tar.gz cd nginx-1.xx.x.tar.gz #④預編譯【必定要和舊版本的配置項一致】 ./configure --user=wyy1 --group=wyyy --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module #⑤編譯 make #⑥sbin的nginx替換成新版本的nginx mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old cp /usr/src/nginx-1.14.2/objs/nginx /usr/local/nginx/sbin/nginx

小結:這篇介紹Nginx在Centos上的安裝和最簡單的配置和添加虛擬主機,下一篇介紹location和rewrite部分。

相關文章
相關標籤/搜索