首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为静态网页和闪亮的服务器应用定义一个域?

如何为静态网页和闪亮的服务器应用定义一个域?
EN

Stack Overflow用户
提问于 2021-08-29 06:42:23
回答 2查看 70关注 0票数 0

我有一个闪亮的服务器应用程序使用aws ec2 & route53,nginx & certbot for ssl。现在我的域名正在被应用程序使用。我想有一个静态主页,欢迎用户,并提供登录到应用程序的访问。其目的是有一个主页介绍,所以它可以被谷歌索引。我可以使用一个域名(应用程序和网页)吗?我应该如何定义和管理我的域呢?

希望我的问题说得够清楚了。提前感谢

我忘记提到我的静态网站是在亚马逊网络服务的s3存储桶上(而不是在ec2 +nginx服务器上)。我不确定定义nginx.conf的语法。下面是nginx.conf现在是如何工作的:

代码语言:javascript
复制
server {

 listen 80;
 listen [::]:80;

 # redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
  return 301 https://$host$request_uri;
}

server {
  # listen 443 means the Nginx server listens on the 443 port.
  listen 443 ssl http2;
  listen [::]:443 ssl http2;

  # certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
  ssl_certificate /etc/letsencrypt/live/app.mydomain/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/app.mydomain/privkey.pem;
  ssl_session_timeout 1d;
  ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
  ssl_session_tickets off;

  # curl https://ssl-config.mozilla.org/ffdhe2048.txt > /path/to/dhparam.pem
  ssl_dhparam /etc/nginx/snippets/dhparam.pem;
  # intermediate configuration
  ssl_protocols TLSv1.2 TLSv1.3;
  ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES12>
  ssl_prefer_server_ciphers off;

  # HSTS (ngx_http_headers_module is required) (63072000 seconds)
  add_header Strict-Transport-Security "max-age=63072000" always;

  # OCSP stapling
  ssl_stapling on;
  ssl_stapling_verify on;

  # verify chain of trust of OCSP response using Root CA and Intermediate certs
  ssl_trusted_certificate /etc/letsencrypt/live/app.mydomain/chain.pem;

  # Replace it with your (sub)domain name.
  server_name app.mydomain;
  # The reverse proxy, keep this unchanged:
  location / {
      proxy_pass http://localhost:3838;
      proxy_redirect http://localhost:3838/ $scheme://$host/;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection $connection_upgrade;
      proxy_read_timeout 20d;
      proxy_buffering off;
  }
}

如果我理解了@AlexStoneham,我需要添加一些类似的东西:

代码语言:javascript
复制
    server{
      server_name mydomain;
    
      location / {
        proxy_pass $scheme://$host.s3-website-eu-central-1.amazonaws.com$request_uri
      }
    } 

但是这个加法并不起作用。我是否应该添加443监听程序块并重新添加ssl证书?

app.mydomain是为闪亮的应用程序准备的,现在运行得很好。我的域名应该指向s3静态网页。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-29 06:55:11

在nginx conf中使用nginx服务器块,在route53 conf中使用子域

利用像app.yourdomain.com这样的子域,转到配置了nginx的闪亮应用,在一个服务器块中为闪亮的应用提供服务。设置另一个子域,如www.yourdomain.com,转到使用nginx配置的静态页面,以便在另一个服务器块中为静态页面提供服务。

有关route53详细信息,请参阅:https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-routing-traffic-for-subdomains.html

和:https://www.nginx.com/resources/wiki/start/topics/examples/server_blocks/获取nginx的详细信息

票数 0
EN

Stack Overflow用户

发布于 2021-08-30 21:40:27

nginx.conf是正常的,不需要添加任何东西,因为静态网页在s3存储桶上,而不是在nginx/ec2上。

问题是,在我多次尝试的一次中,我制作了一个与s3存储桶同名的"mydomain“证书。当尝试通过route53 ( s3端点是http而不是https)将我的s3存储桶与该域名链接起来时,这就发生了冲突并造成了问题。

解决方案是从我的ec2服务器(上面有nginx )中删除特定的ssl证书:

代码语言:javascript
复制
$ sudo certbot certificates #shows the exist certificates
$ sudo certbot delete #choose the certificate to delete, in my case: "mydomain"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68970517

复制
相关文章

相似问题

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