nginx的学习日记

今天学习了web架构的第五章:

首先是Cookie和Session:Cookie保存在客户端当中,其中可能保存着你的用户名和密码,当用户打某个网页的时候,客户端自动传递给服务端,但是这样存在一个问题,就是别人打开你的客户端,可以通过Cookie得到你的密码。所以后来,为了安全起见,服务端设立了session_id,当第一次收到客户端发来的消息的时候,服务端会创建一个加密的session_id,并且返回给客户端,之后,客户端再次打开该网页的时候只需要提供session_id即可

之后,简单了解了各种网络架构的组合,包括lnmp架构(linux+nginx+mysql+php),lamp(linux+apache+mysql+php),(windows+apache+mysql+php),lnmt(inux+nginx+mysql+tomcat),这个主要跑java项目,lnmu(linux+nginx+mysql+uwsgi)这个主要跑python项目

因为mysql是免费的,而oracle是收费的,所以oracle被mysql抢了很多的市场份额,于是花了10亿美元将mysql收购,但是mysql的开发团队又开发了mariadb数据库,和mysql的用法基本一致。于是,我们用的是这一款数据库。

数据库的一些简单用法:mysql(进入数据库,之后可以输入数据库的指令),show databases;(展示现有的数据库名称,注意后面加分号),select use();(展示当前登录的用户),create database wordpress(创建名为wordpress数据库),use mysql;(切换成名为mysql的数据库),drop database wordpress(删除名为wordpress的数据库)

  然后其中有一个给用户授权的操作:grant all on wordpress.* to wordpress@'192.168.60.%' identified by '123456'(这段代码的意思是给192.168.60段的IP能够通过wordpress用户来访问wordpress数据库的所有表的权限)

#grant all on wordpress.* to wordpress@主机名 identified by '123456';
grant all on wordpress.* to wordpress@web01 identified by '123456';
grant all on wordpress.* to wordpress@localhost identified by '123456';
然后 登录的时候,
mysql -u wordpress -p123456 -h 192.168.61.139,-h如果是在本机的话可以不加。
 
之后,我用分别测试了wordpress(博客)和discuz(论坛)的构建,原理和之前的配置网页类似,在conf.d中创建conf文件,然后在/html中创建网页代码就行,注意,因为nginx的进程是nginx用户创建的,但是在/html文件夹创建的页面是root用户创建的,所以,nginx没有打开的权限,因此,我们还需要对/html中的相应文件夹进行权限的修改,改变其属:组  chown -R nginx:nginx .(注意,不要忘记最后的那个点,表示是在该文件夹下的内容)在discuz论坛当中,我们还学习了静态网页(不同的html文件看到一个不同的网页)、动态网页(网址是一样的,也就是服务端找的是同一个php文件,但是你会发现页面的数据不同了。 动态网站就是服务端根据客户端的网络请求数据中的查询参数数据来动态的给这个php文件加入不同的动态数据)以及伪静态网页(实际上还是动态网站,只不过是做成了静态页面的网址效果。),其中,静态网页的安全性最高,但动态网页的交互性最高,相应的安全性最低,所以,创建了伪静态网页,
要配置伪静态网页,nginx需要配置伪静态网页的规则,配置如下:
server {
listen 80;
server_name bbs.jaden.com;
location / {
  root /html/bbs;
  index index.php index.html index.htm;
  rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
  rewrite ^([^\.]*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?
mod=view&aid=$2&page=$3 last;
  rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?
mod=forumdisplay&fid=$2&page=$3 last;
  rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?
mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
  rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?
mod=group&fid=$2&page=$3 last;
  rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?
mod=space&$2=$3 last;
  rewrite ^([^\.]*)/blog-([0-9]+)-([0-9]+)\.html$ $1/home.php?
mod=space&uid=$2&do=blog&id=$3 last;
  rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/archiver/index.php?
action=$2&value=$3 last;
  rewrite ^([^\.]*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ $1/plugin.php?
id=$2:$3 last;
   
if (!-e $request_filename) {
  return 404;
  }
}
  location ~ \.php$ {
          root           /html/bbs;
          fastcgi_pass   127.0.0.1:9000;
          fastcgi_index index.php;
          fastcgi_param SCRIPT_FILENAME /html/bbs$fastcgi_script_name;
          include       fastcgi_params;
  }
}
 
第六章:
  在本章中针对阿里云服务器进行配置,包括申请服务器、注册域名,以及CDN加速服务
       在申请服务器以及域名备案的时候,碰到一个大坑,就是他要求不能是按量收费,并且续费时间不能少于3个月,很贵,很坑。通过开启了CDN服务呢,CDN默认加速的是静态文件,在自己设置之后动态文件也能缓存,他就能够在加载页面的时候速度更快,时间更少,并且在ping的时候,并不是访问的你的ip地址,而是CDN服务器的IP地址
  在通过CDN加速的时候,会有一个CName记录,这个记录将IP地址转移到CDN节点上,然后会再去寻找哪个城市的CDN节点比较合适,同样的,比如说在用户在注册的时候,注册信息肯定不会存在CDN当中,他会先通过各地的CDN传回核心CDN,然后在传送给源站,也就是你的IP地址当中,由源站服务器进行保存。
       当你在攻击一个网站的时候,需要绕过CDN,那么就需要找到真实IP,然后在hosts中直接将域名和IP联系起来。但是还没讲如何绕过CDN找到真实域名
       关于正向代理和反向代理:
    客户端使用的代理一般称之为正向代理,服务端使用的代理一般称为反向代理
              正向代理就是在本机设置代理服务的IP地址和端口号即可,其中火狐浏览器可以直接修改,或者在代理服务中修改,通过实时查看nginx的访问日志,可以看到Windows下设置代理IP和端口后,本地电脑访问的所有网页会通过代理服务器进行访问网页,实现了正向代理的功能,并且隐藏了用户自己真实的IP。
              在正向代理服务器中设置代码如下:
server {
resolver 223.5.5.5;
listen 80;
location / {
      proxy_pass                 http://$host$request_uri;
      proxy_set_header           HOST $host;
      proxy_buffers              256 4k;
      proxy_max_temp_file_size   0k;
      proxy_connect_timeout      30;
      proxy_send_timeout         60;
      proxy_read_timeout         60;
      proxy_next_upstream error timeout invalid_header http_502;
  }
}
反向代理:
反向代理更多的时候是为了保护原站,还能用于负载均衡的效果

proxy_set_header用来指明要传递给的服务器IP,
proxy_set_header Host用来指明客户端要访问的域名
  proxy_set_header X-Forwarded-For用来指明客户端的真实域名(当然,可能客户端使用了正向代理,导致你看不到真实的域名)
 
负载均衡,当存在多个服务器的时候,可以进行负载均衡配置,但是这种情况下需要一台主机单独作为Mysql数据库

 

 

 
posted @ 2024-11-20 17:21  机器智能小白凡  阅读(6)  评论(0编辑  收藏  举报