首页 > 代码库 > nginx简单的发布多个网站

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"‘;

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


本文出自 “盈通互联(北京)” 博客,请务必保留此出处http://yingtonghulian.blog.51cto.com/8846481/1407074