当前位置:   article > 正文

Linux——web服务配置

Linux——web服务配置

一、HTTP概念

HTTP请求报文客户端发送给服务器的消息,用于请求特定资源或执行特定操作。HTTP请求报文由 请求行、请求头部和请求正文三部分组成。

请求方法: HTTP 请求方法是指客户端与服务器通信时,客户端所请求执行的动作。常见的 HTTP 请求方法包括:
GET :请求获取指定资源的表示形式。使用 GET 方法,客户端请求服务器发送某个资源。
POST :向指定资源提交数据,用于处理表单提交、文件上传等操作。
PUT :向指定资源位置上传其最新内容,用于更新资源。
DELETE :请求服务器删除指定资源。
HEAD :请求获取与实体相对应的头部信息,用于获取资源的元数据。
OPTIONS :请求查询服务器支持的 HTTP 方法。
TRACE :请求服务器回显收到的请求消息,用于测试或诊断。
HTTP 响应报文:服务器发送给客户端的消息,用于回复客户端的请求。 HTTP 响应报文由状态行、响应头部和响应正文三部分组成。
响应状态码 : HTTP 响应状态码是服务器向客户端返回的 3 位数字,用于表示对请求的处理结果。常见的 HTTP 响应状态码包括:
200 OK :请求成功。
301 Moved Permanently :永久重定向,请求的资源已经被分配了新的 URL 400 Bad Request :客户端发送的请求有错误,服务器无法理解。
401 Unauthorized :请求要求身份验证,需要提供有效的用户名和密码。
404 Not Found :服务器未找到请求的资源。
500 Internal Server Error :服务器内部错误,无法完成请求。
503 Service Unavailable :服务器暂时无法处理请求,通常是由于维护或过载。
4代表客户端、5代表服务端的错误

二、安装

  1. [root@webserver ~]# yum -y install httpd
  2. [root@webserver ~]# systemctl enable --now httpd #启动并开机自启动
  3. Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service →
  4. /usr/lib/systemd/system/httpd.service.
  5. [root@webserver ~]# echo test for apache httpd > /var/www/html/index.html
  6. [root@webserver ~]# cat /var/www/html/index.html
  7. test for apache httpd
  8. [root@webserver ~]# curl 127.0.0.1
  9. test for apache httpd
  10. [root@webserver ~]# curl -I 127.0.0.1
  11. HTTP/1.1 200 OK //状态码为 200 说明服务端
  12. //为客户端的访问提供了响应代码为200
  13. 响应
  14. Date: Sun, 21 Apr 2024 08:49:55 GMT
  15. Server: Apache/2.4.37 (Red Hat Enterprise Linux)
  16. Last-Modified: Sun, 21 Apr 2024 08:49:23 GMT
  17. ETag: "16-6169765c97f13"
  18. Accept-Ranges: bytes
  19. Content-Length: 22
  20. Content-Type: text/html; charset=UTF-8

2、配置和维护

安装 httpd 软件包后,默认配置将写入到 /etc/httpd/conf/httpd.conf ,也叫作 主配置文件
此配置针对通过纯 http 进入任何主机名的请求来提供 /var/www/html 的内容。
httpd.conf 的基本语法由两部分组成 :Key Value 配置指令和类似于 HTML 的块,后者中嵌入了其他配置
指令。块范围之外的键值对会影响 整个服务器配置,而块中的指令通常仅应用于块所指示的配置的某一
部分,或者在满足了块设置的要求时才会应用。如下图所示:

配置分析

  1. [root@webserver ~]# grep -v '#' /etc/httpd/conf/httpd.conf | grep -v '^$'
  2. ServerRoot "/etc/httpd" # 使用相对路径引入文件到主配置文件时,相对路径+此处的路径
  3. 来形成一个从/开始的绝对路径
  4. Listen 80 # 监听TCP 80端口,可以使用Ip地址:端口的当时修改
  5. # 可以配置多个Listen监听多个不同的端口,但是重复的
  6. Listen配置将导致HTTPD无法启动
  7. Include conf.modules.d/*.conf
  8. #所有/etc/httpd/conf.modules.d/目录下.conf结尾的文
  9. 件都 # 导入到/etc/httpd/conf/httpd.conf
  10. User apache # 程序用户为apache
  11. Group apache # 程序组账号为apache
  12. ServerAdmin root@localhost # 服务器管理员邮箱
  13. <Directory /> # <Directory>块设置指定目录以及所有后代目录的配置指令。
  14. # <Directory>块中的常见指令包括以下几种:
  15. # Allow0verride None:对于按目录的配置设置,将不会查阅
  16. # .htaccess 文件。将其设置为任何其他设置都将导致
  17. # 性能损失以及可能的安全后果。
  18. # Require A11 Denied:httpd 将拒绝提供此目录的内容,
  19. # 当客户端请求时,将返回HTTP/1.1403 Forbidden错误。
  20. # Require A11 Granted:允许访问此目录。对普通内容树之
  21. # 外的目录设置此选项可能会产生安全影响。
  22. # 0ptions[[+|-]0PTIONS]...:为某个目录开启(或关闭)
  23. # 特定选项。例如,如果请求了某个目录并且该目录中不存在
  24. # index.htm1文件,则Indexes 选项将显示一个目录列表。
  25. AllowOverride none
  26. Require all denied
  27. </Directory>
  28. DocumentRoot "/var/www/html" #此设置确定 httpd 将搜索请求文件的位置。重要的一点
  29. 是,
  30. # 此处指定的目录可以由httpd(常规权限和 SELinux)读
  31. # ,并且对应的 <Directory>块已声明为允许访问。
  32. <Directory "/var/www">
  33. AllowOverride None
  34. Require all granted
  35. </Directory>
  36. <Directory "/var/www/html">
  37. Options Indexes FollowSymLinks
  38. AllowOverride None
  39. Require all granted
  40. </Directory>
  41. <IfModule dir_module> # 仅当加载指定扩展模块时,此块才会应用其内容。在此情况
  42. 下,
  43. # 会加载dir_module,因此DirectoryIndex 指令可用于
  44. # 指定在请求目录时应使用的文件。
  45. DirectoryIndex index.html
  46. </IfModule>
  47. <Files ".ht*"> # 类似于Directory,
  48. Require all denied
  49. </Files>
  50. ErrorLog "logs/error_log" # 错误日志
  51. LogLevel warn
  52. <IfModule log_config_module> # 指定了几种日志格式,分别是combined、common
  53. combinedio;默认场景下均使用combined这种日志格式
  54. LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
  55. combined
  56. LogFormat "%h %l %u %t \"%r\" %>s %b" common
  57. <IfModule logio_module>
  58. LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{UserAgent}i\" %I %O" combinedio
  59. </IfModule>
  60. CustomLog "logs/access_log" combined
  61. </IfModule>
  62. <IfModule alias_module>
  63. ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
  64. </IfModule>
  65. <Directory "/var/www/cgi-bin">
  66. AllowOverride None
  67. Options None
  68. Require all granted
  69. </Directory>
  70. <IfModule mime_module>
  71. TypesConfig /etc/mime.types
  72. AddType application/x-compress .Z
  73. AddType application/x-gzip .gz .tgz
  74. AddType text/html .shtml
  75. AddOutputFilter INCLUDES .shtml
  76. </IfModule>
  77. AddDefaultCharset UTF-8 # 此设置向 text/plain和 text/htm1 资源的
  78. # Content-Type 报头中添加 charset 部分。
  79. # 可以使用 AddDefaultCharset 0ff将其禁用
  80. <IfModule mime_magic_module>
  81. MIMEMagicFile conf/magic
  82. </IfModule>
  83. EnableSendfile on # 启用 EnableSendfile 以提高文件传输的性能和效
  84. 率。
  85. IncludeOptional conf.d/*.conf # 所有/etc/httpd/conf.d/目录下.conf结尾的文件都
  86. # 导入到/etc/httpd/conf/httpd.conf

修改配置文件,改变httpd的一些默认配置:

监听的端口号
修改默认的首页文件保存目录
对于防火墙和 selinux 不熟悉的同学建议关闭防火墙和修改 SELinux 为宽容模式
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/500116
推荐阅读
相关标签
  

闽ICP备14008679号