• nginx 反向代理 与 Apache backend的配置联合配置


    nginx 反向代理 与 Apache backend的配置联合配置:
    说明: nginx 将http映射到Apache上的特定子目录。
    配置方法步骤:
    1.  设置域名, 子域名映射到指定服务器ip,
    2. nginx设置好server ,以及对应的目录, 或者 转发到指定Apache端口。
    server {
            listen 80 default_server;
            listen [::]:80 default_server ipv6only=on;
     
            root /usr/share/nginx/html;
            index index.html index.htm;
     
            # Make site accessible from http://localhost/
            server_name localhost;
     
            location / {
                    # First attempt to serve request as file, then
                    # as directory, then fall back to displaying a 404.
                    try_files $uri $uri/ =404;
                    # Uncomment to enable naxsi on this location
                    # include /etc/nginx/naxsi.rules
            }
     
            # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
            #location /RequestDenied {
            #       proxy_pass http://127.0.0.1:8080;
            #}
    #error_page 404 /404.html;
     
            # redirect server error pages to the static page /50x.html
            #
            #error_page 500 502 503 504 /50x.html;
            #location = /50x.html {
            #       root /usr/share/nginx/html;
            #}
     
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            #location ~ .php$ {
            #       fastcgi_split_path_info ^(.+.php)(/.+)$;
            #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
            #
            #       # With php5-cgi alone:
            #       fastcgi_pass 127.0.0.1:9000;
            #       # With php5-fpm:
            #       fastcgi_pass unix:/var/run/php5-fpm.sock;
            #       fastcgi_index index.php;
     #       include fastcgi_params;
            #}

            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /.ht {
            #       deny all;
            #}
    }

    server{
            listen 80;
            server_name   nginx.xxxx.com;
            location / {
                    root    /usr/share/nginx/html/www.xxxx.com;
                    index   index.html;
            }
    }

    server{
            listen    80;
            server_name     www.xxxx.com apache.xxxx.com;
            index   index.html;
            location / {
                    proxy_pass http://localhost:8080/www.xxxx.com/;
                    proxy_redirect default;
            }
    }
     
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #       listen 8000;
    #       listen somename:8080;
    #       server_name somename alias another.alias;
    #       root html;
    #       index index.html index.htm;
    #
    #       location / {
    #               try_files $uri $uri/ =404;
    #       }
    #}
     
    3. Apache 设置好ports.conf , 设置为2中相同(8080), 另外注意配置 sites_enable文件夹下的文件中的端口。
     
    <VirtualHost *:8080>
            # The ServerName directive sets the request scheme, hostname and port that
            # the server uses to identify itself. This is used when creating
            # redirection URLs. In the context of virtual hosts, the ServerName
            # specifies what hostname must appear in the request's Host: header to
            # match this virtual host. For the default virtual host (this file) this
            # value is not decisive as it is used as a last resort host regardless.
            # However, you must set it for any further virtual host explicitly.
            ServerName www.xxxx.com
     
            ServerAdmin webmaster@localhost
            DocumentRoot /var/www/html
     
            # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
            # error, crit, alert, emerg.
            # It is also possible to configure the loglevel for particular
            # modules, e.g.
            #LogLevel info ssl:warn
     
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
     
    4. 启动nginx 加载新配置, 重启Apache
     4.1  启动nginx,只需nginx即可,若是修改配置后重新启动,则需要nginx -s reload.  关闭: nginx -s stop
     4.2  apache2ctl restart
     
    5. 查看端口占用情况: netstat -anop | grep 80
     
    6. Apache 的 mod_expires 与 mod_cache
    Apache的过期策略可以通过apache的mod_expires和mod_headers两个模块设置:
     
    1)模块mod_expires设置:
    允许通过配置文件控制HTTP的"Expires"和"Cache-Control"头内容
    mod_expires 模块的主要作用是自动生成页面头部信息中的 Expires 标签和 Cache-Control 标签,从而降低客户端的访问频率和次数,达到减少不必要流量和增加访问速度的目的
    mod_expires 是 apache 众多模块中配置比较简单的一个,它一共只有三条指令
    ExpiresActive 指令:打开或关闭产生”Expires:”和”Cache-Control:”头的功能。
    ExpiresByType 指令:指定MIME类型的文档(例如:text/html)的过期时间。
    ExpiresDefault 指令:默认所有文档的过期时间。
     
    过期时间的写法
    “access plus 1 month”
    “access plus 4 weeks”
    “now plus 30 days”
    “modification plus 5 hours 3 minutes”
    A2592000
    M604800
    access、now及A 三种写法的意义相同,指过期时间从访问时开始计算。
    modification及M 的意义相同,指过期时间是以被访问文件的最后修改时间开始计算。
    所以,后一种写法只对静态文件起作用,而由脚本生成的动态页面不受它的作用
     
    配置实例:
     
        ExpiresActive On(开启mod_expires功能)
        ExpiresDefault "access plus 6 months"(默认的过期时间是6个月)
        ExpiresByType image/* "access plus 10 years"(图片的文件类型缓存时间为10年)
        ExpiresByType text/* "access plus 10 years"(文本类型缓存时间为10年)
        ExpiresByType application/* "access plus 30 minutes"(application文件类型缓存30分钟)
     
    验证:image/jpeg 缓存时间为315360000s(10年)
     
     
    如果将image/jpeg设置为不缓存(将max-age设置为0s):
     
    #   ExpiresByType image/* "access plus 10 years"
    ExpiresByType image/*  A0
     
    2)模块mod_headers设置:
     
       # YEAR(flv,gif,ico文件类型的缓存时间为1年)
     
    Header set Cache-Control “max-age=2592000″
     
     
    # WEEK(pdf.swf,js,css缓存时间为一周)
     
    Header set Cache-Control “max-age=604800″
     
     
    # NEVER CACHE(jsp.swf,ico文件类型不缓存)
     
    Header set Expires “Thu, 01 Dec 2003 16:00:00 GMT”
    Header set Cache-Control “no-store, no-cache, must-revalidate”
    Header set Pragma “no-cache”
  • 相关阅读:
    Mysql主键索引、唯一索引、普通索引、全文索引、组合索引的区别
    centos7下安装phpmyadmin
    centos7下apache启动报错记录
    Centos7 升级php版本到php7
    centos7下安装composer和git
    git推送新项目到github
    git使用入门
    laravel5.5学习2-路由系统
    laravel5.5入门-安装和认证
    laravel的monolog使用
  • 原文地址:https://www.cnblogs.com/ToDoToTry/p/4680688.html
Copyright © 2020-2023  润新知