windows nginx配置多个站点的问题,

素剑步青尘 2014-06-09 09:23:35
问题描述
环境:公司有独立IP,我就想搭建一个服务器!
我搞了一台电脑,win7系统,这台电脑通过路由器上网,我在这台电脑上放了几个网站,现在要通过路由器端口映射的方式,访问我这台电脑配置的网站,但是现在问题是只能对外配置一个80端口,其它的域名访问必须加上端口号,请问可以通过nginx解决这个问题吗?
...全文
1144 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
高坚果兄弟 2014-06-11
  • 打赏
  • 举报
回复
看了楼主nginx配置,和我的配置基本差不多,不知道http://localhost:8188本地能否正常访问。 提示:访问www.xxx.com,根据你配置的,tomcat的得到的主机名将会是locahost,而不是www.xxx.com,通过设置proxy_set_header Host $http_host;可以正常获取到www.xxx.com主机名
高坚果兄弟 2014-06-11
  • 打赏
  • 举报
回复
引用 14 楼 xiaokailele 的回复:
http://localhost:8188是可以正常访问的
测试一下本地80端口能否正常访问,server_name 里加一个localhost,访问http://localhost看看是否返回http://localhost:8188的内容,不然nginx没按配置正常工作 或者简单点不改配置,修改hosts文件、用telnet之类的能修改host请求头的工具访问一下80端口 直接改hosts文件

127.0.0.1  www.xxx.com
或者用telnet测试:

telnet 127.0.0.1 80

GET / HTTP/1.1
Host:www.xxx.com

#响应数据#
素剑步青尘 2014-06-11
  • 打赏
  • 举报
回复
引用 12 楼 xiangyuecn 的回复:
看了楼主nginx配置,和我的配置基本差不多,不知道http://localhost:8188本地能否正常访问。 提示:访问www.xxx.com,根据你配置的,tomcat的得到的主机名将会是locahost,而不是www.xxx.com,通过设置proxy_set_header Host $http_host;可以正常获取到www.xxx.com主机名
加个QQ交流吧:934268568
素剑步青尘 2014-06-11
  • 打赏
  • 举报
回复
引用 12 楼 xiangyuecn 的回复:
看了楼主nginx配置,和我的配置基本差不多,不知道http://localhost:8188本地能否正常访问。 提示:访问www.xxx.com,根据你配置的,tomcat的得到的主机名将会是locahost,而不是www.xxx.com,通过设置proxy_set_header Host $http_host;可以正常获取到www.xxx.com主机名
http://localhost:8188是可以正常访问的
什么都不能 2014-06-11
  • 打赏
  • 举报
回复
引用 12 楼 xiangyuecn 的回复:
看了楼主nginx配置,和我的配置基本差不多,不知道http://localhost:8188本地能否正常访问。 提示:访问www.xxx.com,根据你配置的,tomcat的得到的主机名将会是locahost,而不是www.xxx.com,通过设置proxy_set_header Host $http_host;可以正常获取到www.xxx.com主机名
同意,增加转发协议头部信息
素剑步青尘 2014-06-10
  • 打赏
  • 举报
回复
我现在唯一感到
引用 10 楼 hanpoyangtitan 的回复:
server { listen 80; server_name www.xxx.com; location / { proxy_pass http://192.168.0.22:8080 proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } server { listen 80; server_name site1.xxx.com; location / { proxy_pass http://192.168.0.22:8081 proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
我现在唯一感到困惑的就是域名如何能转到我这太电脑,换句话说,nginx如何能检测到来自外部域名的访问?
什么都不能 2014-06-10
  • 打赏
  • 举报
回复
server { listen 80; server_name www.xxx.com; location / { proxy_pass http://192.168.0.22:8080 proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } server { listen 80; server_name site1.xxx.com; location / { proxy_pass http://192.168.0.22:8081 proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
素剑步青尘 2014-06-10
  • 打赏
  • 举报
回复
引用 8 楼 hanpoyangtitan 的回复:
[quote=引用 7 楼 xiaokailele 的回复:] [quote=引用 6 楼 hanpoyangtitan 的回复:] server { listen 80; server_name www.xxx.com; location / { proxy_pass http://192.168.0.22 proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
关键我这太电脑是通过路由器上网,www.xxx.com这个域名如何能转到我这台电脑上的ip呢?[/quote] 你自己的电脑?估计够呛啊,上行速率太低,80端口可能被封,都是问题 域名的话看你从哪里租的,有设置面板设置A记录指向你主机IP[/quote] 我现在的做法是用路由器把内部端口映射到外部端口为80,这样是可以的,说明我们的固定IP80端口是没有被封的,但是这样做,只能映射一个外部80端口!有没有好的办法?
什么都不能 2014-06-10
  • 打赏
  • 举报
回复
引用 7 楼 xiaokailele 的回复:
[quote=引用 6 楼 hanpoyangtitan 的回复:] server { listen 80; server_name www.xxx.com; location / { proxy_pass http://192.168.0.22 proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
关键我这太电脑是通过路由器上网,www.xxx.com这个域名如何能转到我这台电脑上的ip呢?[/quote] 你自己的电脑?估计够呛啊,上行速率太低,80端口可能被封,都是问题 域名的话看你从哪里租的,有设置面板设置A记录指向你主机IP
素剑步青尘 2014-06-10
  • 打赏
  • 举报
回复
引用 6 楼 hanpoyangtitan 的回复:
server { listen 80; server_name www.xxx.com; location / { proxy_pass http://192.168.0.22 proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
关键我这太电脑是通过路由器上网,www.xxx.com这个域名如何能转到我这台电脑上的ip呢?
什么都不能 2014-06-10
  • 打赏
  • 举报
回复
server { listen 80; server_name www.xxx.com; location / { proxy_pass http://192.168.0.22 proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
什么都不能 2014-06-10
  • 打赏
  • 举报
回复
server { listen 80; server_name www.xxx.com; location / { proxy_pass http://192.168.0.22 proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
素剑步青尘 2014-06-10
  • 打赏
  • 举报
回复
引用 3 楼 hanpoyangtitan 的回复:
可以,代理就是个请求转发,对外来说只有一台服务器
我贴下我的配置 和nginx.conf配置文件同级有个vhost文件夹,在nginx.conf 最后写了一句话include vhost/*.conf; 我这台电脑的ip是192.168.0.22 vhost里面全部是配置文件里面其中一个配置文件如下 upstream localhost { ip_hash; server localhost:8188; } server { listen 80; server_name www.xxx.com; location / { proxy_pass http:// www.xxx.com; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } tomcat配置 通过http://localhost:8188访问我本地的网站,那么 如何配置www.xxx.com这个域名可以访问我这台电脑的网站。
什么都不能 2014-06-10
  • 打赏
  • 举报
回复
可以,代理就是个请求转发,对外来说只有一台服务器
素剑步青尘 2014-06-10
  • 打赏
  • 举报
回复
引用 1 楼 hanpoyangtitan 的回复:
当然可以,nginx做反向代理
这位仁兄,现在情况是这样的,我这太电脑ip是192.168.0.22,这样的,也可以的吗?这台电脑不是直接用的外网IP是通过路由器上网的!但是电信的网络是有固定Ip的?
什么都不能 2014-06-09
  • 打赏
  • 举报
回复
当然可以,nginx做反向代理

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧