• Linux常规操作(7~)


    WebServer(Web服务器)

    在整个服务器WebServer镜像里面的话,我们常用的两款软件,一个Apache一个Nginx,刚开始web编程都会用apache,而进入商业社会里面会发现很多公司都会使用Nginx,因为Nginx承受的量会相对高一点。还有一个服务器它叫IIS它是微软的,只支持windows系统,而Apache和Nginx都是跨平台的。

     安装Apache:sudo yum install httpd(这里使用imooc安装,要提权操作,所以sudo)

    启动服务:sudo service httpd start  启动查进程是否存在:ps -ef | grep httpd

    关闭服务:sudo service httpd stop

     既然进程已经启动了,现在理论应该可以通过浏览器来访问我们的 80 端口(80端口是web服务器的默认端口),但是实际上很奇怪访问不了,下面没有跟80端口是浏览器会默认找80

    用命令:sudo netstat -anpl | grep 'http' 结果发现80端口确实在被监听了(被监听一旦访问到就会显示服务首页,此时没有显示说明没有访问到这里,会不会是防火墙的问题?),但是为什么访问不到呢

     

     关闭防火墙:sudo service firewalld stop  后再次访问浏览器

    到这一步说明apache服务已经安装好了,可以通过 80 端口提供服务

    截止目前,ssh服务和firewalld是自带不用安装的并且都默认启动的,而httpd要手动启动

     Apache虚拟主机配置和伪静态

    虚拟主机

    虚拟主机在什么时候会用?虚拟主机一般在为了配置多域名的时候才会使用,比如在 一个服务器里面  可以配置很多个网站,那就需要每个域名访问的网站内容和源代码是不一样的。注意下面所以操作firewalld暂时关闭

    一、我们进入etc/httpd/conf/httpd.conf,用sudo权限编辑httpd.conf文件,插入下面这样的代码

     

    二、配置代码写了后,给前端显示的是/data/www/index.html文件,现在要建这个目录编写index.html文件(视频教程中用的是非root账号,所以/data/www目录属于root的,非root用户不能编辑这个文件,所以可以改变这个文件夹的所属人命令:sudo chown -R imooc:imooc_/data),service httpd restart

    三、现在通过浏览器访问www.imooc.test域名发现并没有访问到/data/www/index.html文件,这是为什么呢?想一想如果我们想在互联网上有一个自己的网站,我们要买一个域名,然后再买一台服务器。而我们的www.imooc.test这个域名是我们随便取的,也没有找哪个部门去备案,所以说这个域名是我们虚构的,不被互联网所认可的域名,这个时候我们要在/etc/hosts文件做 绑定域名子项操作

     四、上面都做完了httpd重启,可以ping一下 ping www.imooc.test成功证明绑定成功,访问发现有的时候访问的到,有的时候访问不到。

    命令:sudo setenforce 0或1   这个命令是在服务器里面做一些安全设置的,是系统本身做的一种多重开关。 

    原因就是这个命令,把它设置成0(宽松模式)时可以访问,把它设置成1(强制模式)时访问不了。但是我们设置成0时是临时关闭,如果让它完全关闭的(就算任意的重启也是此开关限制关闭着随时可以访问)怎么做呢?

    五、sudo vim /etc/selinux/config编辑这个配置文件

    这样虚拟主机就配置完了,如果想配置多个域名就把一步骤中的代码框部分代码,复制多个更改即可。

    操作失败

    伪静态

    伪静态是一个高级技巧,关于伪静态还是比较常用在互联网里面。比如你访问一个网站首页地址栏会出现一个html但是我们实际的网站是用php去写的,本来应该以.php来结尾的。看起来是.html但实际访问的还是.php文件这就是伪静态

    开启伪静态及语法设置

    1.进入到ect/httpd,进入到httpd下的modules(存放所有模块的类,conf.modules.d存放所有模块的配置文件),发现在modules/下面有很多模块,而mod_rewrite.so就是伪静态模块重写规则

    2.进入到ect/httpd/conf.modules.d在里面随便打开一个文件(01-cgi.conf)看看

     3.编辑/etc/httpd/conf/httpd.conf文件,先esc再/LoadModule进行搜索

     4、现在我想访问www.imooc.test/1.htmp(是p)这样的路径,希望它能指导www.imooc.test/index.html文件里面来

    加入一个命令<IfModule> 如果mod_rewrite.c这个模块存在时,进行伪静态规则设置

    保存重启后访问:http://www.imooc.test/1.htmp 结果还是会到原来的页面,只不过地址栏显示1.htmp实现了伪静态

    伪静态是通过mod_rewrite.c这个模块实现的,rewrite可以做很多事情,关于它的规则可以搜索一下,apache的伪静态规则可以搜索学习,毕竟比较常用。

    Nginx基本操作

     

    扩展知识是重点,目前商业服务器都是使用Nginx,没有多少使用apache的

    安装

    1、关闭apache  sudo service httpd stop

    2、安装nginx  sudo yum install nginx   发现No pachage nginx available(没有nginx提供的软件包)

    然后搜索nginx  yum search nginx   发现显示确实没有nginx的安装包

     添加资源库:sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

     然后在安装nginx(俄罗斯人写的)  yum install nginx  安装好了默认没启动

    3、启动nginx  sudo service nginx start

    测试:

    1、首先关闭:sudo service nginx stop  然后重载:sudo service nginx reload  发现失败的,原因只有在启动状态重载才成功

    2、restart:sudo service nginx restart  restart是先杀死进程再重启进程,截止现在是开启状态

    3、reload:sudo service nginx reload  ps -ef | grep ngin发现进程存在  reload这个命令是个神奇的命令在运维界,比喻一个服务器在对外提供服务的时候,然后修改了一个配置,然后如果你直接进行restart假如服务器要停0.1秒,那么在这0.1秒访问的这个用户就访问不了,而reload就可以无缝迁移。

    进入/etc/nginx/看其配置文件ll  看到nginx的配置文件基本和apache差不多

    现在访问192.168.1.8

    nginx目录结构

    虚拟主机

    然后重载:sudo service nginx reload用浏览器访问www.imooc.test发现可以显示/data/www/index.html这个页面

    这次访问和上次是不一样的,因为httpd是关闭的,这次是在nginx服务下配置的虚拟主机

    验证

    Apache和Nginx不能同时启动起来,服务里面有一个概念,一个端口只能被一个服务所使用的,两个端口可以被两个服务使用,所以80端口对于它们就谁先启动谁先用

    上面就配置了一个域名,访问到了指定文件。那么怎么配置多域名多端口呢?

    绑定hosts,因为这个域名是我们随便取的,不被互联网认可,相当黑户(相当于重复做windows里面绑定那一步)

    但是

    多域名和多虚拟主机是不一样的,我们是一个虚拟主机用多个域名来访问同一个程序,实际情况下是多个域名访问的是不同程序代码

    伪静态

    Nginx的伪静态是默认开启的,Nginx的伪静态个人觉得简单点,而Apache要判断mo_rewrite这个模块是否存在

    我们希望访问的是www.imooc.test/1.htmp这样的一个网址可以访问到www.imooc.test/index.html默认页面上来

     现在nginx的关于伪静态的操作就完了,下面讲一个日志格式化

    日志个时候在nginx里面是可以自定义格式的,在apache里面要配很多关键字,而在nginx里面已经默认给我们配置好了

    命令:cd /etc/nginx     vim nginx.conf

     命令:sudo tail -f /var/log/nginx/access.log打开这个日志文件进行查看(tail:表示查看结尾的)

     当然也可以自定义配置日志的格式,在服务器上面会配置的复杂一点

     关于日志这一块,可以搜索nginx log_format进行学习配置。还有一个错误日志的自定义配置,便于排除日常服务器错误

     反向代理和负载均衡

    反向代理

      例如我有两台服务器,一台服务器上面安装了nginx,另一台服务器上安装了我的web应用程序。现在发送请求到nginx服务器上,而nginx作为代理可以向我们另一台服务器去请求资料这个过程就叫做反向代理的过程。可以说我们百度来的东西可能就是反向代理来的

    负载均衡

       在服务器里面是最常用的一种方式,比如一个网站的请求量比较大,一台服务器不能承受住的时候,我们会增加一台、两台、三台、四台、五台服务器,这五台服务器同时接受应用的请求,这五台服务器按照负载均衡的算法接受用户的请求。

     现在操作什么是反向代理什么是负载均衡

    演示反向代理用www.imooc.test测试页面进行测试  现在我要访问这个页面,这个页面进行配置了代理到哪里去

     

     负载均衡

    负载均衡在现实的意义上一般都是作为服务器分流的,在一个大型服务器里面

     调试技巧

    演示调试技巧将反向代理关闭掉

    nginx的调试功能,关于调试功能什么时候用呢?

  • 相关阅读:
    重温CLR(七 ) 属性和事件
    重温CLR(六)方法和参数
    KMP算法
    Webstorm 2019最新激活码
    bash: cd: too many arguments 报错
    mongoDB线上数据库连接报错记录
    常见的 eslint 基本报错信息
    git 查看项目代码统计命令
    npm 删除指定的某个包以及再次安装
    vue.config.js常用配置
  • 原文地址:https://www.cnblogs.com/djlindex/p/11565672.html
Copyright © 2020-2023  润新知