接昨天的主题, nginx 配置 ssl 没有起作用

2019-01-28 19:08:52 +08:00
 Hopetree

昨天以为是防火墙的问题所以没有发 nginx 配置,现在发一下,首先发我 80 的配置,80 是没问题的,然后发 443 的配置,证书是阿里云申请的,下载的是 nginx 使用的,证书的位置也没错,求帮忙看看配置哪里有问题。

server {
    # 端口和域名
    listen 80;
    server_name tendcode.com;

    # 不记录访问不到 favicon.ico 的报错日志
    location = /favicon.ico {
        access_log off;
        log_not_found off;
    }

    # static 和 media 的地址
    location /static/ {
        root /opt/izone;
    }
    location /media/ {
        root /opt/izone;
    }

    # web 服务使用 80 端口,并且添加别名跟本地域名保持一致
    location / {
        proxy_pass http://tendcode.com;
    }

    # 其他配置
    client_max_body_size 1m;
    client_header_buffer_size 128k;
    client_body_buffer_size 1m;
    proxy_buffer_size 32k;
    proxy_buffers 64 32k;
    proxy_busy_buffers_size 1m;
    proxy_temp_file_write_size 512k;
}

server {
    listen 80;
    server_name www.tendcode.com;
    rewrite ^(.*) http://tendcode.com$1 permanent;
}
server {
    # 端口和域名
    listen 443 ssl;
    server_name tendcode.com;

    ssl_certificate /etc/nginx/conf.d/tendcode.com.crt;
    ssl_certificate_key /etc/nginx/conf.d/tendcode.com.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    # 不记录访问不到 favicon.ico 的报错日志
    location = /favicon.ico {
        access_log off;
        log_not_found off;
    }

    # static 和 media 的地址
    location /static/ {
        root /opt/izone;
    }
    location /media/ {
        root /opt/izone;
    }

    # web 服务使用 80 端口,并且添加别名跟本地域名保持一致
    location / {
        proxy_pass http://tendcode.com;
    }

    # 其他配置
    client_max_body_size 1m;
    client_header_buffer_size 128k;
    client_body_buffer_size 1m;
    proxy_buffer_size 32k;
    proxy_buffers 64 32k;
    proxy_busy_buffers_size 1m;
    proxy_temp_file_write_size 512k;
}

server {
    listen 80;
    server_name tendcode.com;
    rewrite ^(.*) https://tendcode.com$1 permanent;
}

然后我查看 nginx 日志,没有错误日志,access 日志有,大概是如下:

58.62.53.255 - - [28/Jan/2019:11:01:17 +0000] "GET / HTTP/1.1" 301 169 "-" "Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1" "-"
220.152.220.42 - - [28/Jan/2019:11:01:31 +0000] "GET / HTTP/1.1" 301 169 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763" "-"
8.29.198.26 - - [28/Jan/2019:11:02:10 +0000] "GET /feed/ HTTP/1.1" 301 169 "-" "Feedly/1.0 (+http://www.feedly.com/fetcher.html; 3 subscribers; like FeedFetcher-Google)" "-"

现在的情况就是,https://tendcode.com/ 无法访问,网站 GG 了,在线等大佬帮忙,先谢谢了

3151 次点击
所在节点    NGINX
16 条回复
tan90
2019-01-28 19:12:52 +08:00
443 端口不通!
Hopetree
2019-01-28 19:15:06 +08:00
@tan90 不通是什么意思啊,我服务器的安全组已经添加 443 了,昨天回复的也说不是防火墙问题啊,这是昨天的帖子 https://www.v2ex.com/t/531069#reply26
harde
2019-01-28 19:15:19 +08:00
nginx -t 看看有没有问题。
然后确定 nginx 是“重启”了。
Hopetree
2019-01-28 19:18:01 +08:00
@harde nginx -t 没问题,我是容器化部署,我改完配置重启了容器,所以 nginx 肯定也重启了
masker
2019-01-28 19:19:52 +08:00
telnet 失败。
wuqingdzx
2019-01-28 19:26:12 +08:00
为什么要 proxy_pass 跟你的 server name 一样?
wuqingdzx
2019-01-28 19:26:50 +08:00
你有别的 web 服务还能继续用 80 端口?
2exploring
2019-01-28 19:26:54 +08:00
容器化部署,那你对容器做了 443 的端口映射了没?
giuem
2019-01-28 19:28:08 +08:00
你容器做端口映射了吗
harde
2019-01-28 19:35:50 +08:00
@Hopetree 同 8、9 楼,同问。
1v9
2019-01-28 19:37:05 +08:00
你这配置太秀了,请参考 6789 楼回复。
Hopetree
2019-01-28 19:40:00 +08:00
@2exploring @giuem 感谢提醒,已经好了,原来是我容器没有做 443 映射,V2 的大佬真的高效

再次感谢昨天和今天给我回复的人,非常感谢,搞定了
Tounea
2019-01-28 19:40:24 +08:00
写这么多 server 监控 80 有些多余,想要的结果无非不带 www 前缀,这样直接在 server name xxx.com 就可以了。言归正传,你的 proxy_pass http://tendcode.com;忘记加端口了。
wuqingdzx
2019-01-28 19:42:30 +08:00
我真是特别好奇,你为什么 80 跳 443,然后继续代理到 80 ?还是说你配置了 upstream ?
Hopetree
2019-01-28 19:44:56 +08:00
@Tounea 不用加端口,因为我 web 服务用的 80 端口,其实这个地方很无奈,因为我用到了 django 的一个方法,就是 {{ request.build_absolute_uri }}因为我用的容器,所以这个获取的是容器的服务地址,比如我容器如果写的 web 的话,那就得到了 web.com ,所以我给容器做了个映射,跟本机的域名一样
Hopetree
2019-01-28 19:46:58 +08:00
看我上一条回复,结合我的 docker-compose 看,我服务的容器也做了个域名映射 https://github.com/Hopetree/izone-docker/blob/master/docker-compose.yml

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/531346

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX