天天看点

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

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

本文出自 “” 博客,请务必保留此出处

继续阅读