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