Nginx 1
使用4台RHEL7虚拟机,其中一台作为Nginx代理服务器,该服务器需要配置两坏网卡,IP地址分别为192.168.4.5和192.168.2.5,两台web服务器ip地址分别为192.168.2.100和192.168.2.200。客户端机的IP地址为192.168.4.10.

proxy 192.168.2.5
web1 192.168.2.100
web2 192.168.2.200
环境部署
第一步,将lnmp_soft.tar.gz软件包拷贝到虚拟机中root的家目录
tar -xf lnmp_soft.tar.gz //原地释放
yum -y install bash-completion //安装支持tab键的软件包,装完后要退出系统重新登录才生效
yum -y install vim //安装vim编辑器
yum -y install net-tools //安装网络相关软件包,包含ifconfig
yum -y install psmisc //安装支持killall命令软件包
yum -y install gcc //安装编译工具
yum -y install pcre-devel //依赖包,可以让nginx支持正则
yum -y install openssl-devel //支持搭建基于ssl技术的网站
第二步,安装nginx
[root@proxy ~]# cd lnmp_soft
tar -xf nginx-1.17.6.tar.gz
cd nginx-1.17.6
./configure --prefix=/usr/local/nginx --with-http_ssl_module --user=nginx
//--with-http_ssl_module是安全模块, --prefix是安装路径, --user是
指定的用户,nginx运行时拥有该用户的权限
make //编译
make install //安装
ls /usr/local/nginx //检查nginx安装目录
目录功能:
html 网站页面存放位置
conf 存放配置文件
sbin 存放主程序
logs 存放日志
cd /usr/local/nginx/
useradd -s /sbin/nologin nginx //创建用户
sbin/nginx //开启nginx服务
systemctl stop httpd //如果httpd是开启的则需要关闭
systemctl stop firewalld //关闭防火墙
使用火狐浏览器访问192.168.2.5
sbin/nginx -V //查看nginx版本以及配置时添加的内容
sbin/nginx -s stop //关闭服务
sbin/nginx -s reload //重新加载配置文件,服务必须是开启状态
-----------------------------
编辑默认页
1,简单页面测试
echo "proxy_nginx~~~" > html/index.html
浏览器访问192.168.2.5
2,成品页面测试
cd ~/lnmp_soft/ //回家目录的lnmp_soft中
yum -y install unzip //安装解压缩工具
unzip www_template.zip //解压缩网站模板
cp -r www_template/* /usr/local/nginx/html/ //拷贝模板到nginx
的网站页面目录下
cp:是否覆盖"/usr/local/nginx/html/index.html"? y
刷新浏览器的192.168.2.5页面
自定义页面
echo "proxy-nginx~~~~~~~~" > html/a.html
使用192.168.2.5/a.html访问
--------------------------------
为nginx增加网站认证功能
通常情况下网站搭建好之后,只要知道ip或者域名,那么任何用户都可以访问该网站,如果仅仅想让某些用户访问就可以使用该功能
cd /usr/local/nginx
vim conf/nginx.conf //编辑配置文件,在第42、43行添加
//auth_basic是提示信息,用户登录网站时看到的
//auth_basic_user_file是存放用户名密码的文件路径
yum -y install httpd-tools //安装网站工具包,支持htpasswd命令
htpasswd -c /usr/local/nginx/pass abc //创建pass文件与abc账户
New password: 输入密码123
Re-type new password: 再次输入123
sbin/nginx //如果没开服务则开启服务
sbin/nginx -s reload //如果服已经开启则需要重新加载配置
使用火狐访问http://192.168.2.5/ 此时需要用户名和密码
htpasswd /usr/local/nginx/pass xyz //追加新用户,无需c选项
如果要反复测试网站认证功能,需要清空浏览器的历史记录
-------------------------------------------------------------------------------
通常使用一台服务器开启一个nginx服务就可以开启一个网站,但是如果需要很多不同域名的网站,而每个网站的业务量不大时,不必购买多台服务器,使用一台服务器利用虚拟主机技术既可以实现。
nginx 中配置虚拟主机是写在不同的server中
http {
server {
listen :80;
server_name www.a.com;
root html;
index index.html index.htm;
}
server {
listen :80;
server_name www.b.com;
root html_b;
index index.html index.htm;
}
}
ls conf/ //查看配置文件目录,其中包含nginx.conf.default文件,是配置文件的备份
一,创建nginx的虚拟主机
1,修改主配置文件,在34~39行开始添加以下内容
34 server {
35 listen 80; //监听端口
36 server_name www.b.com; //域名
37 root b; //网页文件存放地
38 index index.html index.htm; //默认页文件名
39 }
另外要把原本的虚拟主机的localhost 修改为 www.a.com
2,准备测试页面并修改hosts文件
[root@proxy nginx]# mkdir b
echo "proxy-nginx-A~~~" > html/index.html
echo "proxy-nginx-B~~~" > b/index.html
vim /etc/hosts //添加域名与ip的映射关系,在最后一行写入以下内容
192.168.2.5 www.a.com www.b.com www.c.com
[root@proxy nginx]# curl www.a.com //测试
proxy-nginx-A~~~
[root@proxy nginx]# curl www.b.com
proxy-nginx-B~~~
--------------------------------------
C:\Windows\System32\drivers\etc //如果在win环境中测试需要修改
该路径下的hosts文件,但默认该文件是只读的,需要按照下面方法开放
权限
右键点hosts文件---属性---安全---编辑---users---完全控制打钩---
确定,修改好之后,右键hosts文件选择打开方式为文本,然后在最后一行
添加下面内容
192.168.2.5 www.a.com www.b.com www.c.com
----------------------------------------
二,搭建基于ssl技术的安全网站
1,了解加密算法:
对称算法 AES DES 单机数据加密 一个密码可以用来加密,同时也用来解密
非对称算法 RSA DSA 网络数据加密 公钥(锁) 私钥(钥匙)
信息摘要 MD5 sha256 数据校验
2,修改主配置文件第103行左右,找安全网站的虚拟主机的配置,将所有注释去掉,可以使用:103,120s/#//
103 server {
104 listen 443 ssl;
105 server_name www.c.com; //这里修改域名
106
107 ssl_certificate cert.pem; //证书,包含公钥
108 ssl_certificate_key cert.key; //私钥
109
110 ssl_session_cache shared:SSL:1m;
111 ssl_session_timeout 5m;
112
113 ssl_ciphers HIGH:!aNULL:!MD5;
114 ssl_prefer_server_ciphers on;
115
116 location / {
117 root c; //这里修改页面存储目录
118 index index.html index.htm;
119 }
120 }
3,创建私钥与证书
cd /usr/local/nginx/conf
openssl genrsa > cert.key //创建私钥
openssl req -new -x509 -key cert.key > cert.pem //根据私钥创建证书,证书
中包含公钥,生成过程会询问诸如你在哪个国家之类的问题,可以随意回答,但
要走完全过程
Country Name (2 letter code) [XX]:dc 国家
State or Province Name (full name) []:dc 省份
Locality Name (eg, city) [Default City]:dc 城市
Organization Name (eg, company) [Default Company Ltd]:dc 公司名称
Organizational Unit Name (eg, section) []:dc 部门名称
Common Name (eg, your name or your server's hostname) []:dc 服务器名称
Email Address []:dc@dc.com 邮箱
4,创建页面并测试
cd .. //返回上一步
[root@proxy nginx]# mkdir c //创建目录
[root@proxy nginx]# echo "proxy-nginx-C~~~" > c/index.html //创建测试页面
[root@proxy nginx]# sbin/nginx -s reload //重加载配置
[root@proxy nginx]# curl -k https://www.c.com //测试k选项是忽略风险
proxy-nginx-C~~~

浙公网安备 33010602011771号