zoukankan      html  css  js  c++  java
  • nginx + tomcat 单个域名及多个域名的配置

    //nginx + tomcat 单个域名及多个域名的配置
    //修改nginx的配置文件,linux默认路径 /usr/local/nginx/conf/nginx.conf


    //prot为8082的web系统
    upstream web{
    server localhost:8082;
    }
    server {
    listen 80;
    server_name www.xxx.com;
    location / {
    proxy_pass http://web;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root html;
    }
    }
    //prot为8084的finance系统
    upstream finance{
    server localhost:8084;
    }
    server {
    listen 80;
    server_name finance.xxxx.com;
    location / {
    proxy_pass http://finance;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root html;
    }
    }
    //prot为8083的admin系统
    upstream admin{
    server localhost:8083;
    }
    server {
    listen 80;
    server_name admin.xxxx.com;
    location / {
    proxy_pass http://admin;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root html;
    }
    }


    //访问xxxx.com转向www.xxxx.com的配置
    server {
    server_name xxxx.com;
    rewrite ^(.*) http://www.xxxx.com$1 permanent;
    }

    nginx的基本配置大致就是这样,如果绑定多个域名(不管是一级域名还是二级域名),需配置多个server,你会发现这几个server配置都差不多,主要是更改server_name及proxy_pass指向即可。upstream节点其实就是代理服务的访问路径。
    如果此时访问域名,你会发现nginx的配置生效了,只是目前显示的是tomcat的默认界面。nginx的配置基本就这样了,接下来对tomcat做些配置的修改。找到tomcat里的conf/server.xml,注释掉默认的Host配置,添加如下Host配置:
    <Host name="localhost" appBase="E: omcatapache-tomcat-8.0.35-8082webappsweb" deployOnStartup ="false" autoDeploy="false" unpackWARs="true">
    <Context path="/" docBase="E: omcatapache-tomcat-8.0.35-8082webappsweb" />
    <Valve className="org.apache.catalina.valves.AccessLogValve"
    directory="logs" prefix="localhost_access_log" suffix=".txt"
    pattern="%h %l %u %t "%r" %s %b" />
    </Host>
    以上是windows服务器下的配置,如为linux,只需更改appBase和docBase,指向项目的路径。tomcat的配置也已经完成,重启tomcat,访问域名就指向了tomcat里的项目。

    //Nginx同一个域名配置多个项目

    1.nginx按不同的目录分发给不同的项目:
    server {

    listen 80;

    server_name example.com;


    location ^~ /project1 {

    proxy_pass http://localhost:8081;

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

    location ^~ /project2 {

    proxy_pass http://localhost:8082;

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }


    location / {

    proxy_pass http://localhost:8080;

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

    }

    这里配置了三个项目:


    http://example.com/project1路径分发到http://localhost:8081
    http://example.com/project2路径分发到http://localhost:8082

    其他路径分发到http://localhost:8080


    2.启用二级域名,不同的项目分配不同的二级域名

    server {

    listen 80;

    server_name example.com;


    location / {

    proxy_pass http://localhost:8080;

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

    }

    project1


    server {

    listen 80;

    server_name project1.example.com;

    location / {

    proxy_pass http://localhost:8081;

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

    }

    project2

    server {

    listen 80;

    server_name project2.example.com;

    location / {

    proxy_pass http://localhost:8082;

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

    }

    注意:这三个项目属于不同的域名,项目之间通过http访问会存在跨域问题。

    纵有白头俱老意,奈何缘浅路芊芊.
  • 相关阅读:
    linux使用shell执行一个Python文件
    shell编程
    mysql之通过cmd连接远程数据库
    单词辨析
    安全测试
    Linux下使用crontab执行一个shell脚本
    重新梳理Linux系统中Python环境的问题
    selenium 定位元素不稳定怎么解决?
    爬虫数据分析的前景
    Linux下部署python selenium UI自动化测试
  • 原文地址:https://www.cnblogs.com/hanby/p/14538295.html
Copyright © 2011-2022 走看看