如何简单的利用nginx实现多个网站的发布

这不是一个难题,只是记录下来我的经验,如有不当或者错误之处,请各位不吝赐教。
我原来在一家在线监控车辆位置的软件公司上班,产品初创之时,有许多系统上线,诸如,给客户使用的系统,给运营公司使用的系统,还有后台监控支撑系统,而且各种系统使用的域名不同,技术语言不同,甚至于操作系统也不一样,而我们的IP资源有限,当然也不希望使用过多的IP进行域名绑定,我们希望通过一个入口IP完成所有的域名绑定,这样就存在多服务器、多服务,在这种情况下,我采用了一台专门的反向代理服务器,进行请求转发和静态内容缓存,效果还是不错的。
简单说一下大体过程:
首先在本地/etc/hosts文件中添加本地地址和域名的解析,比如,内部地址为192.168.0.110,此系统对应的域名是 www.intoidc.net,则添加“192.168.0.110 www.intoidc.net”
然后,在nginx系统中添加虚拟主机:/etc/nginx/sites-enabled/www.intoidc.net;
server {
        listen       80;
        server_name  www.intoidc.net;

        #location ~.*\.(htm|html|gif|jpg|jpeg|png|bmp|ico|txt|css|js)?$ {
        #       root /usr/share/nginx/www/m.xingchetong.com;
        #       expires 30d;
        #} 
#以上注释掉的是用于静态缓存的内容

        location / {
                proxy_pass  http://www.intoidc.net:8080;
        }

       #access_log off;
        access_log  /var/log/nginx/www.intoidc.net.access.log  main;
        error_log  /var/log/nginx/www.intoidc.net.error.log;
}
第三,部署jetty服务器,将此应用系统的虚拟主机名称更改为www.intoidc.net;
文件路径:/usr/local/jetty7/contexts/www.intoidc.net.xml
...
<!-- virtual hosts -->
  <Set name="virtualHosts">
    <Array type="String">
      <Item>www.intoidc.net</Item>
      <Item>localhost</Item>
      <Item>127.0.0.1</Item>
    </Array>
  </Set>
...
这样就可以自动的访问到内部的jetty的8080端口的对应虚拟主机上了,对于其他的主机,无论是在那台内部服务器上,也无论是哪个端口,都可以依次设置即可。
当然,nginx服务器要进行必要的设置,我把我的设置贴出来:
在/etc/nginx/conf.d目录添加反向代理配置:文件名任意.conf
proxy_redirect off ;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout    5;
proxy_read_timeout       60;
proxy_send_timeout       5;
proxy_buffer_size        32k;
proxy_buffers            4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 1024m;
proxy_temp_path   /var/cache/nginx/tmp;
proxy_cache_path  /var/cache/nginx/cache  levels=1:2   keys_zone=cache_one:200m inactive=1d max_size=30g;
#log_format  main '$remote_addr|[$time_local][$body_bytes_sent]"$scheme://$host$request_uri"|$server_protocol|$status["$http_user_agent"]';
# main = access
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
log_format  globa '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"request_method $scheme://$host$request_uri $server_protocol" $status $body_bytes_sent'
                    '"$http_user_agent" "$http_x_forwarded_for"';

以上配置的具体参数,要根据大家网站的访问量和服务器配置进行调整,这个可以在运行过程中慢慢总结。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值