今天学习使用nginx进行多站点配置,将步骤进行简单的记录,方便以后查询使用。本文涉及到多域名配置以及一个域名映射多个端口的情况。
一、tomcat 多端口映射配置:
1、tomcat文件夹中创建两个webapps:
首先在tomcat目录下创建多个webapps文件夹,分别叫webapps1、webapp2,之前的webapps 没做任何修改。
htgl 项目放到webapps1文件夹下,ytdz项目放到webapp2文件夹下。
2、修改tomcat conf 文件夹中的 server.xml的配置
在server.xml文件中加入下面一段配置
3、可以创建文件夹存放项目的快捷指向链接(我的项目配置了链接文件夹)
在与tomcat齐名的目录下创建 www 文件夹 里面存放两个项目的链接文件夹,分别指向tomcat中 htgl和ytdz目录, 方便nginx vhosts文件夹下conf文件中 root 的 配置。
二、nginx 配置如下:
首先在nginx的conf目录下创建vhosts文件,在文件夹中创建glxt.conf、htgl.conf 、ytdz.conf三个文件
1、glxt.conf文件配置如下:
server {
listen 80;
server_name glxt.com www.glxt.com; #是花钱申请的一级域名(这里使用的假的地址)
charset utf-8;
root /ytgs/glxt.com ; #这里的路径是静态网站的存放路径
index index.html index.htm;
access_log off;
}
该文件存放的公司的网站,当时是从电脑上下载的静态网页,配置比较简单 。
2、htgl.conf 文件配置如下:
server {
listen 80 default;
server_name htgl.cn www.htgl.cn; #是花钱申请的一级域名(这里使用的假的地址)
index login;
root /test/www/htgl; # 创建的快捷链接文件夹,指向tomcat webapps中 htgl项目。
location = /images/kaptcha.jpg { #项目中使用验证码图片地址也需要映射一下
proxy_pass http://127.0.0.1:8081/images/kaptcha.jpg; #8081对应的 htgl项目的端口号
}
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:8081;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
access_log off;
}
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
expires 30d;
access_log off;
}
access_log /test/log/nginx/access/htgl.log;
}
3、ytdz.conf 文件配置如下:(ytdz 与 glxt使用一个域名,不同端口进行监听访问)
server {
listen 89; #与glxt 不同端口的配置部分
server_name glxt.com www.glxt.com;
index login;
root /test/www/ytdz; # 创建的快捷链接文件夹,指向tomcat webapps中 ytdz项目。
location = /images/kaptcha.jpg {
proxy_pass http://127.0.0.1:8084/images/kaptcha.jpg;
}
location / {
proxy_set_header Host $host:89; #这里如果不加89 项目登录后,登录到原来80端口映射的网址
proxy_set_header X-Real-IP $remote_addr:89; #这里如果不加89 项目登录后,登录到原来80端口映射的网址
proxy_pass http://127.0.0.1:8084; #8084对应的 ytdz项目的端口号
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
access_log off;
}
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
expires 30d;
access_log off;
}
access_log /test/log/nginx/access/ytdz.log;
}
最后:配置完conf文件后,需要在nginx的conf文件夹下的nginx.conf进行修改,在最后面加一句:
include /test/server/nginx/conf/vhosts/*.conf;
配置完毕后重启tomcat,然后重启nginx。
一级目录的项目直接访问一级目录,ytdz项目需要访问 glxt.com:89