Nginx服務器好不好,怎么樣了解Nginx服務器,哪家Nginx服務器最靠譜?
Web服務器對比
Unix和Linux平臺下:Apache、Nginx、Lighttpd、
Tomcat、IBM、WebSphere、Jboss 專注于java
Windows平臺下:微軟公司的IIS(Internet Information Server)
Nginx是俄羅斯人編寫的十分輕量級的HTTP服務器,是一個高性能的HTTP和反向代理服務器,同時也是一個IMAP/POP3/SMTP代理服務器
官方網站:http://nginx.org/
nginx是模塊化軟件
依賴包,紅帽光盤一般都有一個devel的標志
示例:搭建Nginx服務器,要求編譯時啟用如下功能:
SSL加密功能;設置Nginx賬戶及組名稱均為nginx;Nginx服務器升級到更高版本。
然后客戶端訪問頁面驗證Nginx Web服務器:使用火狐瀏覽器訪問;使用curl訪問
Nginx軟件安裝
準備工作:搭建gcc、pcre-devel、openssl-devel環境,安裝常見依賴包
[root@Proxy ~]# yum –y install gcc gcc-c++ make pcre-devel openssl-devel
第一步:創建nginx用戶 # useradd –s /sbin/nologin nginx
第二步:解壓nginx包 # tar -zxvf nginx-1.8.0.tar.gz
第三步:進目錄清單配置# cd nginx-1.8.0------># ./configure
常用參數:--prefix=/usr/local/nginx //指定安裝目錄
--with-http_ssl_module //指定SSL安全加密
//--with-xx模塊名稱 # ./configure --help |grep with
--user=nginx //指定賬戶
--group=nginx //指定組
第四步:編譯及安裝 make && make install
Nginx配置文件及目錄
/usr/local/nginx/ //安裝目錄
/usr/local/nginx/conf/nginx.conf //主配置文件
/usr/local/nginx/html/(目錄可自定義) //網頁目錄
/usr/local/nginx/logs //日志文件
/usr/local/nginx/sbin/nginx //啟動腳本
Nginx進程管理
啟動Nginx服務:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
常用選項:
-v:查看nginx版本
-V:查看編譯參數
-t:測試默認配置文件
-c:指定配置文件
-s停止nginx服務(接reload重新加載主配置文件)
2)nginx命令的用法
[root@Proxy ~]# /usr/local/nginx/sbin/nginx//啟動服務
[root@Proxy ~]# /usr/local/nginx/sbin/nginx -s stop//關閉服務
[root@Proxy ~]# /usr/local/nginx/sbin/nginx -s reload//重新加載配置文件
[root@Proxy ~]# /usr/local/nginx/sbin/nginx –V//查看軟件信息
查看服務相關進程及端口信息:# ps aux |grep nginx
# netstat -anptu | grep nginx //nginx服務默認通過TCP 80端口監聽客戶端
3)為Nginx Web服務器建立測試首頁文件
Nginx Web服務默認首頁文檔存儲目錄為/usr/local/nginx/html/,在此目錄下建立一個名為index.html的文件:
[root@Proxy ~]# cat /usr/local/nginx/html/index.html
<html>
<head>
<title>Welcome to nginx!</title>
</head>
<body bgcolor="white" text="black">
<center><h1>Welcome to nginx!</h1></center>
</body>
</html>
升級Nginx服務器
升級分為同版本加模塊升級及版本升級兩種
同版本加模塊升級
rm -rf /root/lnmp_soft/nginx-1.8.0
# tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
ls objs 沒有綠色的程序
make 把源碼變成二進制程序 #####!!!重要:現在千萬不要打命令make install
make install會生成/usr/local/nginx/html/、/usr/local/nginx/conf/ 、/usr/local/nginx/logs/ 、 /usr/local/nginx/sbin/
升級操作:
# 備份/usr/local/nginx/sbin/nginx.bak
# 拷貝新的程序到/usr/local/nginx/sbin/
# 重啟服務nginx -s stop ;nginx -s start 或用命令make upgrade
在不停止服務的情況下平滑升級Nginx軟件版本【1.8--->1.9】
第一步:解壓新nginx包,刪除源解壓包
[root@Proxy ~]# tar -zxvf nginx-1.9.0.tar.gz
第二步:進目錄清單配置[root@Proxy ~]# cd nginx-1.9.0
[root@Proxy nginx-1.9.0]# ./configure /
> --prefix=/usr/local/nginx / //指定安裝目錄
> --user=nginx /
> --group=nginx /
> --with-http_ssl_module
第三步:編譯make [root@Proxy nginx-1.9.0]# make
第四步:備份老的nginx主程序,并使用編譯好的新版本nginx替換老版本
[root@Proxy nginx-1.9.0]# mv /usr//指定安全加密/local/nginx/sbin/nginx /
>/usr/local/nginx/sbin/nginxold
[root@Proxy nginx-1.9.0]# cp objs/nginx /usr/local/nginx/sbin/ //拷貝新版本
第五步:在目錄升級軟件并查看:
[root@Proxy nginx-1.9.0]# make upgrade //升級
[root@Proxy ~]# /usr/local/nginx/sbin/nginx –v //查看版本
客戶端訪問測試:分別使用瀏覽器和命令行工具curl測試服務器頁面
[root@client ~]# firefox http://192.168.4.5
[root@client ~]# curl http://192.168.4.5
Nginx配置解析
全局配置 /usr/local/nginx/conf/nginx.conf
http{
……
server{
……
location/{
……
}
}
}
一個server代表一個域名容器,使用ip訪問時出現的是配置文件中的第一個server指定的網頁,誰在第一訪問誰的頁面。
全局選項
user nginx; //進程所有者
worker_processes 1; //啟動進程數量
error_log /var/log/nginx/error.log; //日志文件
pid /var/run/nginx.pid; //PID文件
events {
worker_connections 1024; //單個進程最大并發量
}
配置容器
http{
server{ //定義虛擬主機
listen 80;
server_name localhost;
location / {
root html; //發布網頁根目錄
index index.html index.htm; //網頁文件
}
}
}
用戶認證
使用htpasswd命令創建賬戶文件,需要確保系統中已經安裝了httpd-tools。
# yum -y install httpd-tools
第一步:修改配置文件/usr/local/nginx/conf/nginx.conf,添加參數
location / {
root html;
index index.html index.htm;
auth_basic “auth-domain”;
auth_basic_user_file “/usr/local/nginx/pass”;}#//存放密碼文件,自已創建
}
第二步:創建用戶名密碼
# htpasswd -cm /usr/local/nginx/pass.txt 用戶名
//-c為創建文件;-m為加密文件,在rhel7中不用加-m,已默認使用加密。追加創建用戶名時無需-c,否則會覆蓋)
日志:/usr/local/nginx/logs/error.log
示例:用戶認證,實現以下目標:
訪問Web頁面需要進行用戶認證;用戶名為:tom,密碼為:123456
方案:通過Nginx實現Web頁面的認證,需要修改Nginx配置文件,在配置文件中添加auth語句實現用戶認證。最后使用htpasswd命令創建用戶及密碼即可。
服務端配置
1)修改Nginx配置文件
[root@pc205 ~]# vim /usr/local/nginx/conf/nginx.conf
.. ..
server {
listen 80;
server_name localhost;
auth_basic "Input Password:"; //認證提示符,即提示信息
auth_basic_user_file "/usr/local/nginx/pass";//認證密碼文件,要自己新建
location / {
root html;
index index.html index.htm;
}
}
2)生成密碼文件,創建用戶及密碼
[root@Proxy ~]# yum -y install httpd-tools
[root@Proxy ~]# htpasswd -cm /usr/local/nginx/pass tom //創建密碼文件
[root@Proxy ~]# htpasswd -m /usr/local/nginx/pass jerry //追加用戶
3)重啟Nginx服務
[root@Proxy ~]# /usr/local/nginx/sbin/nginx –s reload
//請先確保nginx是啟動狀態才可以執行命令成功,否則報錯
客戶端測試,登錄192.168.4.100客戶端主機進行測試
[root@client ~]# firefox http://192.168.4.5 //輸入密碼后可以訪問
新聞熱點
疑難解答