我最近在运行Apache(禁用SSL)的Ubuntu服务器上安装了this web application。
我尝试了多少并不能让应用程序使用http并不重要。尝试了-p
标志。然后它暴露端口443并绑定其他东西。我讨厌关于SSL的浏览器警告。我只想在端口8080上使用http。
应用程序使用仅侦听443的nginx。我希望我的应用程序URL看起来像http://localhost:8080
此应用程序使用Google OAuth进行登录。我假设它可以用于http。
如何让它在http中工作?
答案 0 :(得分:1)
你必须编辑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;
要:
listen 8080;
server_name localhost;
access_log /dev/stdout;
error_log /dev/stderr;
然后在docker build之后运行:
docker run -p 8080:8080 .......
或者,您可以将Apache设置为反向代理到安全HTTPS nginx的HTTP虚拟主机。但我认为修改nginx配置更容易。
方法#2
您可以添加另一个nginx容器作为反向代理,不确定后面的应用程序是否会中断,但它充当http“plainer”:
搬运工-compose.yml
# Add this:
plain_nginx:
image: nginx
volumes:
- ./plain_nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- 8080:80
links:
- openseedbox
plain_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;
}
}
然后从该回购中的./docker/
目录执行:
docker-compose up
然后你有http://localhost:8080
充当SSL内容的反向代理