博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx服务器的搭建
阅读量:6180 次
发布时间:2019-06-21

本文共 5469 字,大约阅读时间需要 18 分钟。

要点:

安装nginx,升级
用户认证auth_basic_user_file
虚拟主机:server{name a} server{name b}
虚拟主机:server{listen 443;私钥,公钥}
反向代理:upstream abc {server;server}
proxy_pass

案例1:搭建Nginx服务器

在IP地址为192.168.4.5的主机上安装部署Nginx服务
Proxy
步骤一:构建Nginx服务器
方法1:脚本安装构建Nginx服务器
cd lnmp_soft
./install_lnmp.sh
选1
安装Nginx

方法2:使用源码包安装nginx软件包

[root@svr5 ~]# yum –y install gcc pcre-devel openssl-devel //安装常见依赖包
[root@svr5 ~]# useradd –s /sbin/nologin nginx
[root@svr5 ~]# tar -xf nginx-1.8.0.tar.gz
[root@svr5 ~]# cd nginx-1.8.0
[root@svr5 nginx-1.8.0]# ./configure \

--prefix=/usr/local/nginx \ //指定安装路径

--user=nginx \ //指定用户
--group=nginx \ //指定组
--with-http_ssl_module //开启SSL加密功能

nginx命令安装构建Nginx服务器

/usr/local/nginx/sbin/nginx //启动服务

/usr/local/nginx/sbin/nginx -s stop //关闭服务

/usr/local/nginx/sbin/nginx -s reload //重新加载配置文件

/usr/local/nginx/sbin/nginx –V //查看软件信息

/usr/local/nginx/sbin/nginx

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 端口被占用
netstat -tulnp | grep 80
killall
/usr/local/nginx/sbin/nginx

基于域名,基于IP,基于端口

vim /usr/local/nginx/conf/nginx.conf
http {
server {
listen 80; //端口
server_name www.aa.com; //域名
root html;
}
server {
listen 80; (192.168.4.5:8000) //端口
server_name www.bb.com; //域名
root www;
}

mkdir /usr/local/nginx/www

echo "www" > index.html

案例2:用户认证

2.1 问题

沿用练习一,通过调整Nginx服务端配置,实现以下目标:

访问Web页面需要进行用户认证
用户名为:tom,密码为:123456
2.2 方案

通过Nginx实现Web页面的认证,需要修改Nginx配置文件,在配置文件中添加auth语句实现用户认证。最后使用htpasswd命令创建用户及密码即可。

2.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:修改Nginx配置文件

1)修改/usr/local/nginx/conf/nginx.conf

[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)生成密码文件,创建用户及密码
使用htpasswd命令创建账户文件,需要确保系统中已经安装了httpd-tools。
[root@svr5 ~]# yum -y install httpd-tools
[root@svr5 ~]# htpasswd -cm /usr/local/nginx/pass tom //创建密码文件
New password:
Re-type new password:
Adding password for user tom
[root@svr5 ~]# htpasswd -m /usr/local/nginx/pass jerry
//追加用户,不使用-c选项
New password:
Re-type new password:
Adding password for user jerry
3)重启Nginx服务
[root@svr5 ~]# /usr/local/nginx/sbin/nginx –s reload
//请先确保nginx是启动状态才可以执行命令成功,否则报错
步骤二:客户端测试

1)登录192.168.4.100客户端主机进行测试

[root@client ~]# firefox //输入密码后可以访问
案例3:基于域名的虚拟主机
3.1 问题

沿用练习二,配置基于域名的虚拟主机,实现以下目标:

实现两个基于域名的虚拟主机,域名分别为www.aa.com和www.bb.com
对域名为www.aa.com的站点进行用户认证,用户名称为tom,密码为123456
3.2 方案

修改Nginx配置文件,添加server容器实现虚拟主机功能;对于需要进行用户认证的虚拟主机添加auth认证语句。

3.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:修改配置文件

1)修改Nginx服务配置,添加相关虚拟主机配置如下

[root@svr5 ~]# vim /usr/local/nginx/conf/nginx.conf
.. ..
server {
listen 80; //端口
server_name www.aa.com; //域名
auth_basic "Input Password:"; //认证提示符
auth_basic_user_file "/usr/local/nginx/pass"; //认证密码文件
location / {
root html; //指定网站根路径
index index.html index.htm;
}

}

… …
server {
listen 80; //端口
server_name www.bb.com; //域名
location / {
root www; //指定网站根路径
index index.html index.htm;
}
}
2)创建账户及密码
[root@svr5 ~]# htpasswd –cm /usr/local/nginx/pass tom //创建账户密码文件
New password:
Re-type new password:
Adding password for user tom
3)创建网站根目录及对应首页文件
[root@svr5 ~]# mkdir /usr/local/nginx/www
[root@svr5 ~]# echo "www" > /usr/local/nginx/www/index.html
4)重启nginx服务
[root@svr5 ~]# /usr/local/nginx/sbin/nginx –s reload
步骤二:客户端测试

1)修改客户端主机192.168.4.100的/etc/hosts文件,进行域名解析

[root@client ~]# vim /etc/hosts
192.168.4.5 www.aa.com www.bb.com
2)登录192.168.4.100客户端主机进行测试
注意:SSH –X远程连接调用虚拟机的firefox时,请先关闭真实机的firefox。
[root@client ~]# firefox //输入密码后可以访问
[root@client ~]# firefox //直接访问

对称密钥:单击加密 AES,DES

非对称密施:网络加密 RSA,DSA
信息摘要:数据安全 md5 sha128 sha256

案例4:SSL虚拟主机

步骤一:配置SSL虚拟主机
1)生成私钥与证书

cd /usr/local/nginx/conf

openssl genrsa > cert.key //生成私钥,用来解密

openssl req -new -x509 -key cert.key -out cert.pem //生成证书(公钥),用来加密

2)修改Nginx配置文件,设置加密网站的虚拟主机

vim /usr/local/nginx/conf/nginx.conf

99行Ctrl+v去掉前面的#符号

步骤二:客户端验证
1)修改客户端主机192.168.4.100的/etc/hosts文件,进行域名解析
[root@client ~]# vim /etc/hosts
192.168.4.5 www.cc.com www.aa.com www.bb.com
2)登录192.168.4.100客户端主机进行测试
[root@client ~]# firefox //信任证书后可以访问

案例5:Nginx反向代理

使用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.100。
步骤一:部署实施后端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
步骤二:配置Nginx服务器,添加服务器池,实现反向代理功能

1)修改/usr/local/nginx/conf/nginx.conf配置文件

[root@svr5 ~]# vim /usr/local/nginx/conf/nginx.conf
.. ..
http {
.. ..
upstream webserver {
server 192.168.2.100 weight=1 max_fails=2 fail_timeout=10; #weight为轮询次数,默认为1,修给为2后,即访问代理2.100出现2次,2.200出现1次,轮询交替。max_fails为失败几次算该web出现故障。fail_timeout为失败后再次查询时间
server 192.168.2.200 weight=2 max_fails=2 fail_timeout=10;
}
.. ..
server {
listen 80;
server_name www.tarena.com;
location / {
proxy_pass ;
}
}
2)重启nginx服务
[root@svr5 ~]# /usr/local/nginx/sbin/nginx –s reload
3)使用浏览器访问代理服务器测试轮询效果
[root@client ~]# curl //使用该命令多次访问查看效果

4)设置相同客户端访问相同Web服务器

vim /usr/local/nginx/conf/nginx.conf
upstream webserver {
ip_hash #相同客户端访问相同的服务器
server 192.168.2.100

5)重启nginx服务

[root@svr5 ~]# /usr/local/nginx/sbin/nginx –s reload
6)使用浏览器访问代理服务器测试轮询效果
[root@client ~]# curl //使用该命令多次访问查看效果

转载于:https://blog.51cto.com/13402239/2051814

你可能感兴趣的文章
第三天
查看>>
connector for python
查看>>
等价类划分的应用
查看>>
Web Service(下)
查看>>
trigger()
查看>>
nvm 怎么安装 ?
查看>>
Java VM里的magic
查看>>
[Node.js]Domain模块
查看>>
Linux操作系统文档
查看>>
利用Tensorflow训练自定义数据
查看>>
c++官方文档-枚举-联合体-结构体-typedef-using
查看>>
[题解]UVA11029 Leading and Trailing
查看>>
利用vue-gird-layout 制作可定制桌面 (一)
查看>>
校园社交网站app
查看>>
如何指定某些文件关闭ARC
查看>>
4、跃进表
查看>>
JAVA面向对象的总结(静态函数与static关键字)
查看>>
课堂作业第四周课上作业一
查看>>
使用Java语言开发微信公众平台(七)——音乐消息的回复
查看>>
陶哲轩实分析习题9.1.6
查看>>