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    //编辑配置文件,在第4243行添加

 

//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~~~

 

 

 

posted @ 2021-11-06 10:14  种花家的一只兔子  阅读(80)  评论(0)    收藏  举报