遇到一个需求:首先网站有一个前端一个后台 由于用的session 前后端混乱了 所以在域名解析的时候 www.xxxxx.com 指向前端首页 system.xxxxx.com 指向后台首页;
整个项目的前后端代码是分开的 但是总归是一个项目。在网上看到有很多的nginx配置都是对多个应用(多个网站的域名转发)
我的这个项目 是 nginx 和tomcat在一台机器上 nginx处理静态文件 其他的交给tomcat tomcat监听8099端口
完整配置如下:
user root;
worker_processes 2;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid logs/nginx.pid;
events {
#windows用户 不用 use poll;
use epoll;worker_connections 2048;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
# gzip压缩功能设置
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 6;
gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
gzip_vary on;
#FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
# http_proxy 设置
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 75;
proxy_send_timeout 75;
proxy_read_timeout 75;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_temp_path /mnt/software/nginx/proxy_temp 1 2;
#设定请求缓冲
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
#设置对 80端口访问的限制
server{
listen 80 default;
server_name _;
return 403;
}
server {
listen 80;
server_name *.xxxxx.com;
charset utf-8;
#access_log logs/host.access.log main;
index index.html index.htm index.jsp index;
#对 *.xxxxx.com 的域名 匹配 (*后面不带路径和参数 也就是用户第一次计入网站的 域名 *.xxxxx.com or *.xxxxx.com/
location = / {
if ($host = 'system.xxxxx.com'){
#重定向为:system.xxxxx.com/www/system/index
rewrite ^(.*) /www/system/index last;}
if ($host = 'test.xxxxx.com'){
#重定向为:system.xxxxx.com/www/front/index
}
交给tomcat服务器处理
proxy_pass http://localhost:8099/;
}
location / {
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_pass http://localhost:8099/;
}
#静态文件nginx处理
location ~ \.(htm|html|gif|jpg|jpeg|png|bmp|swf|ico|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ {
root /mnt/software/tomcat/webapps/;
expires 7d;
}
location ~ \.(js|css)$ {
root /mnt/software/tomcat/webapps/;
expires 1h;
}
location ~^/(WEB-INF)/{
deny all;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}