
什么是nginx
Nginx是一款高性能的http 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器。由俄羅斯的程序設(shè)計師Igor Sysoev所開發(fā),官方測試nginx能夠支支撐5萬并發(fā)連接(tomcat貌似最高支持1000并發(fā)),并且cpu、內(nèi)存等資源消耗卻非常低,運行非常穩(wěn)定。
應用場景
1.http服務器。Nginx是一個http服務可以獨立提供http服務。可以做網(wǎng)頁靜態(tài)服務器。
2.虛擬主機。可以實現(xiàn)在一臺服務器虛擬出多個網(wǎng)站。例如個人網(wǎng)站使用的虛擬主機。
3.反向代理,負載均衡。當網(wǎng)站的訪問量達到一定程度后,單臺服務器不能滿足用戶的請求時,需要用多臺服務器集群可以使用nginx做反向代理。并且多臺服務器可以平均分擔負載,不會因為某臺服務器負載高宕機而某臺服務器閑置的情況。
nginx安裝
去官網(wǎng)下載需要的版本
要求的安裝環(huán)境(linux環(huán)境下,Nginx提供的是源碼,并非可執(zhí)行文件,必須先編譯)
1.需要安裝gcc的環(huán)境。
命令:yum install gcc-c++
2.第三方的開發(fā)包。PCRE(Perl Compatible Regular Expressions)是一個Perl庫,包括 perl 兼容的正則表達式庫。nginx的http模塊使用pcre來解析正則表達式,所以需要在linux上安裝pcre庫。
命令:yum install -y pcre pcre-devel
注:pcre-devel是使用pcre開發(fā)的一個二次開發(fā)庫。nginx也需要此庫。
3.zlib庫提供了很多種壓縮和解壓縮的方式,nginx使用zlib對http包的內(nèi)容進行g(shù)zip,所以需要在linux上安裝zlib庫。
命令:yum install -y zlib zlib-devel
4.OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及SSL協(xié)議,并提供豐富的應用程序供測試或其它目的使用。nginx不僅支持http協(xié)議,還支持https(即在ssl協(xié)議上傳輸http),所以需要在linux安裝openssl庫。
命令:yum install -y openssl openssl-devel
安裝步驟
第一步:把nginx的源碼包上傳到linux系統(tǒng)
第二步:解壓縮
[root@localhost ~]# tar zxf nginx-1.8.0.tar.gz
第三步:使用configure命令創(chuàng)建一makeFile文件。
./configure
--prefix=/usr/local/nginx
--pid-path=/var/run/nginx/nginx.pid
--lock-path=/var/lock/nginx.lock
--error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log
--with-http_gzip_static_module
--http-client-body-temp-path=/var/temp/nginx/client
--http-proxy-temp-path=/var/temp/nginx/proxy
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi
--http-scgi-temp-path=/var/temp/nginx/scgi
第四步:make
第五步:make install

啟動nginx
進入sbin目錄
[root@localhost sbin]# ./nginx
注意:啟動nginx之前,上邊將臨時文件目錄指定為/var/temp/nginx,需要在/var下創(chuàng)建temp及nginx目錄
[root@localhost sbin]# mkdir /var/temp/nginx/client -p
關(guān)閉nginx:
[root@localhost sbin]# ./nginx -s stop
推薦使用:
[root@localhost sbin]# ./nginx -s quit
重啟nginx:
1.先關(guān)閉后啟動。
2.刷新配置文件:
[root@localhost sbin]# ./nginx -s reload
查看Nginx啟動狀態(tài)
[root@localhost sbin]# ps aux|grep nginx

訪問Nginx服務器

配置虛擬主機
可以用一些windows上安裝有sftb的編輯器實現(xiàn)連接虛擬主機,方便配置,我這里以nodepad++為例:

就是在一臺服務器啟動多個網(wǎng)站。
如何區(qū)分不同的網(wǎng)站:
1.域名不同
2.端口不同
通過端口區(qū)分不同虛擬機
Nginx的配置文件:
/usr/local/nginx/conf/nginx.conf
//一個server節(jié)點就是一個虛擬主機
Html是nginx安裝目錄下的html目錄
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
}
可以配置多個server,配置了多個虛擬主機。
添加虛擬主機:

重新加載配置文件
[root@localhost nginx]# sbin/nginx -s reload

通過域名區(qū)分虛擬主機
域名就是網(wǎng)站。
通過Tcp/ip,Dns服務器:把域名解析為ip地址。保存的就是域名和ip的映射關(guān)系
一級域名:
Baidu.com
Taobao.com
Jd.com
二級域名:
www.baidu.com
mage.baidu.com
Item.baidu.com
三級域名:
1.Image.baidu.com
Aaa.image.baidu.com
一個域名對應一個ip地址,一個ip地址可以被多個域名綁定。
本地測試可以修改hosts文件。
修改window的hosts文件:(C:\Windows\System32\drivers\etc)
可以配置域名和ip的映射關(guān)系,如果hosts文件中配置了域名和ip的對應關(guān)系,不需要走dns服務器。可以方便使用

