首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何修改https(http) URL的端口?

如何修改https(http) URL的端口?
EN

Stack Overflow用户
提问于 2022-06-11 15:21:20
回答 1查看 114关注 0票数 1

最初,我有一个带有nginx和Ubuntu20.04端口的网站,端口是80(http)和443(https),网址是https://mysite.cc (它工作得很好)。

现在,我想用Spring (Docker)设置另一个具有https://new.mysite.cc URL的站点

如何设置nginx或Spring云的码头?

现在,这两个站点都可以分开工作,但是如何将它们集成到一个Ubuntu服务器中呢?

https://mysite.cc的nginx配置如下:

代码语言:javascript
运行
复制
server {
    server_name mysite.cc;  

    root /var/www;
    
    index index.html index.htm index.nginx-debian.html;
        
    location / {
        
        try_files $uri $uri/ /index.html;
    }
    
    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/mysite.cc/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/mysite.cc/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

server {
    if ($host = mysite.cc) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    listen 80;
    listen [::]:80;

    server_name mysite.cc;
    return 404; # managed by Certbot
}

新站点与spring对接,配置文件docker-compose.yml的部分类似于:(现在,它在http://localhost上工作)

代码语言:javascript
运行
复制
version: "3"
services:      
  newsite-nacos:
    image: nacos/nacos-server:1.4.2
    container_name: newsite-nacos
    restart: always    
   
    ports:
      - ${NACOS_PORT:-8848}:8848
    healthcheck:
      test: curl -f http://${NACOS_HOST:-172.20.0.4}:8848/nacos/index.html || exit 1
      interval: 6s
      timeout: 10s
      retries: 10
    networks:
      newsite-network:
        ipv4_address: ${NACOS_HOST:-172.20.0.4}
    
  newsite-backend:
    ......................
    ports:
      - ${BACKEND_PORT:-6688}:${BACKEND_PORT:-6688}
    networks:
      newsite-network:
        ipv4_address: ${BACKEND_HOST:-172.20.0.5}
  
  newsite-frontend:
    image: ...........
    container_name: newsite-frontend
    restart: always    
    environment:
      - SERVER_NAME=localhost 
      - BACKEND_SERVER_HOST=${BACKEND_HOST:-172.20.0.5} 
      - BACKEND_SERVER_PORT=${BACKEND_PORT:-6688} 
      - USE_HTTPS=false 
    ports:
      - "80:80"
      - "443:443"
    networks:
      newsite-network:
        ipv4_address: 172.20.0.6
  
networks:
   newsite-network:
     driver: bridge
     ipam:
       config:
         - subnet: ${SUBNET:-172.20.0.0/16}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-11 18:27:04

您可以在nginx配置中设置另一个server块,使其作为代理工作。

您还应该更改已公开的端口,以避免与第一个应用程序发生冲突。

因此,改变这一点:

代码语言:javascript
运行
复制
    ports:
      - "80:80"
      - "443:443"

例如:

代码语言:javascript
运行
复制
    ports:
      - "8088:80"

一台机器上的代理通信不需要加密,因为https配置将在代理(nginx)上设置

然后,服务器块看起来可能类似于以下内容:

代码语言:javascript
运行
复制
server {

    server_name new.mysite.cc;  

    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-Proto $scheme;                               

        // the port has to match the exposed one of the spring app                                                                
        proxy_pass http://127.0.0.1:8088; 
        proxy_read_timeout 90;                                                 
    }
    
    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/mysite.cc/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/mysite.cc/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

我没有提到获得TLS证书,因为您成功地在第一个应用程序中做到了这一点,并且过程是相等的。

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

https://stackoverflow.com/questions/72585572

复制
相关文章

相似问题

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