在这篇文章中,我们将为您详细介绍Web套接字的apache代理配置问题的内容,并且讨论关于套接字和http的相关问题。此外,我们还会涉及一些关于.NETWeb部件|Web部件管理器|Web部件区、Ap
在这篇文章中,我们将为您详细介绍Web 套接字的 apache 代理配置问题的内容,并且讨论关于套接字和http的相关问题。此外,我们还会涉及一些关于.NET Web 部件 | Web 部件管理器 | Web 部件区、Apache 依赖错误? org.apache.parquet.hadoop.codec.SnappyCodec 未找到 apache 库中的错误、apache 基础,apache 环境搭建,apache 的 3 种使用方式(IP、端口、域名)、asp.net-web-api – System.Web.Routing.RouteCollection不包含“MapHttpRoute”的定义 – VS 2012,Web API的知识,以帮助您更全面地了解这个主题。
本文目录一览:- Web 套接字的 apache 代理配置问题(套接字和http)
- .NET Web 部件 | Web 部件管理器 | Web 部件区
- Apache 依赖错误? org.apache.parquet.hadoop.codec.SnappyCodec 未找到 apache 库中的错误
- apache 基础,apache 环境搭建,apache 的 3 种使用方式(IP、端口、域名)
- asp.net-web-api – System.Web.Routing.RouteCollection不包含“MapHttpRoute”的定义 – VS 2012,Web API
Web 套接字的 apache 代理配置问题(套接字和http)
如何解决Web 套接字的 apache 代理配置问题
我的 apache 代理 2.4.48 配置有问题
我在本地 PC 中复制的基础结构如下:
后端监听 5002 端口
前端监听 5003 端口
apache 代理监听 80 端口,配置如下:
proxy.conf
RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^websocket$ [NC]
RewriteCond %{HTTP:CONNECTION} Upgrade [NC]
RewriteRule \\/socket\\/.* ws://localhost:5002%{REQUEST_URI} [P]
ProxyPass /api/ http://localhost:5002/
ProxyPassReverse /api/ http://localhost:5002/
ProxyPass / http://localhost:5003/
ProxyPassReverse / http://localhost:5003/
启用必要的模块。
web socket前端组件如下:
var websocketUrl = ''http://localhost/api'' + ''/socket'';
我暂时设置了上面的路径以加快测试速度
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="s" uri="http://www.springframework.org/tags"%>
<template>
<div></div>
</template>
<style scoped>
</style>
<script>
module.exports = {
name: ''web-socket-component'',data : function() {
return {
stompClient: null
}
},props: {
},methods: {
connectToWebsocket: function() {
var self = this;
debugger;
var websocketUrl = ''http://localhost/api'' + ''/socket'';
console.log(websocketUrl);
var socket = new SockJS(websocketUrl);
this.stompClient = Stomp.over(socket);
this.stompClient.debug = null;
this.stompClient.connect({},function (frame) {
console.log("WEB SOCKET");
self.stompClient.subscribe(''/topic/testSessions'',function (message) {
var socketBean = JSON.parse(message.body);
console.log("topic/testSessions");
EventBus.$emit(''update-testSessions-page'',socketBean);
});
self.stompClient.subscribe(''/topic/testRequests'',function (message) {
var socketBean = JSON.parse(message.body);
EventBus.$emit(''update-request-page'',socketBean);
});
},function(message) {
console.log(message);
});
}
},computed: {
},watch: {
},mounted() {
console.log("mounted");
this.connectToWebsocket();
},beforeMount(){
},};
</script>
当我打开浏览器通过 http://localhost 访问前端时,我看到了以下问题
网络端:
我的意见 RewriteRule 没有按预期工作。 因为我尝试使用正确的 url 测试 Web 套接字并且它工作正常。
URL 更改为测试应用程序: var websocketUrl = ''http://localhost:5002'' + ''/socket'';
你能告诉我哪个是代理配置吗?
解决方法
我更改了代理配置,现在工作正常:
新的代理配置:
RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^websocket$ [NC]
RewriteCond %{HTTP:CONNECTION} Upgrade [NC]
RewriteRule socket.* "ws://localhost:5002/socket$1" [P,L]
ProxyPass /api/ http://localhost:5002/
ProxyPassReverse /api/ http://localhost:5002/
ProxyPass / http://localhost:5003/
ProxyPassReverse / http://localhost:5003/
我从以下位置替换了 RewriteRule 正则表达式:
RewriteRule \\/socket\\/.* ws://localhost:5002%{REQUEST_URI} [P]
-->
RewriteRule socket.* "ws://localhost:5002/socket$1" [P,L]
测试后我明白问题出在错误的正则表达式
.NET Web 部件 | Web 部件管理器 | Web 部件区
如何解决.NET Web 部件 | Web 部件管理器 | Web 部件区
我在 ASP.NET Web 窗体中使用 Web 部件。我的项目运行正常。 但是,当我拖放 Web 部件管理器时出现此错误,谁能指导我如何在 Windows 10 中解决此问题。
与 sql Server 建立连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 sql Server 是否配置为允许远程连接。 (提供程序:sql 网络接口,错误:26 - 错误定位服务器/指定的实例)
Apache 依赖错误? org.apache.parquet.hadoop.codec.SnappyCodec 未找到 apache 库中的错误
如何解决Apache 依赖错误? org.apache.parquet.hadoop.codec.SnappyCodec 未找到 apache 库中的错误
目前正在尝试在不使用 Spark 的情况下使用 Java 读取镶木地板文件。这是我目前所拥有的,基于 Adam Melnyk''s blog post on the subject。
代码
ParquetFileReader reader = ParquetFileReader.open(file);
MessageType schema = reader.getFooter().getFileMetaData().getSchema();
List<Type> fields = schema.getFields();
PageReadStore pages;
--> while ((pages = reader.readNextRowGroup()) != null) {
long rows = pages.getRowCount();
LOG.info("Number of rows: " + rows);
MessageColumnIO columnIO = new ColumnIOFactory().getColumnIO(schema);
RecordReader recordReader = columnIO.getRecordReader(pages,new GroupRecordConverter(schema));
for (int i = 0; i < rows; i++) {
SimpleGroup simpleGroup = (SimpleGroup) recordReader.read();
simpleGroups.add(simpleGroup);
}
}
(注意箭头是我代码中抛出错误的行(167))
错误信息
org.apache.parquet.hadoop.BadConfigurationException: Class org.apache.parquet.hadoop.codec.SnappyCodec was not found
at org.apache.parquet.hadoop.CodecFactory.getCodec(CodecFactory.java:243)
at org.apache.parquet.hadoop.CodecFactory$HeapBytesDecompressor.<init>(CodecFactory.java:96)
at org.apache.parquet.hadoop.CodecFactory.createDecompressor(CodecFactory.java:212)
at org.apache.parquet.hadoop.CodecFactory.getDecompressor(CodecFactory.java:201)
at org.apache.parquet.hadoop.CodecFactory.getDecompressor(CodecFactory.java:42)
at org.apache.parquet.hadoop.ParquetFileReader$Chunk.readAllPages(ParquetFileReader.java:1519)
at org.apache.parquet.hadoop.ParquetFileReader$Chunk.readAllPages(ParquetFileReader.java:1402)
at org.apache.parquet.hadoop.ParquetFileReader.readChunkPages(ParquetFileReader.java:1023)
at org.apache.parquet.hadoop.ParquetFileReader.readNextRowGroup(ParquetFileReader.java:928)
at [myClasspath]([myClass].java:167)
依赖关系
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>3.1.1.3.1.4.0-315</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>3.1.1.3.1.4.0-315</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-launcher_2.12</artifactId>
<version>3.0.0-preview2</version>
</dependency>
<dependency>
<groupId>org.apache.parquet</groupId>
<artifactId>parquet-avro</artifactId>
<version>1.12.0</version>
</dependency>
似乎无法从 CodecFactory 类中找到 SnappyCodec 类,但我查看了我引用的库,该类在那里: referenced_libraries
CodecFactory 应该能够识别 SnappyCodec 类。有什么建议吗? 谢谢
解决方法
找到了解决方案。
所以问题是 SnappyCodec 类被我为我的应用程序配置的 maven shade 插件着色。
我是在使用 maven 打包 jar、使用 WinZip 打开该 jar 并检查打包 jar 的编解码器目录(我发现 SanppyCodec.class 不再存在的地方)后意识到这一点的。
解决方案是我需要将以下过滤器添加到我的 maven shade 插件的配置中:
<filter>
<artifact>org.apache.parquet:parquet-hadoop</artifact>
<includes>
<include>**</include>
</includes>
</filter>
<filter>
<artifact>org.apache.parquet:parquet-column</artifact>
<includes>
<include>**</include>
</includes>
</filter>
<filter>
<artifact>org.apache.parquet:parquet-encoding</artifact>
<includes>
<include>**</include>
</includes>
</filter>
基本上,maven-shade 是从 parquet-hadoop 工件中对看似随机的类进行着色,因此通过添加 <include>
过滤器,maven-shade 不会对其中的任何类进行着色,因此不会对 SnappyCodec 进行着色。其中的类文件。
执行此操作后,我需要添加其他两个过滤器,因为通过在 parquet-hadoop 工件上使用 <include>
标记,它随后将所有其他 parquet-* 工件排除在已编译的 jar 中。因此,我需要明确告诉它包括 parquet-column 和 parquet-encoding,因为我的应用程序在这些工件中使用了一些其他类。
这个配置意味着 maven-shader 不会触及这三个工件,这意味着在编译之前存在于这些工件中的任何和每个类在使用 maven 编译/打包它们之后都将保留在那里(因此,将在运行时存在) ,而它们以前不是,导致原始错误)。太棒了!
apache 基础,apache 环境搭建,apache 的 3 种使用方式(IP、端口、域名)
一台服务器上多个网站同时运行,基于域名访问,IP 访问,端口访问。
http 服务使用的端口是 80 HTTPS 使用的是 443
协议名称:// 机器地址:端口号 / 路径名 / 文件名
协议名称 —— 所使用的访问协议。如 http、ftp。
机器地址 —— 数据所在的机器,IP 地址 / 域名
端口号 —— 请求数据的数据源端口(可省略)
路径名 —— 数据所在的相对路径
文件名 —— 请求数据的文件名
web 组件分为客户端和服务器
服务器:主要是提供服务功能
客户端:主要是发送请求给服务器
比如百度公司,服务器在百度公司主要功能为:
那么 web 浏览器也就是客户端主要功能就是:
比如 200 就是成功发送请求并被服务器成功接收和处理
404 页面不存在
443 权限不够
500 服务器配置错误
Apache 默认配置:
默认情况下没有 apache 这个用户,当虚拟机配置完 apache 服务后用户自动生成,且属于系统用户。
ping 通 yum 仓库后使用 yum 命令下载安装 httpd 服务
可以看一下系统已经自动创建 apache 用户。因为它不是 root 用户所以权限很小,可以用的命令也很少,当中病毒时不会对主机造成很大的影响他只能做一些 apache 用户权限内的事情。配置文件时尽量使服务器的用户权限最小化。
安装完 httpd 服务后需要配置 httpd 服务,比如开机启动 enable 等。
systemctl start httpd 启动 httpd 服务,查看 httpd 服务和 80 端口状态。
80 端口:
设置开机启动:
在 var/www/html 下可以设置网站主页 但是配置文件中默认打开的是 index.html ,如果网站主页文件名字不是 index.html 的话,需要在配置文件里把 index.html 更改为自己重命名的文件名才可以。这样可以不需要输入主页文件名称就可以直接打开网站主页。如果目录也由 /var/www 换为了其他目录,不仅要将配置文件中指定的访问目录更改为相应目录,同时要将相应目录的权限和所属组主进行更改并且重启生效更改后的目录权限。
比如下面我们已经在 html 目录下写好主页文件
那么我们在应用程序中的浏览器输入 IP 地址(192.168.2.100 也可以加上端口,192.168.2.100:80,或者 http://localhost,当然这里用 127.0.0.1 也是可以的,他代表虚拟机本身,比如 ping 127.0.0.1 和 ping localhost 是一样的)就可以显示主页文件了(这里最后不加 /index.html 也是可以的,因为配置文件里已经写好了)。
如果想要修改默认文件名,需要更改 httpd.conf 文件中的配置,将 index.html 改成自己想设置的名字。改完之后需要重启 httpd 服务才会生效。
有关 httpd 服务的文件
关于 httpd.conf 配置文件里的参数解释
apache 服务程序配置文件分为 3 种类型:注释行信息、全局配置、区域配置
练习 1 将网站数据放在 /home/wwwroot 目录
第 1 步:编辑 Apache 服务程序的主配置文件,将其做如下图所示修改。
第 2 步:建立网站数据目录:
第 3 步:创建首页文件:
第 4 步:重新启动 Apache 服务:
第 5 步:查看首页
一、基于 IP 访问网站
首先用 nmtui 命令给 ens33 网卡添加多个 IP
配置完后重启网卡 (在启用链接里禁用 再激活一次)
分别 ping 刚才配置的 3 个 IP(101、102、103)检查是否无误
接下来分别创建 3 个网站数据目录
mkdir -p /home/wwwroot/101
mkdir -p /home/wwwroot/102
mkdir -p /home/wwwroot/103
并在其中写入主页文件
echo “192.168.2.101” > /home/wwwroot/101/index.html
echo “192.168.2.102” > /home/wwwroot/102/index.html
echo “192.168.2.103” > /home/wwwroot/103/index.html
接下来我们要配置 httpd.conf 文件(首先也可以备份一下 cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak)
vim /etc/httpd/conf/httpd.conf
在配置文件中添加下图内容(其余 3 个基本和下图一样,只需改 102 所在的地方)
验证:应用程序 一 > 火狐浏览器 一 > http://192.168.1.101(102、103)
二、基于域名访问
(首先把 httpd.conf 这个配置文件里的内容还原为初始默认状态,可以恢复快照或者把刚才的备份的配置文件覆盖回去)
按下图修改 vim /etc/hosts 文件内容
每行只能写一条
创建 3 个网站数据目录并写入主页文件:
mkdir -p /home/wwwroot/{www,bbs,ftp}
在这三个网站数据目录中写入主页文件,内容为该网站的域名
echo “www.zh1z3ven.com” > /home/wwwroot/www/index.html
echo “bbs.zh1z3ven.com” > /home/wwwroot/bbs/index.html
echo “ftp.zh1z3ven.com” > /home/wwwroot/ftp/index.html
配置 httpd 服务的配置文件 /etc/httpd/conf/httpd.conf
按下图修改(剩下两个域名配置同理,只需把 www 的地方改为 bbs 或 ftp 即可)
修改完配置后重启 httpd 服务
验证:还是打开浏览器,依次输入三个域名进行搜索即可
三、基于端口访问
(如果做了上面实验更改过配置文件的注意还原回去配置文件或者直接恢复快照)
先创建三个网站数据目录并写入主页文件:
mkdir -p /home/wwwroot/{6666,7777,8888}
写入主页文件:
echo "port:6666" > /home/wwwroot/6666/index.html
echo "port:7777" > /home/wwwroot/7777/index.html
echo "port:8888" > /home/wwwroot/8888/index.html
修改配置文件 vim /etc/httpd/conf/httpd.conf
如下图
修改完后重启服务
验证:
(如果出现 firefox 给错误提示:此网址使用了一个通常用于网络浏览以外目的的端口。出于安全原因,Firefox 取消了该请求
解决办法:https://jingyan.baidu.com/album/4e5b3e19eb921991901e24f7.html?picindex=5)
asp.net-web-api – System.Web.Routing.RouteCollection不包含“MapHttpRoute”的定义 – VS 2012,Web API
我已经用Web API创建了一个新的MVC 4应用程序。基于一些示例和教程,我开始配置我的路由:
routes.MapHttpRoute( name: "Controller only",routeTemplate: "api/{controller}" );
但是,这会导致RouteCollection不包含MapHttpRoute的定义的错误。我是否安装了一些DLL?
据我看到,我已经安装了所有正确的DLL和版本。
解决方法
今天关于Web 套接字的 apache 代理配置问题和套接字和http的介绍到此结束,谢谢您的阅读,有关.NET Web 部件 | Web 部件管理器 | Web 部件区、Apache 依赖错误? org.apache.parquet.hadoop.codec.SnappyCodec 未找到 apache 库中的错误、apache 基础,apache 环境搭建,apache 的 3 种使用方式(IP、端口、域名)、asp.net-web-api – System.Web.Routing.RouteCollection不包含“MapHttpRoute”的定义 – VS 2012,Web API等更多相关知识的信息可以在本站进行查询。
本文标签: