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

评论

昵称
邮箱
网址
8 条

回复看看

回复看看

看看

  回复

zss

zss

回复了怎么还看不了

  回复

zssshk

zssshk

回复看看

  回复

wykk

wykk

回复看看

  回复

1486740685

1486740685

kk

  回复

ychshzz

ychshzz

  回复

zxx

zxx

回复看看,谢谢

  回复

花莫语

花莫语

回复看看,谢谢

  回复