Apache-2.2

使用不同埠在同一伺服器上設置多個 https

  • June 22, 2019

我正在嘗試通過 apache 或 nginx virtualhost 設置多個 https 網站,但我注意到我必須將埠附加到 IP 地址的末尾才能查看使用非預設 443 ssl 埠的網站的 https

是否可以在使用不同埠的同一伺服器上擁有多個 https 網站?如果是,那麼如何在不需要在末尾附加非預設埠的情況下做到這一點

我試過的

# Ensure that Apache listens on port 80 and all ssl ports
Listen 80 
Listen 443
Listen 543


# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80
NameVirtualHost *:443
NameVirtualHost *:543

<VirtualHost 192.168.101.44:443>
DocumentRoot /www/example1
ServerName www.example1.com

# Other directives here

</VirtualHost>

<VirtualHost 192.168.101.54:543>
DocumentRoot /www/example2
ServerName www.example2.org

# Other directives here

</VirtualHost>

按此順序,將能夠分別訪問https://www.example1.comhttps://www.example2.org上的網站

這可能嗎?阿帕奇?Nginx?我使用兩個網路伺服器,所以想知道它是否可以與其中一個或兩個一起工作。如果需要,我可以將問題編輯得更清楚。

謝謝

您可以在一台伺服器上使用一個 IP 地址提供任意數量的站點,並且每個域都可以監聽埠 80 和 443。因此 example.com 可以監聽 80/443,example1.com 可以監聽 80/ 443等

在 nginx 中,您只需定義多個伺服器,如下所示

server {
 server_name www.example.com;
 listen 80;
 listen 12345;
 listen 443 ssl;

 location / {
   # whatever
 }
}

server {
 server_name www.example1.com;
 listen 80;
 listen 443 ssl;

 location / {
   # whatever
 }
}

# This server simply redirects the requested to the https version of the page
server {
 listen 80;
 server_name example.com;
 return 301 https://www.example.com$request_uri;
}

您可能會更好地從 80 轉發到 443,因此一切都是安全的。在本教程中我有一套非常完整的配置文件,一般來說在 nginx 上也有很多。

請注意,有人建議直接對我教程的另一部分進行編輯。我直接連結到該頁面,因為它包含整個系列教程的目錄,以及您可以下載的 nginx 配置文件。

引用自:https://serverfault.com/questions/757427