docker 内 nginx 无法转发 gogs 的端口
在docker内搭建nginx gogs,两者在同一个docker网络内。
测试情况:
- gogs可以通过IP+端口方式访问
- nginx可以启动,并且可以代理另一个html页面,并通过二级域名访问
问题:
无法通过二级域名访问gogs。报错:502 Bad Gateway nginx/1.15.6
代码中的域名替换成了#域名
error.log
2018/11/15 06:53:21 [error] 5#5: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 14.153.77.141, server: #域名, request: "GET / HTTP/2.0", upstream: "http://172.18.0.3:10080/", host: "#域名"
nginx.config
user nginx;
worker_processes auto;
error_log /etc/nginx/err/error.log;
events {
worker_connections 1024;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}
default.conf
server {
listen 80;
server_name #正常域名;
return 301 https://$server_name$request_uri;
}
server{
listen 443 ssl http2;
server_name #正常域名;
ssl_certificate #正常秘钥;
ssl_certificate_key #正常秘钥;
ssl_session_timeout 10m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:d!MD5:!RC4:!DHE;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
location / {
proxy_pass http://gogs:10080/;
proxy_redirect default;
}
access_log /etc/nginx/err/gogs.log;
}
gogs的app.ini
[server]
DOMAIN = http://127.0.0.1
HTTP_PORT = 3000
ROOT_URL = http://127.0.0.1:10080/
DISABLE_SSH = false
SSH_PORT = 10022
START_SSH_SERVER = true
OFFLINE_MODE = false
ENABLE_GZIP = true
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
奇怪,为啥nginx应该写
proxy_pass http://gogs:3000;
这样。
已解决
docker-compose了解一下?