Apache 如何使docker应用程序使用端口80(http)而不是443(https)
我最近安装在运行Apache(SSL禁用)的Ubuntu服务器上 无论我尝试了多少,我都无法让应用程序使用http。尝试了Apache 如何使docker应用程序使用端口80(http)而不是443(https),apache,http,ssl,nginx,docker,Apache,Http,Ssl,Nginx,Docker,我最近安装在运行Apache(SSL禁用)的Ubuntu服务器上 无论我尝试了多少,我都无法让应用程序使用http。尝试了-p标志。然后它暴露端口443并绑定其他内容。我讨厌有关SSL的浏览器警告。我只想在端口8080上使用http 应用程序使用仅侦听443的nginx。我希望我的应用程序URL看起来像http://localhost:8080此应用程序使用Google OAuth进行登录。我假设它可以在http上工作 如何让它在http中工作?您必须编辑nginx.conf才能使用普通http
-p
标志。然后它暴露端口443并绑定其他内容。我讨厌有关SSL的浏览器警告。我只想在端口8080上使用http
应用程序使用仅侦听443的nginx。我希望我的应用程序URL看起来像http://localhost:8080
此应用程序使用Google OAuth进行登录。我假设它可以在http上工作
如何让它在http中工作?您必须编辑nginx.conf才能使用普通http(nginx永远不会在https端口上使用http,只针对某些错误) 更改:
listen 443;
server_name localhost;
access_log /dev/stdout;
error_log /dev/stderr;
ssl on;
ssl_certificate /src/openseedbox/conf/host.cert;
ssl_certificate_key /src/openseedbox/conf/host.key;
致:
然后在docker构建后,使用以下工具运行:
docker run -p 8080:8080 .......
或者,您可以将Apache设置为HTTP虚拟主机,该虚拟主机将代理反向转换为安全的HTTPS nginx。但我认为修改nginx配置更容易
方法#2 您可以添加另一个nginx容器作为反向代理,不确定后面的应用程序是否会中断,但它充当http“plainer”: docker-compose.yml
# Add this:
plain_nginx:
image: nginx
volumes:
- ./plain_nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- 8080:80
links:
- openseedbox
普通的_nginx.conf
server {
listen 80;
server_name _;
access_log /dev/stdout;
error_log /dev/stderr;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Ssl on;
proxy_pass https://openseedbox;
}
}
然后从该repo中的/docker/
目录执行以下操作:
docker-compose up
那么你就有了
http://localhost:8080
充当SSL内容的反向代理尝试了此操作。但应用程序仍然使用端口443I添加的方法#2。让我知道是否适合您这里将不会是这样的普通http到https端口
,因为新的nginx使用SSL反向代理到https端口,您可以在这里看到代理\u passhttps://openseedbox;代码>。如果openseedbox应用程序本身重新检查并投诉,则仍然可能存在一些问题。但是请尝试一下,我不能,因为我没有提供谷歌ID,是的,它提供了。但这是我发布的第一个方法。使用第二个,您只需在docker-compose.ymlSure中添加一个文件和一个服务,没问题!
docker-compose up