记录一次实践。

准备工作

一台装有nginx或类似宝塔的管理面板的主机
一个现成可访问的网站
一个可以访问的域名

正文

到这里,就当你已经全部准备好了。假如现在我们有个网站的访问地址是http://www.test.com:8080

确实每次打开都是需要带端口号非常的难看。

阿里域名解析的时候也可以设置显性url和隐形url,也可达到类似效果。但是需要icp备案等等条件,比较麻烦。现在这种可以快速设置实现。

反向代理的概念就不多讲了,有兴趣的朋友可以翻一翻。

我的网站基本建立在我的本地nas主机上,没有公网,需要通过有公网的主机穿透后才能远程访问到。然后我的公网主机搭配有一个域名。之后公网主机我用的宝塔面板去管理,创建一个响应的网站去对应nas的网站。现在我穿透后可以通过加上端口访问到实际nas主机上的网站了。

然后宝塔上的网站管理里面找到反向代理(宝塔版本7.4.5,不一致的请酌情更新),添加反向代理。

nginx 配置网址 去掉端口号 nginx隐藏端口号_反向代理

代理名称随意填;
缓存酌情打开,如果网站不频繁更新的话我觉得可以打开,缓存时间默认。
高级功能未使用,后面再研究。
目标URL,填实际主机访问地址,如:http://www.test.com:8080
发送域名则为:www.test.com
内容替换同目标URL:http://www.test.com:8080
替换为去掉端口后的URL:http://www.test.com

网址填写你实际的网址,以上为举例,注意https和http的拼写。

保存后就生效了。如果没生效,可能需要浏览器清一下缓存再重新访问。

宝塔的反向代理实际上也是有利用了nginx的配置,添加代理后实际生成了一份nginx的配置文件,如下:

#PROXY-START/
location  ~* \.(php|jsp|cgi|asp|aspx)$
{
    proxy_pass http://www.test.com:8080;
    proxy_set_header Host www.test.com;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
}
location /
{
    proxy_pass http://www.test.com:8080;
    proxy_set_header Host www.test.com;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    
    add_header X-Cache $upstream_cache_status;
    
    #Set Nginx Cache
    
    proxy_set_header Accept-Encoding "";
	sub_filter "http://www.test.com:8080" "http://www.test.com";
    sub_filter_once off;
    
    proxy_ignore_headers Set-Cookie Cache-Control expires;
    proxy_cache cache_one;
    proxy_cache_key $host$uri$is_args$args;
    proxy_cache_valid 200 304 301 302 1m;
    expires 12h;
}

#PROXY-END/

我觉得可以参考这个配置设置一下试一试。