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」
相關文章
相關標籤/搜索