目录

基于宝塔nginx的多站点管理

应用的场景

有若干服务需要访问,他们或者ip不一样,或者端口不一样。

如果一个个的去绑定隐形url域名挺麻烦的。也没必要。

一个优秀的办法是,通过不同的域名访问过去。然后根据域名不同做反向代理。

demo

我服务器上有一个wordpress,其端口是8081。我想要通过blog.kenger.com去访问该服务。

设置二级域名

先直接将域名指向服务器ip。或者服务器www域名也可以。总之就是直接到80端口。

https://raw.githubusercontent.com/kengerlwl/kengerlwl.github.io/refs/heads/master/image/7d3fdd730213faafd876f5c39adc98ca/7c600b883827b37010c4aa5fd5a6ad04.png

设置宝塔面板nginx

然后去宝塔

https://raw.githubusercontent.com/kengerlwl/kengerlwl.github.io/refs/heads/master/image/7d3fdd730213faafd876f5c39adc98ca/4478ddcc4224e5f5fa0ba799d09c245e.png

添加一个站点

https://raw.githubusercontent.com/kengerlwl/kengerlwl.github.io/refs/heads/master/image/7d3fdd730213faafd876f5c39adc98ca/96411d22da4f6290b0c8645b93df94af.png

设置反向代理到本地

https://raw.githubusercontent.com/kengerlwl/kengerlwl.github.io/refs/heads/master/image/7d3fdd730213faafd876f5c39adc98ca/0a0df8a8546b32df15f96a5226a75713.png

错误注意

尽量不要用localhost。用127.0.0.1更好。

https://raw.githubusercontent.com/kengerlwl/kengerlwl.github.io/refs/heads/master/image/7d3fdd730213faafd876f5c39adc98ca/d1fb124357b45b2d75a26dcfa362255f.png

然后就可以访问了

https://raw.githubusercontent.com/kengerlwl/kengerlwl.github.io/refs/heads/master/image/7d3fdd730213faafd876f5c39adc98ca/510f3b91cd60dcc1840fc5194894106a.png

伪静态设置

通俗来讲其实就是一种seo的方式。

伪静态是相对真实静态来讲的,通常我们为了增强搜索引擎的友好面,都将文章内容生成静态页面,但是为了实时的显示一些信息,就损失了对搜索引擎的友好面。 伪静态即是网站本身是动态网页,url后有"? “加参数来读取不同数据,伪静态就是做url重写操作(rewrite)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
// 监听80端口
//访问www.test.com/wangla.html跳转到百度
//访问www.test.com/纯数字至少一个数字.html跳转到QQ官网
//访问www.test.com/匹配字母或数字或下划线组合.html 跳转到百度对应页面。
server {
    listen       80;
    server_name      www.test.com;
    index    index.html index.htm index.php;
 
    rewrite  ^/wangla.html$  http://www.baidu.com/ permanent;
    rewrite  ^/(\d+).html$   http://www.qq.com/ permanent;
    rewrite  ^/(\w+).html$   http://www.baidu.com/index_wd_v5.html permanent;
}

基于nginx实现不同前缀代理到不同的页面

1
2
3
4
5
6
#PROXY-START/

location /yuedu
{
    proxy_pass http://127.0.0.1:58080/;  # 注意,这个/不能省略
}

然后就可以通过服务器域名/yuedu访问到58080这个端口的内容了。

注意:proxy_pass的/不能省略,nginx用到的是简单的替换!!!!!!!!

参考:

Nginx代理proxy pass配置去除前缀 - Ryan.Miao - 博客园