如何在同一台主机上配置多个80端口的服务?

发布于 2022-09-05 06:18:04 字数 1123 浏览 12 评论 0

问题1.要想使用 http://ip:80/path?getarg=xxx 方式访问WEB服务时,只需要配置监听80端口就行了?比如假设服务A:
server {

listen 80 ;
location /xxxx{
    proxy_pass http://xxxx.com;
    include proxy.conf;
    access_log /data1/logs/nginx/xxxxx-access_log main;
    error_log /data1/logs/nginx/xxxxx-error_log;
}
...

}

问题二:如果我有多个项目配置80端口,那使用ip:80方式访问到哪个服务?
每个项目配置文件独立的,即server部分独立,然后用include方式加载到nginx.conf文件里的。比如服务B:
server {

listen 80 ;
location /xxxx2{
    proxy_pass http://xxxx2.com;
    include proxy.conf;
    access_log /data1/logs/nginx/xxxx2x-access_log main;
    error_log /data1/logs/nginx/xxxxx2-error_log;
}
...

}
我记得在nginx重启时会报80端口已被占用的,也就是拒绝nclude后面那个文件,现在发现没有这提示能重启成功了。既然能重启表示两个服务起来了,那如果我使用http://ip:80/path?getarg=xxx 方式访问,会访问到服务A 还是服务B ?假设severA serverB都有相同的location 匹配。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

蒗幽 2022-09-12 06:18:05

端口在系统中是唯一的 http://IP:端口 IP就如同大楼 端口如果门牌号

所以可以肯定问题的答案: 同一台主机上不能配置多个80端口的服务, 一个端口只能对应一系统上的一个服务.

如果你是想运行多个WEB项目的话,可以通过虚拟主机来解决

A项目 => a.xxx.com

B项目 => b.xxx.com

揪着可爱 2022-09-12 06:18:05

每个server指定不同的server_name即可都监听80端口

巨坚强 2022-09-12 06:18:05

你可能需要指定contextpath(即同一个server{}里定义多个location)或域名。
同一端口,可以指定多个域名

她说她爱他 2022-09-12 06:18:05

你说的80是要nginx和什么服务一起占用?还是说虚拟主机的问题?

青萝楚歌 2022-09-12 06:18:05

同一个server{}里定义多个location就行了,对外都是80,根据不同路径访问不同应用
clipboard.png

迟月 2022-09-12 06:18:05

只能通过servername 配置

雨落星ぅ辰 2022-09-12 06:18:05

192.168.xxx.xxx/aaa/ 到项目1
192.168.xxx.xxx/bbb/ 到项目2

就是虚拟目录

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文