如何在同一台主机上配置多个80端口的服务?
问题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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
端口在系统中是唯一的 http://IP:端口 IP就如同大楼 端口如果门牌号
所以可以肯定问题的答案: 同一台主机上不能配置多个80端口的服务, 一个端口只能对应一系统上的一个服务.
如果你是想运行多个WEB项目的话,可以通过虚拟主机来解决
A项目 => a.xxx.com
B项目 => b.xxx.com
每个server指定不同的server_name即可都监听80端口
你可能需要指定contextpath(即同一个server{}里定义多个location)或域名。
同一端口,可以指定多个域名
你说的80是要nginx和什么服务一起占用?还是说虚拟主机的问题?
同一个server{}里定义多个location就行了,对外都是80,根据不同路径访问不同应用
只能通过servername 配置
192.168.xxx.xxx/aaa/ 到项目1
192.168.xxx.xxx/bbb/ 到项目2
就是虚拟目录