我正在尝试使用Docker Compose将与我的web应用程序(Vue.js)相关的所有内容都封装起来,包括Nginx
我有一个错误:
“代理服务器无法处理该请求
原因:与远程服务器进行SSL握手时出错”
如果有人能发现我哪里出错了,我将非常感激!
Docker撰写。yml
services:
my-app-prod:
container_name: my-app-prod
build:
context: .
dockerfile: Dockerfile-prod
ports:
- '8080:80'
- '4567:443'
Dockerfile产品
FROM node:12.2.0-alpine as build
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY package.json /app/package.json
RUN npm install --silent
RUN npm install @vue/cli@3.7.0 -g
COPY . /app
RUN npm run build
# production environment
FROM nginx:1.16.0-alpine
COPY --from=build /app/dist /usr/share/nginx/html
EXPOSE 80
EXPOSE 443
CMD ["nginx", "-g", "daemon off;"]
场地可用/名称为“场地”。fr.conf
ServerName nom-de-domaine.fr
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
ProxyPassReverseCookieDomain 127.0.0.1 nom-de-domaine.fr
RewriteEngine on
RewriteCond %{SERVER_NAME} = nom-de-domaine.fr
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
场地可用/名称为“场地”。fr-le-ssl。形态
<VirtualHost *:443>
ServerName nom-de-domaine.fr
# ProxyPreserveHost On
# SSLProxyEngine On
# SSLProxyVerify none
# SSLProxyCheckPeerCN off
# SSLProxyCheckPeerName off
# SSLProxyCheckPeerExpire off
# SSLEngine on
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
ProxyPass / https://127.0.0.1:4567/
ProxyPassReverse / https://127.0.0.1:4567/
ProxyPassReverseCookieDomain 127.0.0.1 nom-de-domaine.fr
SSLCertificateFile /etc/letsencrypt/live/ nom-de-domaine.fr /fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/ nom-de-domaine.fr/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/ nom-de-domaine.fr /chain.pem
Include /etc/letsencrypt/options-ssl-apache.conf
CustomLog "/var/log/apache2/ nom-de-domaine.fr _log" "%h %l %u %t \"%r\" %>s %b"
</VirtualHost>
</IfModule>
正如我从post标记和配置文件中看到的,您使用的是Apache,而不是nginx(至少在主机上)。
在主机和容器之间,您不需要通过ssl进行超文本传输协议,因为它在localhost(==127.0.0.1)网络中,您的ProxyPass应该指向端口8080,您不需要公开的443端口你的容器。
通常这是我如何使我的配置文件:
违约形态:
<VirtualHost *:80>
ServerName nom-de-domaine.fr
RewriteEngine on
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
默认情况下,不支持ssl。形态:
<VirtualHost *:443>
ServerName nom-de-domaine.fr
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
# From certbot:
SSLCertificateFile /etc/letsencrypt/live/nom-de-domaine.fr/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/nom-de-domaine.fr/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
端口80(超文本传输协议)的虚拟主机仅用于永久重定向到端口443(SSL-https上的超文本传输协议),防止访问者通过非加密的超文本传输协议请求您的应用。
我看到断断续续的SSL握手错误,Java客户端和浏览器通过Apache HTTP服务器访问网站。这种情况很少发生,但它每天都会破坏构建并影响用户体验。服务器被配置为建立安全连接,但不需要来自客户端的证书。 我已经在Java测试客户端和服务器上打开了SSL调试输出(见下文)。我所观察到的是,每当发生握手异常时,服务器似乎已经发送了对客户端证书的请求。我不明白为什么它会这样做,为什么这只是偶尔发生。当
出身背景我需要让我的网站通过IdentityServer(IDS)进行身份验证。“example.com” 我正在用DotNetCore构建我所有的网站,用apache在代理服务器上托管它们,让我们调用私有ip12.3.4.5。 它们应该如何工作。我去网站的例子。我应该可以和ids通话。例如。com获取身份验证信息,然后重新路由回示例。具有身份验证令牌的com。相反,我得到了一个SSL握手错误。见
笔记: 最初我试图从使用如下代码 代码1: 错误: 在谷歌搜索之后,我发现您已经使用了SSL验证,使用适配器会话可以解决这个问题。但我仍然有错误,请找到下面的代码和错误 代码2: 错误:
我们有一个应用程序,它将一些xml数据发布到另一个应用程序,并通过ApacheWeb服务器(版本2.2.26)反向代理传输流量。我们观察到一些零星的代理错误(http响应代码500)-删除服务器的SSL握手错误。错误消息显示在apache web服务器错误日志中。 早些时候,我们使用sunOne网络服务器,我们没有注意到这个错误。我怀疑可能是apache网络服务器上的一些缺失配置导致了这个问题。这
当我尝试在NetBeans中运行servlet程序时,我在第1045行的中得到以下错误,该错误不允许Tomcat服务器启动。 而且,apache服务器日志正在发出消息,因为IP未被识别为内部或外部命令、可操作程序或批处理文件。 我不知道我哪里做错了,也不知道我在哪里配置了servlet映射中提供的环境变量。 欢迎任何帮助。
我正在尝试使用SSL证书将java客户端与JMX服务器连接。 但是不幸的是,这个连接给出了一个SSL握手错误。当我尝试使用< code >-DJ avax . net . debug = all 标志对此进行调试时,我在java客户端上得到以下错误消息。 2016-07-15T13:29:50.02-0700[APP/0]退出RMI更新清洁-[10.200.0.27:44445,javax.rmi