centos下的nginx简单安装配置,和搭配tomcat使用实现二级域名



 

小网站成本有限,用二级域名可以大大降低经济和时间人力的成本,二级域名类似于baidu.com 和tieba.baidu.com的关系。

那么java网站目前我知道的实现方法有2种,tomcat直接实现和nginx + tomcat实现

之前用的tomcat方案效果有点小问题,今天重新用nginx + 多个tomcat再实现一次

 

安装配置nginx

  1. #安装
  2. sudo yum install epel-release
  3. sudo yum install nginx
  4.  
  5. #启动 start 也sudo systemctl restart nginx       sudo systemctl stop nginx
  6. sudo systemctl start nginx
  7.  
  8. #配置 每次配置完需要重启服务
  9. vim /etc/nginx/nginx.conf


原版安装完成以后,配置文件里有这样一段,我是直接注释掉的

  1.     server {
  2.         listen       80 default_server;
  3.         listen       [::]:80 default_server;
  4.         server_name  _;
  5.         root         /usr/share/nginx/html;
  6.  
  7.         # Load configuration files for the default server block.
  8.         include /etc/nginx/default.d/*.conf;
  9.  
  10.         location / {
  11.         }
  12.  
  13.         error_page 404 /404.html;
  14.             location = /40x.html {
  15.         }
  16.  
  17.         error_page 500 502 503 504 /50x.html;
  18.             location = /50x.html {
  19.         }
  20.     }

 

然后替换为以下的内容

相当于

www.tczmh.club 会访问第一个tomcat的地址

bz.tczmh.club 会访问第二个tomcat的地址

  1.     server {
  2.         listen       80;
  3.         server_name  www.tczmh.club;
  4.         location / {
  5.             proxy_pass http://localhost:8080;
  6.             proxy_set_header Host $host:$server_port;
  7.             proxy_set_header X-Real-IP $remote_addr;
  8.             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  9.             proxy_set_header X-Forwarded-Scheme $scheme;
  10.             proxy_connect_timeout 3;
  11.             proxy_read_timeout 3;
  12.             proxy_send_timeout 3;
  13.             access_log off;
  14.             break;
  15.         }
  16.         error_page   500 502 503 504  /50x.html;
  17.         location = /50x.html {
  18.             root   html;
  19.         }
  20.     }
  21.     server {
  22.         listen       80;
  23.         server_name  bz.tczmh.club;
  24.         location / {
  25.             #root   html;
  26.             #index  index.html index.htm;
  27.             proxy_pass http://localhost:8081;
  28.             proxy_set_header Host $host:$server_port;
  29.             proxy_set_header X-Real-IP $remote_addr;
  30.             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  31.             proxy_set_header X-Forwarded-Scheme $scheme;
  32.             proxy_connect_timeout 3;
  33.             proxy_read_timeout 3;
  34.             proxy_send_timeout 3;
  35.             access_log off;
  36.             break;
  37.         }
  38.     }


 

 

方案2 是单tomcat下多个项目 也可以与方案1混用

  1.     server {
  2.         listen       80;
  3.         server_name  www.tczmh.club;
  4.         location / {
  5.             proxy_pass http://localhost:8080;
  6.             proxy_set_header Host $host:$server_port;
  7.             proxy_set_header X-Real-IP $remote_addr;
  8.             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  9.             proxy_set_header X-Forwarded-Scheme $scheme;
  10.             proxy_connect_timeout 3;
  11.             proxy_read_timeout 3;
  12.             proxy_send_timeout 3;
  13.             access_log off;
  14.             break;
  15.         }
  16.         error_page   500 502 503 504  /50x.html;
  17.         location = /50x.html {
  18.             root   html;
  19.         }
  20.     }
  21.     server {
  22.         listen       80;
  23.         server_name  bz.tczmh.club;
  24.         location / {
  25.             #root   html;
  26.             #index  index.html index.htm;
  27.             proxy_pass http://localhost:8080/bz/;
  28.             proxy_set_header Host $host:$server_port;
  29.             proxy_set_header X-Real-IP $remote_addr;
  30.             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  31.             proxy_set_header X-Forwarded-Scheme $scheme;
  32.             proxy_connect_timeout 3;
  33.             proxy_read_timeout 3;
  34.             proxy_send_timeout 3;
  35.             access_log off;
  36.             break;
  37.         }
  38.     }


也可以是多域名对应单项目

  1.     server {
  2.         listen       80;
  3.         server_name  www.tczmh.club;
  4.         location / {
  5.             proxy_pass http://localhost:8080;
  6.             proxy_set_header Host $host:$server_port;
  7.             proxy_set_header X-Real-IP $remote_addr;
  8.             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  9.             proxy_set_header X-Forwarded-Scheme $scheme;
  10.             proxy_connect_timeout 3;
  11.             proxy_read_timeout 3;
  12.             proxy_send_timeout 3;
  13.             access_log off;
  14.             break;
  15.         }
  16.         error_page   500 502 503 504  /50x.html;
  17.         location = /50x.html {
  18.             root   html;
  19.         }
  20.     }
  21.     server {
  22.         listen       80;
  23.         server_name  bz.tczmh.club;
  24.         location / {
  25.             #root   html;
  26.             #index  index.html index.htm;
  27.             proxy_pass http://localhost:8080/bz/;
  28.             proxy_set_header Host $host:$server_port;
  29.             proxy_set_header X-Real-IP $remote_addr;
  30.             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  31.             proxy_set_header X-Forwarded-Scheme $scheme;
  32.             proxy_connect_timeout 3;
  33.             proxy_read_timeout 3;
  34.             proxy_send_timeout 3;
  35.             access_log off;
  36.             break;
  37.         }
  38.     }
  39.     
  40.     server {
  41.         listen       80;
  42.         server_name  www.jjbz.xyz;
  43.         location / {
  44.             #root   html;
  45.             #index  index.html index.htm;
  46.             proxy_pass http://localhost:8080/bz/;
  47.             proxy_set_header Host $host:$server_port;
  48.             proxy_set_header X-Real-IP $remote_addr;
  49.             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  50.             proxy_set_header X-Forwarded-Scheme $scheme;
  51.             proxy_connect_timeout 3;
  52.             proxy_read_timeout 3;
  53.             proxy_send_timeout 3;
  54.             access_log off;
  55.             break;
  56.         }
  57.     } 


每次改完配置文件都要执行重启服务命令

  1. sudo systemctl restart nginx




最终实现了单服务器 二级域名的解决方案,

可以访问www.tczmh.club bz.tczmh.club 实现不同项目的效果

还可以继续深入,使用新域名,CNAME方案解析到二级域名。

达到单服务器单项目多域名的效果,节省多服务器的开支。