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 //输入密码后可以访问
新闻热点
疑难解答