5.12
【●】linux高级运维
一、Nginx安装部署
◆Nginx简介
Nginx("engine x") 是俄罗斯人编写的HTTP服务工具
1. 环境准备
将 lnmp_soft.tar.gz软件包传入虚拟机管理员的家目录
2.软件安装(最小安装所需的安装软件)
yum -y install vim #安装vim编辑器
yum -y install bash-completion #安装支持tab键的软件包,安装完毕 之后要退出账号重新登录才生效
yum -y install net-tools #安装网络相关软件包,包含ifconfig
yum -y install psmisc # 安装killall命令软件包
yum -y install gcc make #安装编译工具
yum -y install pcre-devel #安装依赖包,可以让nginx支持正则
yum -y install openssl-devel # 安装依赖包,支持基于ssl技术的网站
3.Nginx配置文件及目录
将压缩包上传到远程控制上
[root@proxy ~]#ls
anaconda-ks.cfg lnmp_soft.tar.gz
[root@proxy ~]# tar -xf lnmp_soft.tar.gz #释放tar包
[root@proxy ~]# cd lnmp_soft/ #进入lnmp_soft目录
[root@proxy lnmp_soft]# tar -xf nginx-1.17.6.tar.gz #释放nginx
[root@proxy lnmp_soft]# cd nginx-1.17.6/ #进入nginx目录
[root@proxy nginx-1.17.6]# ./configure --prefix=/usr/local/nginx --user=nginx --with-http_ssl_module #配置,--prefix是指定安装路径,--user是指定用户 -- with-http_ssl_module是安全网站模块
[root@proxy nginx-1.17.6]#make #编译
[root@proxy nginx-1.17.6]#make install #安装
[root@proxy nginx-1.17.6]#ls /usr/local/nginx/ #检查结果,看到四个目录则成功
[root@proxy nginx-1.17.6]#/usr/local/nginx/sbin/nginx -V #检查nginx版本,以及安 装时参数
[root@proxy nginx-1.17.6]#ls /usr/local/nginx/
conf
html
logs
sbin
— /usr/local/nginx/ #安装目录
— conf/nginx.conf #主配置文件
— html #网页目录
— logs #日志文件
— sbin/nginx #启动脚本
4.Nginx进程管理
● 启动Nginx服务
[root@proxy nginx]# useradd nginx -s /sbin/nologin #创建用户
[root@proxy nginx]# /usr/local/nginx/sbin/nginx # 使用绝对路径开启服务
[root@proxy nginx]#cd /usr/local/nginx
[root@proxy nginx]#sbin/nginx #使用相对路径开启服务也可以
[root@proxy nginx]#systemctl stop firewalld # 关闭防火墙
使用真机的火狐浏览器打开192.168.2.5要看到nginx默认页面
[root@proxy nginx]#sbin/nginx -s stop #关闭服务
[root@proxy nginx]#sbin/nginx -s reload #重新加载配置文件
[root@proxy nginx]# cd /root/lnmp_soft
[root@proxy lnmp_soft]# yum -y install unzip #安装解压缩工具
[root@proxy lnmp_soft]# unzip www_template.zip #解压缩网站模板
[root@proxy lnmp_soft]# cp -r www_template/* /usr/local/nginx/html/ #拷贝 网站模板文件到nginx的网页目录
[root@proxy lnmp_soft]# cp:是否覆盖"/usr/local/nginx/html/index.html"? y
然后使用火狐访问192.168.2.5
[root@proxy lnmp_soft]# netstat -ntulp | grep :80 #看不到的话,检查80端口被什么 服务占用
------------------------------------------
●常用选项
— -V :查看编译参数
— -c : 指定配置文件,启动服务
●查看服务相关进程及端口信息
[root@proxy nginx]#ps aux | grep nginx
[root@proxy nginx]#netstat -utnalp | grep ngin
◆ 5.为nginx增加网站认证功能
通常情况下网站搭建好之后,只要知道ip或者域名,那么任何用户都可以访问该网站,如果仅 仅想让某些用户访问就可以使用该功能
[root@proxy nginx]# cd /usr/local/nginx
[root@proxy nginx]# vim conf/nginx.conf #打开配置文件,在42、43行添加以下内容
auth_basic "passwd:"; #网页弹出的提示信息
auth_basic_user_file "/usr/local/nginx/pass"; #存放网站账户的文件
[root@proxy nginx]# sbin/nginx -s reload #重新加载配置文件没有报错即可
[root@proxy nginx]# yum -y install httpd-tools #安装软件包,可以支持htpasswd命 令
[root@proxy nginx]#htpasswd -c pass tom #创建pass与tom账户,还要输入两次密 码
使用火狐浏览器访问http://192.168.2.5/ #此时需要用户名和密码
[root@proxy nginx]#htpasswd pass abc #多追加一个账户测试,无需c选项
如果要反复测试网站认证功能,需要清空浏览器的历史记录
----------------------------------------------------------------
做完上述实验之后,可以按下列方法恢复nginx为默认状态
[root@proxy nginx]# cp conf/nginx.conf.default conf/nginx.conf #恢复nginx配置 文件为默认状态
cp:是否覆盖"conf/nginx.conf"? y
--------------------------------------------------------------------
三、利用nginx创建虚拟主机
通常使用一台服务器开启一个nginx服务就可以开启一个网站,但是如果公司需要很多不同域名的网站,而每个网站的业务量不大时,不必购买多台服务器,使用一台服务器利用虚拟主机技术既可以实现。
虚拟主机回顾
httpd 中的虚拟主机是写在不同的virtualhost中
<virtualhost *:80>
servername www.a.com
documentroot /var/www/html
</virtualhost>
<virtualhost *:80>
servername www.b.com
documentroot /var/www/b
</virtualhost>
◆ 基于域名的虚拟机
1.配置文件结构 (nginx中配置)在nginx中配置虚拟主机,要写在大的框架http中,然后 一个server就是一个虚拟主机http
http {
server{ #第1个虚拟主机
listrn 80;
server_name www.a.com;
root html;
index index.html;
}
server{ #第2个虚拟主机
...............
...............
}
}
------------------------------------------------------------
◆ 虚拟主机实际操作:
打开nginx主配置文件在34~39行添加 :
server {
listen 80; #监听端口号
server_name www.b.com; #域名,默认的虚拟主机改成www.a.com
root html_b; #存放网页的目录
index index.html index.htm; #默认页名字
}
[root@proxy nginx]# sbin/nginx -s reload #重新加载配置文件,服务必须是开启状态
[root@proxy nginx]# mkdir html_b #创建b网站的目录
[root@proxy nginx]# echo "nginx-B~~~" > html_b/index.html #创建a网站测试页
[root@proxy nginx]# echo "nginx-A~~~" > html/index.html #创建b网站测试页
[root@proxy nginx]# vim /etc/hosts #修改hosts文件添加ip和域名的映射关系
192.168.2.5 www.a.com www.b.com www.c.com
[root@proxy nginx]# curl www.a.com #检测
nginx-A~~~
[root@proxy nginx]# curl www.b.com
nginx-B~~~
[root@proxy nginx]# curl www.c.com
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
---------------------------------------
◆ 三种模式虚拟主机
1.基于域名的虚拟主机
2.基于端口的虚拟主机
3.基于IP的虚拟主机
四、HTTPS加密网址
加密算法一般分为对称算法、非对称算法、信息摘要。
对称算法有:AES、DES,主要应用在单机数据加密。使用同一串字符用来加密与解密
非对称算法有:RSA、DSA,主要应用在网络数据加密。使用公钥加密使用私钥解密
信息摘要:MD5、sha256,主要应用在数据完整性校验。
◆ 密钥
1.对称密钥
●AES
●DES
●应用案例:RAR、ZIP压缩加密(单机加密)
2.非对称密钥
●RSA
●DSA
●应用案例:网络加密(https、ssh)
3.Hash值(信息摘要)
●MD5 +sum
●SHA256 +sum
●SHA512 +sum
●应用案例:数据完整性校验
[root@proxy nginx]# md5sum conf/nginx.conf //可以通过校验码检测文件的完整性