-----是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器
-----官方网站:http://nginx.org/
服务端IP:192.168.4.7
客户端IP:192.168.4.407
服务端安装Nginx
下载之后解压,再cd到解压的目录
执行./configure --prefix=/usr/local/nginx (指定安装路径) --with-xxx --with (安装功能模块)
例如: 安装ssl模块
./configure --prefix=/usr/local/nginx --with-http_ssl_module
编译安装
make
make install
/usr/local/nginx.conf 配置文件
logs 日志和pid文件
html 页面
sbin 主程序
#ln -s /usr/local/nginx/sbin/nginx /usr/sbin/ #nginx #启动服务
#nginx -s stop 关闭服务
#nginx -s reload 重新加载配置文件
#nginx -V 查看nginx信息
Nginx首页默认在/var/www/html/inde.html
实验:用户认证
需要输入用户名和密码才能访问网站
vim /usr/local/nginx/conf/nginx.conf
…………
http{
server {
listen 80;
server_name localhost;
auth_basic "任意字符:";
auth_basic_user_file "/usr/local/nginx/pass";
#写入这两行,就是打开网站的时候需要输入用户名和密码
}
}
安装一个软件包
#yum -y install httpd-tools
创建一个测试用户zhangsan
#htpasswd -cm /usr/local/nginx/pass zhangsan
密码
-c 创建密码文件[create] -m[加密密码]md5
#nginx -s reload //重启Nginx
重新用浏览器访问测试需要用户名和密码即可
实验:配置加密网站
步骤一:配置SSL虚拟主机
源码安装Nginx时必须使用--with-http_ssl_module参数
1.生成证书和私钥
2.#cd /usr/local/nginx/conf //一定要切换到这个目录下 ,因为Nginx读取秘钥就是在这个目录下读取的
3.#openssl genrsa >my.key //生成私钥
4.cpenssl req -new -x509 -key -out my.crt //使用私钥生成对应的证书
5.# vim /usr/local/nginx/conf/nginx.conf //修改配置文件
. … …????
server {
listen 443 ssl;
server_name www.longge.com; //网站自己随便写一个
ssl_certificate my.crt; //my.crt和上面创建的证书名一致
ssl_certificate_key my.key; //my.key 和上面创建的私钥名一致
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
步骤二:客户端验证
1)修改客户端主机192.168.4.207的/etc/hosts文件,进行域名解析
#vim /etc/hosts
192.168.4.7????www.longge.com
登录192.168.4.207客户端主机进行测试
firefox https://www.longge.com????????????//信任证书后可以访问
实验:Nginx反向代理
使用Nginx实现Web反向代理功能,实现如下功能:
? 后端Web服务器两台,可以使用httpd实现
? Nginx采用轮询的方式调用后端Web服务器
? 两台Web服务器的权重要求设置为不同的值
? 最大失败次数为1,失败超时时间为30秒
使用4台RHEL7虚拟机,其中一台作为Nginx代理服务器,该服务器需要配置两块网卡,IP地址分别为192.168.4.7和192.168.2.5,两台Web服务器IP地址分别为192.168.2.100和192.168.2.200。客户端测试主机IP地址为192.168.4.207。
步骤
实现此案例需要按照如下步骤进行。
步骤一:配置Nginx服务器,添加服务器池,实现反向代理功能
1)修改/usr/local/nginx/conf/nginx.conf配置文件
vim /usr/local/nginx/conf/nginx.conf
. .. ..
http {
.. ..
upstream webs {
server 192.168.2.100 weight=1 max_fails=2 fail_timeout=10;
server 192.168.2.200 weight=2 max_fails=2 fail_timeout=10;
}
.. ..
server {
listen????????80;
server_name www.longge.com;
location / {
proxy_pass http://webs;
}
}
2)重启nginx服务
/usr/local/nginx/sbin/nginx –s reload
步骤二:部署实施后端Web服务器
1)部署后端Web1服务器
后端Web服务器可以简单使用yum方式安装httpd实现Web服务,为了可以看出后端服务器的不同,可以将两台后端服务器的首页文档内容设置为不同的内容。
[root@web1 ~]# yum -y install httpd
[root@web1 ~]# echo “192.168.2.100” > /var/www/html/index.html
[root@web1 ~]# systemctl restart httpd
2)部署后端Web2服务器
[root@web2 ~]# yum -y install httpd
[root@web2 ~]# echo “192.168.2.200” > /var/www/html/index.html
[root@web2 ~]# systemctl restart httpd
步骤三:客户端测试
1)修改客户端hosts文件
[root@client ~]# vim /etc/hosts
.. ..
192.168.4.7????????www.longge.com
2)使用浏览器访问代理服务器测试轮询效果
[root@client ~]# curl http://www.longge.com????????????//使用该命令多次访问查看效果
Nginx可能因为firewall的原因导致客户端不能访问,请修改firewall的默认区域为trusted或暂时关闭firewall
#firewall-cmd --set-default-zone=trusted //修改默认区域
#systemcrt stop firewall
原文:http://blog.51cto.com/12760101/2159993