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

【网络运维】Linux:常见 Web 服务器

常见 WEB 服务器

WEB 服务器简介

WEB也称为WWW(WORLD WIDE WEB),中文名字为万维网、全球信息网等,主要功能是提供网上信息浏览服务。Web服务器可以为Internet上的用户提供WWW、Email和FTP等各种Internet服务。

WEB起源于1989年3月,伯纳斯-李 (Tim Berners-Lee) 为了更有效率地让欧洲核物理实验室的科学家可以分享及更新他们的研究成果, 于是他开发出超文件传输协议(Hyper Text Transport Protocol, HTTP)。为了让 HTTP 这个协议得以顺利的应用,大约在90 年代初期,由伊利诺大学的国家超级计算机应用中心 开发出了HTTPd (HTTP daemon )服务器,也就是后来的Apache。

常见的WEB服务器,除了Apache,还有一些Nginx,Lighttpd,IIS等。

本文主要介绍Nginx服务器和Tomcat服务器的配置与应用。

Nginx

Nginx是一款高性能的HTTP和反向代理服务器,能够选择高效的epoll、kqueue、eventport最为网络I/O模型,在高连接并发的情况下,能够支持高达5万个并发连接数的响应,而内存、CPU等系统资源消耗却非常低,运行非常稳定。

安装 nginx
# 安装 nginx
[root@server ~]# yum -y install nginx# 启动 nginx
[root@server ~]# systemctl enable nginx --now# 准备主页
[root@server ~]# mv /usr/share/nginx/html/index.html{,.ori}
[root@server ~]# echo Hello World From Nginx > /usr/share/nginx/html/index.html# 防火墙
[root@server ~]# firewall-cmd --add-service=http --permanent
[root@server ~]# firewall-cmd --reload[root@client ~]# curl http://www.furongwang.cloud
# windows客户端修改C:\Windows\System32\drivers\etc\hosts
# Linux或Unix修改 /etc/hosts
# 添加如下记录
10.1.8.10 www.furongwang.cloud
启用 UserDir
# 配置 nginx
[root@server ~]# vim /etc/nginx/nginx.conf
# add into [server] section
server {location ~ ^/~(.+?)(/.*)?$ {alias /home/$1/public_html$2;index  index.html index.htm;}
}
[root@server ~]# systemctl restart nginx# If SELinux is enabled, change boolean setting.
[root@server ~]# setsebool -P httpd_enable_homedirs on# Create a test page with a common user to make sure it works normally.
[furongwang@server ~]$ chmod 711 /home/furongwang
[furongwang@server ~]$ mkdir ~/public_html
[furongwang@server ~]$ chmod 755 ~/public_html
[furongwang@server ~]$ vim ~/public_html/index.html
<html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: furongwanger;">
Nginx UserDir Test Page
</div>
</body>
</html># 测试
[root@client ~]# curl http://www.furongwang.cloud/~furongwang/
虚拟主机

同一个web服务器提供多个站点。

根据名称
[root@server ~]# vim /etc/nginx/conf.d/vhost-name.conf
server {server_name  web1.furongwang.cloud;root         /usr/share/nginx/web1;
}
server {server_name  web2.furongwang.cloud;root         /usr/share/nginx/web2;
}
  • 要在Windows访问网页,需要在hosts文件添加10.1.8.10 web1.furongwang.cloud(web2同理)
根据 port
[root@server ~]# vim /etc/nginx/conf.d/vhost-port.conf
server {listen       8081;server_name  www.furongwang.cloud;root         /usr/share/nginx/8081;
}
server {listen       8082;server_name  www.furongwang.cloud;root         /usr/share/nginx/8082;
}
配置SSL/TLS
生成证书
#--1--生成私钥 
[root@server ~]# openssl genrsa -out www.key 2048  #--2--生成请求文件csr
[root@server ~]# openssl req -new -key www.key -out www.csr -subj "/C=CN/ST=JS/L=NJ/O=LM/OU=DEVOPS/CN=www.furongwang.cloud/emailAddress=furongwang@furongwang.cloud" 
#CN的值必须是网站域名  #--3--使用自己的私钥对请求文件签名,以生成证书 
[root@server ~]# openssl x509 -req -days 3650 -in www.csr -signkey www.key -out www.crt
配置站点
[root@server ~]# mkdir /etc/ssl/certs/www.furongwang.cloud
[root@server ~]# mv www* /etc/ssl/certs/www.furongwang.cloud
[root@server ~]# vim /etc/nginx/conf.d/ssl.conf
server {listen       443 ssl http2 default_server;listen       [::]:443 ssl http2 default_server;server_name  www.furongwang.cloud;root         /usr/share/nginx/html;# 证书ssl_certificate "/etc/ssl/certs/www.furongwang.cloud/www.crt";# 私钥ssl_certificate_key "/etc/ssl/certs/www.furongwang.cloud/www.key";
}[root@server ~]# systemctl restart nginx# 配置HTTP重定向到https.
[root@server ~]# vim /etc/nginx/nginx.confserver {listen       80 default_server;listen       [::]:80 default_server;server_name  www.furongwang.cloud;root         /usr/share/nginx/html;# 添加 重定向return       301 https://$host$request_uri;}
[root@server ~]# systemctl restart nginx# 防火墙设置
[root@server ~]# firewall-cmd --add-service=https --permanent
[root@server ~]# firewall-cmd --reload# 测试
[root@client ~]# curl http://www.furongwang.cloud/
[root@client ~]# curl -k https://www.furongwang.cloud/

在这里插入图片描述

配置基本认证

用户名和密码使用plain text发送,所以最好配置SSL/TLS。

#安装工具
[root@server ~]# yum -y install httpd-tools
[root@server ~]# vim /etc/nginx/conf.d/ssl.conf
# add into the [server] section
server {.....location /auth-basic/ {auth_basic            "Basic Auth";auth_basic_user_file  "/etc/nginx/.htpasswd";}
}[root@server ~]# systemctl restart nginx# add user for Basic authentication
[root@server ~]# htpasswd -c /etc/nginx/.htpasswd furongwang
New password: 
Re-type new password: 
Adding password for user furongwang# create a test page
[root@server ~]# mkdir /usr/share/nginx/html/auth-basic
[root@server ~]# vim /usr/share/nginx/html/auth-basic/index.html
<html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: furongwanger;">
Test Page for Basic Authentication
</div>
</body>
</html># 测试
[root@client ~]# curl http://www.furongwang.cloud/auth-basic/
支持动态脚本
使用 PHP
# 安装PHP和php-fpm,建议把其他的扩展包一起安装
[root@server ~]# yum install -y php php-fpm# 建议把其他的扩展包一起安装
[root@server ~]# yum install -y php-gd php-common php-pear php-mbstring php-mcrypt# 查看 php 版本
[root@server ~]# php -v# 测试 php 是否正常
[root@server ~]# echo "<?php echo 'PHP Test Page'.\"\n\"; ?>" > php_test.php 
[root@server ~]# php php_test.php 
PHP Test Page# 准备测试页,使用phpinfo查看详细信息
[root@server ~]# echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/info.php # 测试
[root@client ~]# curl http://www.furongwang.cloud/info.php
使用 FastCGI
# install from EPEL
[root@server ~]# yum install -y fcgiwrap
[root@server ~]# vim /etc/nginx/fcgiwrap.conf
# for example, enable CGI under [/cgi-bin]
location /cgi-bin/ {gzip off;root  /usr/share/nginx;fastcgi_pass  unix:/var/run/fcgiwrap.socket;include /etc/nginx/fastcgi_params;fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
}[root@server ~]# mkdir -m 755 /usr/share/nginx/cgi-bin
[root@server ~]# vim /etc/nginx/conf.d/ssl.conf
# add settings into [server] section of a site definitionserver {.....include fcgiwrap.conf;
}[root@server ~]# systemctl restart nginx
# Create Systemd file for FastCGI Wrap service and Start them.
[root@server ~]# vim /usr/lib/systemd/system/fcgiwrap.service
[Unit]
Description=Simple CGI Server
After=nss-user-lookup.target
Requires=fcgiwrap.socket[Service]
EnvironmentFile=/etc/sysconfig/fcgiwrap
ExecStart=/usr/sbin/fcgiwrap ${DAEMON_OPTS} -c ${DAEMON_PROCS}
User=nginx
Group=nginx[Install]
Also=fcgiwrap.socket
[root@server ~]# vim /usr/lib/systemd/system/fcgiwrap.socket
[Unit]
Description=fcgiwrap Socket[Socket]
ListenStream=/run/fcgiwrap.socket[Install]
WantedBy=sockets.target
[root@server ~]# systemctl enable --now fcgiwrap# If SELinux is enabled, change policy.
[root@server ~]# vim nginx-www.te
module nginx-server 1.0;require {type httpd_t;type var_run_t;class sock_file write;
}#============= httpd_t ==============
allow httpd_t var_run_t:sock_file write;[root@server ~]# checkmodule -m -M -o nginx-server.mod nginx-server.techeckmodule: loading policy configuration from nginx-server.te
checkmodule: policy configuration loaded
checkmodule: writing binary representation (version 19) to nginx-server.mod
[root@server ~]# semodule_package --outfile nginx-server.pp --module nginx-server.mod[root@server ~]# semodule -i nginx-server.pp

测试

# 准备测试文件
# Create a test scripts with a language (example below is Python3) under the directory you set CGI executable ([/usr/share/nginx/cgi-bin] on this example) and Access to it to verify CGI works normally.
[root@server ~]# vim /usr/share/nginx/cgi-bin/index.cgi
#!/usr/bin/python3
print("Content-type: text/html\n")
print("<html>\n<body>")
print("<div style=\"width: 100%; font-size: 40px; font-weight: bold; text-align: furongwanger;\">")
print("CGI Script Test Page")
print("</div>")
print("</body>\n</html>")[root@server ~]# chmod 755 /usr/share/nginx/cgi-bin/index.cgi # 测试
[root@client ~]# curl http://www.furongwang.cloud/cgi-bin/index.cgi
部署反向代理

客户端访问代理服务器,代理服务器会将客户端请求发送给真实服务器。

反向代理实现了隐藏内部服务器。

角色说明
  • 代理服务器 proxy 10.1.8.20

  • 真实服务器 server 10.1.8.10

代理服务器配置
# 配置解析
[root@proxy ~]# echo '10.1.8.10 www.furongwang.cloud' >> /etc/hosts# 安装 nginx
[root@proxy ~]# yum -y install nginx# 启动 nginx
[root@proxy ~]# systemctl enable --now nginx# 防火墙
[root@proxy ~]# firewall-cmd --add-service=http --permanent
[root@proxy ~]# firewall-cmd --reload# 配置代理,server部分更改如下
[root@proxy ~]# vim /etc/nginx/nginx.conf
# change [server] section like followsserver {listen      80 default_server;listen      [::]:80 default_server;server_name _;root         /usr/share/nginx/html;#添加如下内容proxy_redirect      off;proxy_set_header    X-Real-IP $remote_addr;proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header    Host $http_host;......#新增 location 规则location /proxy/ {proxy_pass http://www.furongwang.cloud/;}}
[root@proxy ~]# systemctl restart nginx# If SELnux is enabled, change boolean setting.
[root@proxy ~]# setsebool -P httpd_can_network_connect on
真实服务器配置
# 安装nginx
[root@server ~]# yum -y install nginx# 启动nginx
[root@server ~]# systemctl enable --now nginx# 防火墙
[root@server ~]# firewall-cmd --add-service=http --permanent
[root@server ~]# firewall-cmd --reload# 准备测试页
[root@server ~]# echo hello furongwang > /usr/share/nginx/html/test.html# 测试效果
[root@client ~]# curl http://www.furongwang.cloud/test.html

Tomcat

Tomcat 由来

最初是由Sun公司詹姆斯·邓肯·戴维森开发的,后来他将其变为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目O’Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(英语公猫或其他雄性猫科动物)。而O’Reilly出版的介绍Tomcat的书籍(ISBN 0-596-00318-8)[1]的封面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计为一只公猫。

Tomcat 介绍

Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和用户并发访问不多的场合下使用,是开发和调试JSP 程序的首选。因为Tomcat技术先进、性能稳定而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。

Tomcat 不仅仅是一个Java容器,同时也具有传统的Web服务器的功能:处理HTML页面,但是与Apache/Nginx 相比,其处理静态HTML的能力不如Apache/Nginx。通常将Tomcat和Apache/Nginx集成到一起,让Apache/Nginx处理静态HTML,让Tomcat处理JSP和Java

JSP全名为Java Server Pages,中文名叫java服务器页面,是一个简化的Servlet设计,由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

官方网站:http://tomcat.apache.org/

Tomcat 虽然可以跑 jsp 网页,通常不会使用它作为web服务器,而是作为中间件。

Tomcat 部署
# 安装tomcat,会自动安装java-1.8.0-openjdk-headless
[root@server ~]# yum install -y tomcat# 验证版本
[root@server ~]# java -version
openjdk version "1.8.0_412"
OpenJDK Runtime Environment (build 1.8.0_412-b08)
OpenJDK 64-Bit Server VM (build 25.412-b08, mixed mode)# 启动tomcat
[root@server ~]# systemctl enable --now tomcat.service# tomcat 默认发布目录是 /var/lib/tomcats/webapps
[root@server ~]# grep ^TOMCATS_BASE /etc/tomcat/tomcat.conf
TOMCATS_BASE="/var/lib/tomcats/"
[root@server ~]# grep appBase /etc/tomcat/server.xml <Host name="localhost"  appBase="webapps"# 准备测试页面
[root@server ~]# cd /var/lib/tomcat/webapps/
[root@www webapps]# mkdir test
[root@www webapps]# vim test/index.jsp
<html><head><title>第一个 JSP 程序</title></head><body><%out.println("Hello World!");%></body>
</html># 测试
[root@server ~]# curl http://www.furongwang.cloud:8080/test/index.jsp
管理界面
# 安装管理页面
[root@server ~]# yum install -y tomcat-webapps tomcat-admin-webapps# 安装在线文档--可选
[root@server ~]# yum install -y tomcat-docs-webapp

如果服务器没有图形化,则安装以下软件包

yum install -y mesa-dri-drivers libglvnd-glx xorg-x11-xauth firefox
# 添加 root 用户
[root@server ~]# vim /etc/tomcat/tomcat-users.xml 
<?xml version='1.0' encoding='utf-8'?>
......
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="root" password="root" roles="manager-gui,admin-gui"/>
</tomcat-users># 重启tomcat服务器
[root@www tomcat]# systemctl restart tomcat

进入管理界面

管理界面默认只能从tomcat本地访问 http://localhost:8080

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/a/325953.html

相关文章:

  • Vuex和Pina的区别
  • 利用coze搭建智能体和应用的区别
  • SQL复杂查询
  • ListNode* dummy = new ListNode();什么意思
  • 视觉相机偏移补偿
  • 5G NR 非地面网络 (NTN) 5G、太空和统一网络
  • 5G NR 非地面网络 (NTN)
  • 【接口自动化测试】---自动化框架pytest
  • 《事务隔离级别与 MVCC 机制深度剖析》
  • 直流电机双闭环控制系统,转速电流双闭环调速【simulink仿真】
  • 软件开发 - danger 与 dangerous、warn 与 warning
  • 【秋招笔试】2025.08.10-大疆秋招笔试题-第一题
  • 【前端基础】15、列表元素、表格元素、表单元素(注:极其粗略的记载。)
  • 稠密检索:基于神经嵌入的高效语义搜索范式
  • 新产品、新视觉、新官网,同元软控官网正式上线啦
  • LAZADA跨境电商自养号测评环境搭建:安全与合规的底层逻辑解析
  • 【已解决】报错:WARNING: pip is configured with locations that require TLS/SSL
  • HTTPS 协议原理 ——4种方案
  • 5G NTN 卫星测试产品
  • vue+django 大模型心理学智能诊断评测系统干预治疗辅助系统、智慧心理医疗、带知识图谱
  • Vue 中的 Class 与 Style 绑定详解2
  • js数组reduce高阶应用
  • Linux入门DAY21
  • 硬件学习笔记--76 开关电源隔离型拓扑结构介绍
  • 九联科技基于海思 Hi2131 芯片的4G Cat.1模组在智能水表领域的应用优势
  • 押注AI大模型交付业务,亚信科技构建战略支点
  • 【02】卧安科技——卧安科技 嵌入式软件工程师-校招笔试 ,题目记录及解析
  • Vue3 学习教程,从入门到精通,Vue 3 选项式 API 语法知识点与案例详解(33)
  • 爬虫与数据分析相结合案例总结
  • 远程服务器下载百度云里文件