美文网首页
贵安项目nginx配置

贵安项目nginx配置

作者: 墨色尘埃 | 来源:发表于2018-11-07 18:29 被阅读6次

关于nginx的使用以及为什么使用【Nginx】什么是Nginx?为什么使用Nginx?
nginx 之 proxy_pass详解nginx 之 proxy_pass详解

生产环境和开发环境中nginx基本配置,其中测试环境,将app后台管理放在39上而不是66上是因为66是nginx转发的中心,最好区分开。
1、39上启动前端服务:
①解压tomcat,设置环境变量,JAVA_HOME和Path。tomcat启动一闪而过:安装前确保已经安装配置JDK。比如JAVA_HOME没配好是会一闪而过的。
②通过68远程到39,将parkmall文件整个复制过去放在webapps文件夹下
③启动bin目录下startup.bat

2、nginx访问简图

nginx访问简图.jpg

3、nginx中文件服务器的配置
location /files/这里的files需要与39上IIS的物理路径E:\guian_files\files中的files相同。如果nginx中没有配置location /files/,可以通过自身的服务http://172.16.11.39:8081/files/templates/ggg.jpeg访问,但是不能通过nginx的转发地址http://172.16.11.66:8180/files/templates/ggg.jpeg访问。如果nginx中配置了location /files/且files相同,那么通过两个url都可以访问。

######################### 访问IIS 文件服务器       
         location /files/ {
       
             access_log off;
             access_log  logs/access-ftp-$log_time.log  logfiles_187;
  
             #proxy_redirect     http:// $scheme://;
             #proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
             #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;
             proxy_connect_timeout 900; 
         proxy_send_timeout 900; 
         proxy_read_timeout 900; 
        # proxy_buffer_size 400k; 
        # proxy_buffers 40 320k; 
        # proxy_busy_buffers_size 640k; 
            # proxy_temp_file_write_size 640k;  

            #此处配置的域名必须与upstream的域名一致,才能转发。

            proxy_pass     http://FTPfiles;

        } 
39上IIS的物理路径.png

4、nginx中访问前端服务的配置
location /mh/这里的mh需要与39上前端物理路径E:\GAYGPublic\apache-tomcat-7.0.86\webapps\mh中的mh相同。如果nginx中没有配置location /mh/,可以通过自身的服务http://172.16.11.39:8000/mh/ed3d2ddd.jpg访问,但是不能通过nginx的转发地址http://172.16.11.66:8180/mh/ed3d2ddd.jpg访问;如果nginx中配置了location /mh/且mh相同,那么通过两个url都可以访问。

######################### 访问物业管理系统           
        location /mh/ {

             access_log off;
             access_log  logs/access-wy-$log_time.log  logfiles_187;
         
             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;
             proxy_connect_timeout 900; 
         proxy_send_timeout 900; 
         proxy_read_timeout 900; 
        # proxy_buffer_size 400k; 
        # proxy_buffers 40 320k; 
        # proxy_busy_buffers_size 640k; 
            # proxy_temp_file_write_size 640k;  

            #此处配置的域名必须与upstream的域名一致,才能转发。

            proxy_pass     http://qianduan;

        }
172.16.11.39上 tomcat.png

注:如果webapps下有mh文件夹,但是没有在nginx中配置location /mh/,那通过http://172.16.11.39:8000/mh/ed3d2ddd.jpg是不能够访问的。aaa同理。

5、proxy_pass斜杠问题
①对于图片(被设置成了IIS)
⑴如果files和IIS物理路径相同,且proxy_pass没有斜杠,则输入浏览器的urlA只有一个files
理解错误✖(TODO2018/11/8理解:其实这里的files和虚拟机上的物理路径没有一点关系,不用在意location后的名称,有斜杠会被代理掉,到实际指向的url中不会显示
TODO2018/11/9理解:其实只需要根据实际指向地址urlB来决定location后的名称A即可,如果不带斜杠,名称A不会被代理掉,会拼接在urlB中,拼接的url就变成了http://172.16.11.39:8081/files/...,而要想保证能访问到图片,在这个例子里名称A就必须是files,因为如果是fileddd这样的名称,拼接的url就变成了http://172.16.11.39:8081/fileddd/...而这个地址必然是错误的,因为39文件服务器上设置的IIS根本就没有fileddd这个目录又怎么可能访问到呢。
urlA:http://172.16.11.66:8180/files/YY/20180110/910c6811a7dd408d9be413b26e72f4b9_360%E6%88%AA%E5%9B%BE16600904648177.png(浏览器中输入)
urlB(FTPfiles):172.16.11.39:8081(实际指向)
urlC:http://172.16.11.39:8081/files/YY/20180110/910c6811a7dd408d9be413b26e72f4b9_360%E6%88%AA%E5%9B%BE16600904648177.png(实际指向最终url)

location /files/ {  #其实这里的files和虚拟机上的物理路径还是有关系的
    proxy_pass     http://FTPfiles; #没有斜杠
}

⑵如果files和IIS物理路径相同(名称为什么相同见上),proxy_pass有斜杠,则访问的url中有两个files.
TODO2018/11/9理解:见上。如果proxy_pass后带斜杠,名称A会被代理掉,不会拼接在urlB中,所以urlA是http://172.16.11.66:8180/files/files...指向实际的地址是http://172.16.11.39:8081/files...
**)
urlA:http://172.16.11.66:8180/files/files/YY/20180110/910c6811a7dd408d9be413b26e72f4b9_360%E6%88%AA%E5%9B%BE16600904648177.png(浏览器中输入)
urlB(FTPfiles):172.16.11.39:8081(实际指向)
urlC:http://172.16.11.39:8081/files/YY/20180110/910c6811a7dd408d9be413b26e72f4b9_360%E6%88%AA%E5%9B%BE16600904648177.png(实际指向最终url)

location /files/ {
    proxy_pass     http://FTPfiles/; #有斜杠
}

⑶ 如果files和IIS物理路径不相同,proxy_pass没有斜杠,名称A不会被代理掉,会被拼接到urlB上,则输入浏览器的urlA是不会访问到图片的,因为虚拟机上没有名称A的目录,假如名称A是filedd,则
urlA:http://172.16.11.66:8180/filedd/files/YY/20180110/910c6811a7dd408d9be413b26e72f4b9_360%E6%88%AA%E5%9B%BE16600904648177.png(浏览器中输入,是访问不到图片的)
urlB(FTPfiles):172.16.11.39:8081(实际指向)
urlC:http://172.16.11.39:8081/filedd/files/YY/20180110/910c6811a7dd408d9be413b26e72f4b9_360%E6%88%AA%E5%9B%BE16600904648177.png(实际指向最终url,访问不到图片)

location /filedd/ {
    proxy_pass     http://FTPfiles; #没有斜杠
}

⑷ 如果files和IIS物理路径不相同,proxy_pass有斜杠,名称A会被代理掉,不会被拼接到urlB上,输入浏览器的urlA就是名称A+虚拟机的目录名,假如名称A是filedd,则
urlA:http://172.16.11.66:8180/filedd/files/YY/20180110/910c6811a7dd408d9be413b26e72f4b9_360%E6%88%AA%E5%9B%BE16600904648177.png(浏览器中输入)
urlB(FTPfiles):172.16.11.39:8081(实际指向)
urlC:http://172.16.11.39:8081/files/YY/20180110/910c6811a7dd408d9be413b26e72f4b9_360%E6%88%AA%E5%9B%BE16600904648177.png(实际指向最终url)

location /filedd/ {
    proxy_pass     http://FTPfiles/; #有斜杠
}

⑸ 如果没有配置nginx,则:
http://172.16.11.39:8081/files/YY/20180110/910c6811a7dd408d9be413b26e72f4b9_360%E6%88%AA%E5%9B%BE16600904648177.png

②同理,对于tomcat下的前端项目:
⑴ 如果名称A和tomcat下前端物理路径E:\GAYGPublic\apache-tomcat-7.0.86\webapps\aaa相同,且proxy_pass没有斜杠,则名称A不会被代理掉,会拼接到urlB上,urlB为http://172.16.11.39:8000/aaa...输入浏览器的url中只有一个aaa
urlA:http://172.16.11.66:8180/aaa/ed3d2ddd.jpg(浏览器中输入)
urlB(qianduan):172.16.11.39:8000(实际指向)
urlC:http://172.16.11.39:8000/aaa/ed3d2ddd.jpg(实际指向最终url)

location /aaa/ {  #名称A
    proxy_pass     http://qianduan; #没有斜杠
}

⑵ 如果名称A和tomcat下前端物理路径E:\GAYGPublic\apache-tomcat-7.0.86\webapps\aaa相同,但是proxy_pass有斜杠,则名称A会被代理掉,不会拼接到urlB上,urlB为http://172.16.11.39:8000/aaa...输入浏览器的urlA有两个aaa
urlA:http://172.16.11.66:8180/aaa/aaa/ed3d2ddd.jpg(浏览器中输入)
urlB(qianduan):172.16.11.39:8000(实际指向)
urlC:http://172.16.11.39:8000/aaa/ed3d2ddd.jpg(实际指向最终url)

location /aaa/ {
    proxy_pass     http://qianduan/;  #有斜杠
}

⑶ 如果名称A和tomcat下前端物理路径E:\GAYGPublic\apache-tomcat-7.0.86\webapps\aaa不相同,proxy_pass没有斜杠,则名称A不会被代理掉,会拼接到urlB上,假设名称A为hh,则urlB为http://172.16.11.39:8000/hh/aaa...输入浏览器的urlA是名称A+aaa
urlA:http://172.16.11.66:8180/hh/aaa/ed3d2ddd.jpg(浏览器中输入,访问不到图片,因为tomcat下根本没有hh这个目录)
urlB(qianduan):172.16.11.39:8000(实际指向)
urlC:http://172.16.11.39:8000/hh/aaa/ed3d2ddd.jpg(实际指向最终url,访问不到图片)

location /hh/ {
    proxy_pass     http://qianduan; #没有斜杠
}

⑷ 如果名称A和tomcat下前端物理路径E:\GAYGPublic\apache-tomcat-7.0.86\webapps\aaa不相同,但是proxy_pass有斜杠,则名称A会被代理掉,不会拼接到urlB上,hh被代理掉不会在urlB中显示,urlB为http://172.16.11.39:8000/aaa...输入浏览器的urlA是名称A+aaa
urlA:http://172.16.11.66:8180/hh/aaa/ed3d2ddd.jpg(浏览器输入,可以访问到图片)
urlB(qianduan):172.16.11.39:8000(实际指向)
urlC:http://172.16.11.39:8000/aaa/ed3d2ddd.jpg(实际指向最终url)

location /hh/ {
    proxy_pass     http://qianduan/;  #有斜杠
}

⑸ 如果没有配置nginx,则:
http://172.16.11.39:8000/aaa/ed3d2ddd.jpg(是否需要重启tomcat,有时候又不能访问??)
记住,根本虚机/远程上的url来配置nginx就不会乱了

360截图16491221242935_副本.png
360截图16600903103119145_副本.png

6、nginx完整配置--开发环境


#user  nobody;
worker_processes  16;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  2048;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Headers X-Requested-With;
    add_header Access-Control-Allow-Methods GET,POST,OPTIONS;

    log_format  logfiles_187  '$remote_addr - $remote_user [$time_iso8601] "$request" '
                      '[$status] $body_bytes_sent "[$http_referer]" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
  


 ################################# WEB后台服务代理 #####################################################  
   upstream Dservers{
   
      server 172.16.11.66:10002;
  
    }

 ################################# 前台服务代理 #####################################################      
   upstream qianduan{
   
      server 172.16.11.39:8000;
    }

    
 ################################# 手机后台服务代理 #####################################################      
   upstream Mobile{
      server 172.16.11.39:8000 down;
      server 172.16.11.68:8180;
    }
        

 ################################# IIS文件服务代理 #####################################################      
   upstream FTPfiles{
   
      server 172.16.11.39:8081;   
    }



    server {
        listen       8180;
        server_name  172.16.11.66
        charset utf-8;

        if ($time_iso8601 ~ '(\d{4}-\d{2}-\d{2})') {
                set $log_time $1;
        }
    
    #client_max_body_size 10m;
    #client_body_buffer_size 1280k;

        
######################### 访问统一门户系统           
        location /mh/ {


             access_log off;
             access_log  logs/access-mh-$log_time.log  logfiles_187;
         
             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;
             proxy_connect_timeout 900; 
         proxy_send_timeout 900; 
         proxy_read_timeout 900; 
        # proxy_buffer_size 400k; 
        # proxy_buffers 40 320k; 
        # proxy_busy_buffers_size 640k; 
            # proxy_temp_file_write_size 640k;  

            #此处配置的域名必须与upstream的域名一致,才能转发。

            proxy_pass     http://qianduan;

        }
        
######################### 访问物业管理系统           
        location /wy/ {

             access_log off;
             access_log  logs/access-wy-$log_time.log  logfiles_187;
         
             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;
             proxy_connect_timeout 900; 
         proxy_send_timeout 900; 
         proxy_read_timeout 900; 
        # proxy_buffer_size 400k; 
        # proxy_buffers 40 320k; 
        # proxy_busy_buffers_size 640k; 
            # proxy_temp_file_write_size 640k;  

            #此处配置的域名必须与upstream的域名一致,才能转发。

            proxy_pass     http://qianduan;

        }
        
        
######################### 访问运营管理系统           
        location /yy/ {

             access_log off;
             access_log  logs/access-yy-$log_time.log  logfiles_187;
         
             proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
             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;
             proxy_connect_timeout 900; 
         proxy_send_timeout 900; 
         proxy_read_timeout 900; 
        # proxy_buffer_size 400k; 
        # proxy_buffers 40 320k; 
        # proxy_busy_buffers_size 640k; 
            # proxy_temp_file_write_size 640k;   

            #此处配置的域名必须与upstream的域名一致,才能转发。

            proxy_pass     http://qianduan;

        }
        
######################### 访问企业云系统           
        location /qyy/ {
         
            access_log off; 
            access_log  logs/access-qyy-$log_time.log  logfiles_187;

             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;
             proxy_connect_timeout 900; 
         proxy_send_timeout 900; 
         proxy_read_timeout 900; 
        # proxy_buffer_size 400k; 
        # proxy_buffers 40 320k; 
        # proxy_busy_buffers_size 640k; 
            # proxy_temp_file_write_size 640k;  

            #此处配置的域名必须与upstream的域名一致,才能转发。

            proxy_pass     http://qianduan;

        }
#########################    
        location /aaa/ {
         
            access_log off; 
            access_log  logs/access-qyy-$log_time.log  logfiles_187;

             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;
             proxy_connect_timeout 900; 
         proxy_send_timeout 900; 
         proxy_read_timeout 900; 
        # proxy_buffer_size 400k; 
        # proxy_buffers 40 320k; 
        # proxy_busy_buffers_size 640k; 
            # proxy_temp_file_write_size 640k;  

            #此处配置的域名必须与upstream的域名一致,才能转发。

            proxy_pass     http://qianduan;

        }
        
######################### 访问手机后台服务       
         location /parkmall/ {
       
             access_log off;
             access_log  logs/access-mobile-$log_time.log  logfiles_187;
  
             #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;
             proxy_connect_timeout 900; 
         proxy_send_timeout 900; 
         proxy_read_timeout 900; 
        # proxy_buffer_size 400k; 
        # proxy_buffers 40 320k; 
        # proxy_busy_buffers_size 640k; 
            # proxy_temp_file_write_size 640k;  

            #此处配置的域名必须与upstream的域名一致,才能转发。

            proxy_pass     http://Mobile;

        } 

######################### 访问IIS 文件服务器       
         location /files/ {
       
             access_log off;
             access_log  logs/access-ftp-$log_time.log  logfiles_187;
  
             #proxy_redirect     http:// $scheme://;
             #proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;

  
             #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;
             proxy_connect_timeout 900; 
         proxy_send_timeout 900; 
         proxy_read_timeout 900; 
        # proxy_buffer_size 400k; 
        # proxy_buffers 40 320k; 
        # proxy_busy_buffers_size 640k; 
            # proxy_temp_file_write_size 640k;  

            #此处配置的域名必须与upstream的域名一致,才能转发。

            proxy_pass     http://FTPfiles;

        } 
#########################  访问WEB后台服务       
         location / {
       
             access_log off;
             access_log  logs/access-server-$log_time.log  logfiles_187;
  
             #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;
             proxy_connect_timeout 900; 
         proxy_send_timeout 900; 
         proxy_read_timeout 900; 
        # proxy_buffer_size 400k; 
        # proxy_buffers 40 320k; 
        # proxy_busy_buffers_size 640k; 
            # proxy_temp_file_write_size 640k;  

            #此处配置的域名必须与upstream的域名一致,才能转发。

            proxy_pass     http://Dservers;

        }
       
        error_page  404  /404.html;

        location = /40x.html {
            root   html;
        }
        
        # redirect server error pages to the static page /50x.html

        error_page   500 502 503 504  /50x.html;
        
        location = /50x.html {
            root   html;
        }           

                    
    }
 
}

相关文章

网友评论

      本文标题:贵安项目nginx配置

      本文链接:https://www.haomeiwen.com/subject/gopvxqtx.html