Nginx非标准端口或子域名开启SSL

0、导语

之前刚上高中的时候,搭建了一个校园社区网站。
网站是中国大陆的,域名也没有备案,但始终没有被拦截,也是非常神奇。
但是有同学跟我反馈,联通网络的用户打开我的网站会被备案拦截。
于是我就使用了81端口。在宝塔添加时,提示域名已存在。不得已,我再解析了一个二级域名,使用81端口访问。
但是这样一来,就只能通过HTTP访问网站。通过修改配置文件的方法,实现了非标准端口HTTPS,但是会被“强制HTTPS”重定向到443端口。
因此,本篇文章就来介绍一下修改配置Nginx文件,实现非标准端口HTTPS访问的方案。

1、添加端口

在宝塔中,有许多端口都无法直接添加,例如8888和8080。因此可以在配置文件中添加:

Nginx
1
listen 8080;

以绑定8080端口作为网站的HTTP端口。
若要使用HTTPS,请在配置了SSL证书后再添加:

Nginx
1
listen 8888 ssl http2;

以绑定8888端口作为网站的HTTPS端口。

2、修改强制HTTPS内容

开启强制HTTPS后,会自动添加:

Nginx
1
2
3
4
5
#HTTP_TO_HTTPS_START
if ($server_port !~ 443){
    rewrite ^(/.*)$ https://$host$1 permanent;
}
#HTTP_TO_HTTPS_END

其原理为:将非443端口重定向至443端口。
可以将其改为

此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。

其原理为:仅将80端口重定向至443端口,这样就不会影响特殊端口的HTTPS访问。

3、子域名HTTPS访问

复制已配置SSL的站点的配置文件:

此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。

到子域名对应的配置文件片段下。
并按照上文在

Nginx
1
listen 80;

下添加

Nginx
1
listen 443 ssl http2;

即可实现子域名的HTTPS访问。
如果需要开启强制HTTPS,复制对应配置文件片段即可。

Nginx非标准端口或子域名开启SSL

https://blog.tsinbei.com/archives/76/

文章作者
Hsukqi Lee
发布于

2022-01-19

修改于

2022-07-28

许可协议

CC BY-NC-ND 4.0

# 宝塔Linux面板  Nginx  SSL  TLS  HTTPS  Web

评论

昵称
邮箱
网址
5 条

1486740685

1486740685

kk

  回复

1486740685

1486740685

kk

  回复

ychshzz

ychshzz

  回复

ddd322

看看大神如果操作。。。学习

  回复

zxx

zxx

回复看看,谢谢

  回复

花莫语

花莫语

回复看看,谢谢

  回复