当前位置: 首页 > article >正文

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;

}


http://www.kler.cn/a/400099.html

相关文章:

  • 在云服务器搭建 Docker
  • 【DQ Robotics】基于SVD的全秩矩阵逆
  • 两大新兴开发语言大比拼:Move PK Rust
  • Python 神经网络项目常用语法
  • 【MySQL】RedHat8安装mysql9.1
  • Solana应用开发常见技术栈
  • Jupyter Notebook 与 PyTorch 配置教程
  • 迷你游戏作为电子学习中的趋势工具
  • hadoop3.x 新特性
  • 学习threejs,使用TWEEN插件实现动画
  • 利用正则表达式批量修改文件名
  • Python读取prophesee相机输出的raw文件
  • java itext后端生成pdf导出
  • 企业架构框架之银行业参考架构BIAN
  • 数据分析-50-时间序列信息编码之采用正余弦循环编码
  • kafka-clients之max.block.ms
  • 【时间之外】IT人求职和创业应知【37】-AIGC私有化
  • 关于GCC内联汇编(也可以叫内嵌汇编)的简单学习
  • 基于GPU器件行为的创新分布式功能安全机制为智能驾驶保驾护航
  • 2. kafka 生产者
  • 【python】使用 DrissionPage 库进行网页自动化操作和数据提取
  • 【云原生后端开发流程及详细教程】
  • IDEA 开发工具常用快捷键有哪些?
  • zookeeper安装教程
  • openwebui使用
  • node.js 入门级基础应用