LinuxWEB服务器的部署及优化
1、用户常用关于web的信息
1.1.什么是www
www是world wide web的缩写,及万维网,也就是全球信息广播的意思
www可以结合文字、图形、影像以及声音等多媒体,超链接的方式将信息以Internet传递到世界各 处去。
1.2网址
URN:统一资源命名,P2P下载使用的磁力链接是URN的一种实现
URL:统一资源定位符用于描述某服务器某特定资源位置
两者区别:而URL提供查找该事物的方法。URN仅用于命名,而不指定地址
1.3URL组成
scheme 方案 访问服务器以获取资源时要使用哪种协议
user 用户 某些方案访问资源时需要的用户名
password 密码 用户对应的密码,中间用:分隔
scheme 方案 访问服务器以获取资源时要使用哪种协议
host 主机 资源宿主服务器的主机名或IP地址
port 端口 资源宿主服务器正在监听的端口号,很多方案有默认端口号
path 路径 服务器资源的本地名,由一个/将其与前面的URL组件分隔
params 参数 指定输入的参数,参数为名/值对,多个参数,用;分隔
query 查询 传递参数给程序,如数据库,用?分隔,多个查询用&分隔
frag 片段 一小片或一部分资源的名字,此组件在客户端使用,用#分隔
2.HTTP简介
HTTP协议:全称为Hyper Text Transfer Protocol(超文本传输协议)
2.1.http工作机制
http请求:http request
http响应: http response
2.1.1.web中常用的语言介绍
html语言 超文本标记语言
css 层叠样式表 表述网站的风格
js实现html和css实现不了的功能比如动画效果
2.2.http访问请求完整过程
1.建立连接:
TCP的3次握手建立链接,向服务器发送http请求,服务器拒绝或允许
2.接受请求
接受客户端请求报文对某个资源的一次请求过程web响应访问模型
3.处理请求:
服务器对请求报文进行解析,并获取请求的资源及请求方法等相关信息,根据方法,资源,首部和可选
的主体部分对请求进行处理常用请求Method: GET、POST、HEAD、PUT、DELETE、TRACE、OPTIONS
4.访问资源:
服务器获取请求报文中请求的资源web服务器,即存放了web资源的服务器,负责向请求者提供对方请求
的静态资源,或动态运行后生成的资源
5.构建响应报文:
一旦Web服务器识别除了资源,就执行请求方法中描述的动作,并返回响应报文。响应报文中包含有响
应状态码、响应首部,如果生成了响应主体的话,还包括响应主体、
2.3.状态代码
200 OK 客户端请求成功
400 Bad Request 客户端请求有语法错误,不能被服务器所理解
401 Unauthorized
请求未经授权,这个状态代码必须和 WWW-Authenticate报头域一起
使用
403 Forbidden 服务器收到请求,但是拒绝提供服务
404 Not Found 请求资源不存在,举个例子:输入了错误的UR
500 Internal ServerError
服务器发生不可预期的错误
503 Server Unavailable 服务器当前不能处理客户端的请求,一段时间后可能恢复正常
3.web服务的配置详解
3.1.Nginx的安装,使用
3.1.1安装
3.2.2启用
启用前记得关闭selinux以及防火墙
systemctl disable --now firewalld(关闭防火墙)
修改端口为80
指定默认发布文件
3.2Nginx配置
3.2.nginx虚拟主机
默认情况下nginx只能发布一个站点
如果要发布多个站点需要搭建多台nginx来满足,如果这样会浪费太多资源
为解决上述问题,启用nginx的虚拟主机即可
虚拟主机有两种模式,基于IP或者基于域名
3.2.2.基于IP的虚拟主机
ip addr add 172.25.254.111/24 dev ens160
ip addr add 172.25.254.222/24 dev ens160
mkdir -p /usr/share/nginx/vhostroot/{111,222}/html
echo 172.25.254.111 > /usr/share/nginx/vhostroot/111/html/index.html
echo 172.25.254.222 > /usr/share/nginx/vhostroot/222/html/index.html
vim vhost_ip.conf
server{
listen 172.25.254.111:80;
root /var/www/virtualdir/111/html;
index index.html index.html
}
server{
listen 172.25.254.222:80;
root /var/www/virtualdir/222/html;
index index.html index.htm
}
curl 172.25.254.222:8080
172.25.254.222
curl 172.25.254.111
172.25.254.111
3.2.3.基于域名的虚拟主机
mkdir -p /usr/share/nginx/vhostroot/{bbs,news}/html
echo news.easyqb.org> /usr/share/nginx/vhostroot/news/html/index.html
echo bbs.easyqb.org > /usr/share/nginx/vhostroot/bbs/html/index.html
vim vhost_name.conf
server {
listen 80;
server_name bbs.easylee.org;
root /usr/share/nginx/vhostroot/bbs/html;
index index.html index.htm;
}
server {
listen 80;
server_name news.easylee.org;
root /usr/share/nginx/vhostroot/bbs/html;
index index.html index.htm;
}
做域名解析前主机需要做本地解析
vim /etc/hosts
172.25.254.100 bbs.easylee.org news.easylee.org
3.2.4.web服务器的访问控制
3.5.3.1.基于IP的访问控制
mkdir -p /usr/share/nginx/vhostroot/bbs/html/admin
echo admin page > /usr/share/nginx/vhostroot/bbs/html/admin/index.html
vim vhost_name.conf
server {
listen 80;
root /usr/share/nginx/vhostroot/bbs/html;
index index.html index.htm;
server_name bbs.easylee.org;
}
location /admin/ {
allow 172.25.254.100;
deny all;
}
测试
在100中访问
curl bbs.easylee.org/admin/
admin page
在其他主机中访问
curl bbs.easylee.org/admin/
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.24.0</center>
</body>
</html>
设置认证访问控制
]# vim vhost_name.conf
server {
listen 80;
root /usr/share/nginx/vhostroot/bbs/html;
index index.html index.htm;
server_name bbs.easylee.org;
}
location /admin/ {
auth_basic on;
auth_basic_user_file /etc/nginx/.htpasswd;
}
测试:
未输入用户密码
curl bbs.easylee.org/admin/
<html>
<head><title>401 Authorization Required</title></head>
<body>
<center><h1>401 Authorization Required</h1></center>
<hr><center>nginx/1.24.0</center>
</body>
</html>
输入用户没密码
]# curl bbs.easylee.org/admin/ -uadmin:lee
admin page
3.3.部署https
1.生成密钥
mkdir -p /etc/nginx/certs
openssl req -newkey rsa:2048 -nodes -sha256 \
-keyout /etc/nginx/certs/easylee.org.key -x509 -days 365 \
-out /etc/nginx/certs/easylee.org.crt
2.配置nginx开启https功能
mkdir /usr/share/nginx/vhostroot/login/html -p
echo login.easylee.org > /usr/share/nginx/vhostroot/login/html/index.html
vim vhost_name.conf
server {
listen 443 ssl;
server_name login.easylee.org;
ssl_certificate /etc/nginx/certs/easylee.org.crt;
ssl_certificate_key /etc/nginx/certs/easylee.org.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
root /usr/share/nginx/vhostroot/login/html;
index index.html index.htm;
}
3.强制访问加密
vim vhost_name.conf
server {
listen 80;
server_name login.easylee.org;
rewrite ^/(.*)$ https://login.easylee.org/$1 permanent;
}
3.4.搭建动态网站
1.生成php测试页
mkdir -p /usr/share/nginx/html/php
vim /usr/share/nginx/html/php/index.php
<?php
phpinfo();
?>
2.配置web服务器对php页面的发布
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html/php;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
原文地址:https://blog.csdn.net/m0_70137002/article/details/143841499
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!