Nginx的配置以及几个实验
实验目的:加深对nginx的配置的了解
首先nginx的配置文件结构如下:
nginx.conf由多个块组成,最外面的块是main,main包含Events和HTTP,HTTP包含upstream和多个Server,Server又包含多个location:
main(全局设置)、server(主机设置)、upstream(负载均衡服务器设置)和 location(URL匹配特定位置的设置)【打开nginx配置文件可以详细的看】
实验一:Nginx状态统计
实现效果:请求http://IP/nginx_status返回nginx的已经处理的连接数、成功的TCP握手次数、已经处理的请求数【关于他们的区别,在博文https://www.cnblogs.com/ysd-jxt/p/13716138.html中有提到】
a、安装nginx时,将 --with-http_stub_status_module模块开启
b、修改nginx配置文件(写入要访问的server标签中)【修改之前要将配置文件进行备份】
location /nginx_status{//location前面说了,一个server中可以有多个location,而location的作用就是匹配网站的url
sub_status on;
access_log off;
}
c、重启nginx系统
使用-t参数看配置的是否正确
pkill -HUP nginx
d、查看效果
实验二:对/下的某个域名进行保护【和apache一样使用http的htpasswd命令进行处理】,本次对nginx的nginx_status目录进行保护。
a、在匹配状态统计nginx_status中的url的location中增加,如下信息
auth_basic "Welcome to nginx_status!";
auth_basic_user_file /usr/local/nginx/html/htpasswd.nginx;
b、使用http的命令htpasswd进行用户密码文件的创建(生成在上面指定的位置)
c、使用http的命令htpasswd进行用户密码文件的创建
#htpasswd -c /usr/local/nginx/html/htpasswd.nginx user
-t查看nginx的语法错误
重启nginx
pkill -HUP nginx
d、访问http://192.168.109.2/nginx_status页面,会提示你需要输入密码
实验三:对某个目录进行ip访问控制,有允许和拒绝,我们做拒绝192.168.109.4进行访问或者只允许192.168.109.4进行访问【该ip地址为我虚拟机VMnet8的地址】
a、在匹配状态统计nginx_status中的url的location中增加如下信息
allow 192.168.109.4;
deny xxxxxxxx;
b、-t查看配置是否正确,重启配置
c、查看效果
实验四【重要】:nginx虚机主机【基于域名】
使用场景:有两个网站的程序,域名不同,但是代码放到一起了,我希望可以用某一个端口正常访问
a、提前准备好两个网站的域名,我们先姑且称之为www.go.com、www.php.com,且他们的代码目录分别为go、php
创建两个项目文件
b、在Nginx中配置两个Server,配置域名以及项目代码
在项目下面写了一个php代码进行验证,如图:
访问浏览器结果如图:
实验五:反向代理
目标:1、需要理解概念,什么是反向代理
2、理解反向代理的架构布局有哪些
3、具体的操作【我们之前在192.168.109.7机器中安装了apache服务】
什么是反向代理?
答:nginx作为一个请求转发器,将请求转发给上游服务器,例如Apache服务器
反向代理的布局:
如何配置反向代理服务器?
在location中增加如下内容:
在nginx服务器的配置文件中添加(写在某一个网站的server标签内) location / { proxy_pass http://192.168.88.100:80;#此处填写apache服务器的IP地址 }
实际需求:我需要将www.php.com中的所有的请求反向代理到我们的Apache服务器上面,应该怎么办?
a、设置nginx配置文件中的server中的location内容,增加proxy_pass 上游服务器的地址,如图所示
b、-t查看语法信息。重启nginx
c、进行nginx日志以及apache日志查看
可见nginx确实将请求转发给了apache,apache的网站根目录下面没有部署相应代码所以就返回404。
有一个疑问,既然nginx作为代理服务器为什么不是301或者302的状态码呢?
301在什么请求下会产生????这个问题还是解决不了
实验6: