首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx拒绝监听端口443

问Nginx拒绝监听端口443
EN

Stack Overflow用户
提问于 2020-02-13 03:12:24
回答 2查看 1.3K关注 0票数 0

我在nginx上遇到了一个问题,它不会在端口443上侦听。

侦听端口80就可以了。我已经在下面添加了我的配置的一个片段:

代码语言:javascript
复制
server {
       listen 443 ssl default_server;
       listen [::]:443 ssl default_server;

       ssl on;
       ssl_certificate     /var/www/certs/server.pem;
       ssl_certificate_key /var/www/certs/server.key;

       server_name server;

       root /var/www/server;

       access_log /var/log/nginx/server/access.log;
       error_log  /var/log/nginx/server/error.log;

       index index.php;
}

我不确定我错在哪里。我检查过的所有东西都显示它应该可以工作。

我在Ubuntu 18.04和nginx 1.14.0上,系统上没有防火墙,我和服务器之间也没有防火墙。我已经用nginx -t和systemctl reloaded检查了几次配置。没有变化,端口不会为我打开。

EN

回答 2

Stack Overflow用户

发布于 2020-02-13 03:20:06

若要配置HTTPS服务器,必须在服务器块中的侦听套接字上启用ssl参数,并且应指定服务器证书和私钥文件的位置:

代码语言:javascript
复制
server {
listen              443 ssl;
server_name         www.example.com;
ssl_certificate     www.example.com.crt;
ssl_certificate_key www.example.com.key;
ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers         HIGH:!aNULL:!MD5;
...

}

单个HTTP/HTTPS服务器可以配置同时处理HTTP和HTTPS请求的单个服务器:

代码语言:javascript
复制
server {
listen              80;
listen              443 ssl;
server_name         www.example.com;
ssl_certificate     www.example.com.crt;
ssl_certificate_key www.example.com.key;
...

}

在0.7.14版本之前,不能有选择地为单个侦听套接字启用SSL,如上所示。只能使用SSL指令为整个服务器启用ssl,这使得无法设置单个HTTP/HTTPS服务器。添加listen指令的ssl参数就是为了解决此问题。因此,不鼓励在现代版本中使用ssl指令。

基于名称的HTTPS服务器配置监听单个IP地址的两个或多个HTTPS服务器时,会出现一个常见问题:

代码语言:javascript
复制
server {
listen          443 ssl;
server_name     www.example.com;
ssl_certificate www.example.com.crt;
...

}

代码语言:javascript
复制
server {
listen          443 ssl;
server_name     www.example.org;
ssl_certificate www.example.org.crt;
...

}

票数 0
EN

Stack Overflow用户

发布于 2020-02-13 18:45:40

添加这些服务器块。

这是将http重定向到https

代码语言:javascript
复制
server {
   listen 80;
   server_name example.com; 
   location / {
          return 301 https://$host$request_uri;
   }
}

使用ssl的主块

代码语言:javascript
复制
server {
    listen 443 ssl ;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; 
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;  
    index index.html index.htm index.nginx-debian.html;
    server_name example.com; 
    location / {
    proxy_pass http://localhost:5003; // Your port goes here
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}
}

还要检查端口是否已打开

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60195375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档