Home | 簡體中文 | 繁體中文 | 雜文 | 打賞(Donations) | Github | OSChina 博客 | 雲社區 | 雲棲社區 | Facebook | Linkedin | 知乎專欄 | 視頻教程 | About

Netkiller Linux Web 手札

Apache, Lighttpd, Nginx, Resin, Tomcat, Jboss, Zope...

Mr. Neo Chan, 陳景峯(BG7NYT)



中國廣東省深圳市望海路半島城邦三期
518067
+86 13113668890


MMDVM Hotspot:

YSF80337 - CN China 1 - W24166/TG46001
BM_China_46001 - DMR Radio ID 4600441

$Date: 2013-04-10 15:03:49 +0800 (Wed, 10 Apr 2013) $, $Id: book.xml 559 2013-04-10 07:03:49Z netkiller $

版權聲明

轉載請與作者聯繫,轉載時請務必標明文章原始出處和作者信息及本聲明。

http://www.netkiller.cn
http://netkiller.github.io
http://netkiller.sourceforge.net
微信訂閲號 netkiller-ebook (微信掃瞄二維碼)
QQ:13721218 請註明“讀者”
QQ群:128659835 請註明“讀者”

2017-02-13

內容摘要

本文檔講述Linux系統涵蓋了系統管理與配置包括:

[注意]對初學Linux的愛好者忠告

玩Linux最忌reboot(重新啟動)這是windows玩家壞習慣

Linux只要接上電源你就不要再想用reboot,shutdown,halt,poweroff命令,Linux系統和應用軟件一般備有reload,reconfigure,restart/start/stop...不需要安裝軟件或配置伺服器後使用reboot重新引導計算機

在Linux系統裡SIGHUP信號被定義為刷新配置檔案,有些程序沒有提供reload參數,你可以給進程發送HUP信號,讓它刷新配置檔案,而不用restart.通過pkill,killall,kill 都可以發送HUP信號例如: pkill -HUP httpd

我的系列文檔:

操作系統

Netkiller Linux 手札 Netkiller FreeBSD 手札 Netkiller Shell 手札
Netkiller Security 手札 Netkiller Web 手札 Netkiller Monitoring 手札
Netkiller Storage 手札 Netkiller Mail 手札 Netkiller Virtualization 手札

以下文檔停止更新合併到 《Netkiller Linux 手札》

Netkiller Debian 手札 Netkiller CentOS 手札 Netkiller Multimedia 手札    

致讀者

Netkiller 系列電子書始於 2000 年,風風雨雨走過20年,將在 2020 年終結,之後不在更新。作出這種決定原因很多,例如現在的閲讀習慣已經轉向短視頻,我個人的時間,身體健康情況等等......

感謝讀者粉絲這20年的支持

雖然電子書不再更新,後面我還會活躍在知乎社區和微信公眾號

目錄

1. 自述
1.1. 系列文檔
1.2. 作者簡介
1.3. 寫給讀者
1.4. 如何獲得文檔
1.4.1. 下載 Netkiller 手札 (epub,kindle,chm,pdf)
1.4.2. 鏡像下載
1.4.3. 克隆 github 倉庫
1.4.4. Yum 下載文檔
1.5. 打賞(Donations)
1.5.1. 微信(Wechat)
1.5.2. 支付寶(Alipay)
1.5.3. PayPal Donations
1.5.4. 銀行(Bank)
1.6. 聯繫方式
1. Nginx
1.1. Installing
1.1.1. Netkiller OSCM 一鍵安裝 (CentOS 7)
1.1.2. Installing by apt-get under the debain/ubuntu
1.1.3. CentOS
1.1.3.1. spawn-fcgi script
1.1.3.2. php-fpm
1.1.3.3. fastcgi backend
1.1.4. installing by source
1.1.5. CentOS 7
1.1.6. Mac
1.1.6.1. php-fpm
1.1.7. rotate log
1.1.7.1. log shell
1.1.7.2. /etc/logrotate.d/nginx
1.2. Nginx 命令
1.2.1. -V show version and configure options then exit
1.2.2. -t : test configuration and exit
1.2.3. test configuration, dump it and exit
1.3. nginx.conf 配置檔案
1.3.1. 處理器配置
1.3.2. events 配置
1.3.3. http 配置
1.3.3.1. 緩衝區相關設置
1.3.3.2. 超時設置
1.3.3.3. gzip
1.3.3.3.1. CDN支持
1.3.3.4. server_tokens
1.3.3.5. ssi
1.3.4. Nginx 變數
1.3.4.1. $host
1.3.4.2. http_user_agent
1.3.4.2.1. 禁止非瀏覽器訪問
1.3.4.2.2. http_user_agent 沒有設置不允許訪問
1.3.4.3. http_referer
1.3.4.3.1. valid_referers/invalid_referer
1.3.4.4. request_filename
1.3.4.5. request_uri
1.3.4.6. remote_addr
1.3.4.7. http_cookie
1.3.4.8. request_method
1.3.4.9. limit_except
1.3.4.10. invalid_referer
1.3.4.11. $request_body - HTTP POST 數據
1.3.4.11.1. 用戶日誌
1.3.4.11.2. $request_body 用於緩存
1.3.4.12. 自定義變數
1.3.4.13. if 條件判斷
1.3.5. server
1.3.5.1. listen
1.3.5.2. 單域名虛擬主機
1.3.5.3. ssl 虛擬主機
1.3.5.4. server_name 配置
1.3.5.5. location
1.3.5.5.1. 禁止訪問特定目錄
1.3.5.5.2. 引用document_root之外的資源
1.3.5.5.3. 處理副檔名
1.3.5.5.4. location 中關閉日誌
1.3.5.6. root 通過$host智能匹配目錄
1.3.5.7. expires
1.3.5.7.1. 通過 add_header / more_set_headers 設置緩存
1.3.5.7.2. $request_uri
1.3.5.7.3. $request_filename
1.3.5.8. access
1.3.5.9. autoindex
1.3.5.10. try_files
1.3.5.11. add_header
1.3.5.11.1. Cache
1.3.5.11.2. Access-Control-Allow
1.3.5.12. client_max_body_size 上傳檔案尺寸限制
1.3.5.13. return
1.3.6. rewrite
1.3.6.1. 處理泛解析
1.3.6.2. 處理副檔名
1.3.6.3. http get 參數處理
1.3.6.4. 正則取非
1.3.6.5. 去掉副檔名
1.3.6.6. 添加副檔名
1.3.7. HTTP2 配置 SSL證書
1.3.7.1. 自頒發證書
1.3.7.2. spdy
1.3.7.3. HTTP2
1.3.7.4. 用戶訪問 HTTP時強制跳轉到 HTTPS
1.3.7.5. SSL 雙向認證
1.3.7.5.1. 生成證書
1.3.7.5.1.1. CA
1.3.7.5.1.2. 伺服器端
1.3.7.5.1.3. 客戶端
1.3.7.5.1.4. 瀏覽器證書
1.3.7.5.1.5. SOAP 證書
1.3.7.5.1.6. 過程演示
1.3.7.5.2. Nginx 配置
1.3.7.5.3. 測試雙向認證
1.3.8. upstream 負載均衡
1.3.8.1. weight 權重配置
1.3.8.2. backup 實現熱備
1.3.9. Proxy
1.3.9.1. proxy_cache
1.3.9.2. rewrite + proxy_pass
1.3.9.3. request_filename + proxy_pass
1.3.9.4. $request_uri 與 proxy_pass 聯合使用
1.3.9.5. try_files 與 proxy_pass 共用
1.3.9.6. Proxy 與 SSI
1.3.9.7. Host
1.3.9.8. expires
1.3.9.9. X-Forwarded-For
1.3.9.10. X-Sendfile
1.3.9.11. proxy_http_version
1.3.9.12. proxy_set_header
1.3.9.13. proxy_pass_request_headers 透傳 Header
1.3.9.14. timeout 超時時間
1.3.9.15. example
1.3.9.15.1. 代理特定目錄
1.3.9.15.2. upstream 實例
1.3.9.15.3. Tomcat 實例
1.3.9.15.4. Nginx -> Nginx -> Tomcat
1.3.9.15.5. Proxy 處理 Cookie
1.3.9.15.6. Proxy 添加 CORS 頭
1.3.9.15.7. 通過 Proxy 漢化 restful 介面
1.3.9.15.8. HTTP2 proxy_pass http://
1.3.9.15.9. IPFS
1.3.10. fastcgi
1.3.10.1. spawn-fcgi
1.3.10.2. php-fpm
1.3.10.2.1. php5-fpm
1.3.10.2.2. 編譯 php-fpm
1.3.10.2.2.1. php-fpm 狀態
1.3.10.2.3. fastcgi_pass
1.3.10.2.4. nginx example
1.4. Nginx module
1.4.1. stub_status
1.4.2. sub_filter 頁面中查找和替換
1.4.3. auth_basic
1.4.3.1. 使用 htpasswd 生幾個密碼檔案
1.4.3.2. 使用 openssl 生成密碼
1.4.4. valid_referers
1.4.5. ngx_http_flv_module
1.4.6. ngx_http_mp4_module
1.4.7. limit_zone
1.4.8. image_filter
1.4.9. ngx_stream_proxy_module
1.4.10. ngx_http_mirror_module
1.4.11. limit_except
1.4.12. geoip_country_code
1.5. Example
1.5.1. Nginx + Tomcat
1.5.2. 攔截index.html
1.5.3. Session 的 Cookie 域處理
1.6. FAQ
1.6.1. 405 Not Allowed?
1.6.2. 502 Bad Gateway?
1.6.3. 413 Request Entity Too Large
1.6.4. 502 Bad Gateway?
1.6.5. 499 Client Closed Request
1.6.6. proxy_pass
1.6.7. proxy_pass SESSION 丟失問題
1.6.8. [alert] 55785#0: *11449 socket() failed (24: Too many open files) while connecting to upstream
1.6.9. server_name 與 SSI 注意事項
1.6.10. location 跨 document_root 引用,引用 document_root 之外的資源
1.6.11. nginx: [warn] duplicate MIME type "text/html" in /etc/nginx/nginx.conf
1.6.12. 127.0.0.1:8080 failed
2. Apache Tomcat
2.1. Tomcat 安裝與配置
2.1.1. Tomcat 6
2.1.1.1. tomcat-native
2.1.1.2. 啟動腳本
2.1.2. Tomcat 7
2.1.2.1. Server JRE
2.1.2.2. Tomcat
2.1.3. Java 8 + Tomcat 8
2.1.3.1. systemctl 啟動腳本
2.1.3.2. Session 共享
2.1.3.2.1. test session
2.1.4. 防火牆配置
2.1.5. 同時運行多實例
2.1.6. Testing file
2.1.7. mod_jk
2.1.8. mod_proxy_ajp
2.1.9. RewriteEngine 連接 Tomcat
2.1.10. SSL 雙向認證
2.2. 配置 Tomcat 伺服器
2.2.1. server.xml
2.2.1.1. Connector
2.2.1.1.1. HTTPS
2.2.1.1.2. compression
2.2.1.1.3. useBodyEncodingForURI
2.2.1.1.4. 隱藏Tomcat版本信息
2.2.1.2. Context
2.2.1.2.1. 應用程序安全
2.2.1.2.2. JSESSIONID
2.2.2. tomcat-users.xml
2.2.3. context.xml
2.2.3.1. Resources
2.2.3.2. session cookie
2.2.4. logging.properties
2.2.5. catalina.properties
2.3. 虛擬主機配置
2.3.1. 方案一
2.3.2. 方案二
2.3.3. Alias 別名
2.3.4. access_log
2.3.5. Context 配置
2.3.6. 主機綁定IP地址
2.4. SSI
2.5. Logging 日誌
2.5.1. 開啟 debug 模式
2.5.2. 切割 catalina.out 日誌
2.6. Init.d Script
2.6.1. Script 1
2.6.2. Shell Script 2
3. Apache httpd
3.1. Install
3.1.1. Quick install apache with aptitude
3.1.1.1. command
3.1.1.2. rewrite module
3.1.1.3. PHP module
3.1.1.4. deflate module
3.1.1.5. ssl module
3.1.1.6. VirtualHost
3.1.1.7. ~userdir module - /public_html
3.1.1.8. PHP 5
3.1.2. CentOS 6
3.1.2.1. Install
3.1.2.2. Uninstall
3.1.2.3. Configure
3.1.2.3.1. Apache
3.1.2.3.1.1. VirtualHost
3.1.2.3.2. MySQL
3.1.2.4. Starting
3.1.2.5. FAQ
3.1.2.5.1. compile php
3.1.3. Compile and then install Apache
3.1.3.1. Apache 安裝與配置
3.1.3.2. 優化編譯條件
3.1.3.3. PHP
3.1.3.4. Automation Installing
3.1.4. XAMPP
3.1.4.1. XAMPP for Linux
3.1.4.2. php5
3.2. Module
3.2.1. Output a list of modules compiled into the server.
3.2.2. Core
3.2.2.1. Listen
3.2.2.2. Filesystem and Webspace
3.2.2.2.1. Options
3.2.2.3. Etag
3.2.2.4. 隱藏 Apache 版本信息
3.2.3. mpm
3.2.3.1. event
3.2.3.2. worker
3.2.4. Apache Log
3.2.4.1. LogLevel
3.2.4.2. LogFormat
3.2.4.3. Compressed
3.2.4.4. rotatelogs - Piped logging program to rotate Apache logs
3.2.4.5. cronolog
3.2.4.6. 日誌合併
3.2.4.7. 日誌歸檔
3.2.4.8. logger
3.2.4.9. other
3.2.5. mod_access
3.2.6. VirtualHost
3.2.6.1. ServerName/ServerAlias
3.2.6.2. rotatelogs
3.2.7. Alias / AliasMatch
3.2.8. Redirect / RedirectMatch
3.2.9. Rewrite
3.2.9.1. R=301
3.2.9.2. Rewrite + JkMount
3.2.9.3. Apache redirect domain.com to www.domain.com
3.2.9.4. 正則匹配副檔名
3.2.10. Proxy
3.2.10.1. Reverse proxy
3.2.11. Deflate
3.2.11.1. 測試 gzip,deflate 模組
3.2.12. Expires
3.2.12.1. FilesMatch
3.2.12.2. Cache-Control
3.2.12.3. ETag
3.2.13. Cache
3.2.13.1. mod_disk_cache
3.2.13.2. mod_mem_cache
3.2.14. usertrack
3.2.15. Charset
3.2.16. Dir
3.2.17. Includes
3.2.18. Apache Status
3.2.19. Mod Perl
3.2.20. mod_pagespeed -
3.2.21. Module FAQ
3.2.22. mod_setenvif
3.2.23. PHP 程序安全問題 php_admin_value
3.2.24. mod_spdy
3.3. 設置Apache實現防盜連
3.4. .htaccess
3.5. Error Prompt
3.5.1. Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration
3.5.2. Invalid command 'AuthUserFile', perhaps misspelled or defined by a module not included in the server configuration
4. Lighttpd
4.1. 安裝Lighttpd
4.1.1. quick install with aptitude
4.1.2. yum install
4.1.3. to compile and then install lighttpd
4.1.3.1. shell script
4.2. /etc/lighttpd/lighttpd.conf
4.2.1. max-worker / max-fds
4.2.2. accesslog.filename
4.2.3. ETags
4.2.4. server.tag
4.3. Module
4.3.1. simple_vhost
4.3.2. ssl
4.3.3. redirect
4.3.4. rewrite
4.3.4.1. Lighttpd Rewrite QSA
4.3.5. alias
4.3.6. auth
4.3.7. compress
4.3.8. expire
4.3.9. status
4.3.10. setenv
4.3.10.1. Automatic Decompression
4.3.11. fastcgi
4.3.11.1. enable fastcgi
4.3.11.1.1. spawn-fcgi
4.3.11.1.2. php-fpm
4.3.11.2. PHP
4.3.11.2.1. 編譯安裝PHP
4.3.11.2.2. apt-get install
4.3.11.3. Python
4.3.11.3.1. Django
4.3.11.3.2. Python Imaging Library
4.3.11.4. Perl
4.3.11.4.1. Installing lighttpd and FastCGI for Catalyst
4.3.11.5. Ruby
4.3.11.6. UNIX domain sockets
4.3.12. user-agent
4.3.13. spdy
4.4. 其他模組
4.4.1. mod_secdownload 防盜鏈
4.5. Example
4.5.1. s-maxage
5. Resin
5.1. 安裝Resin
5.1.1. 直接使用
5.1.2. Debian/Ubuntu
5.1.3. 源碼安裝Resin
5.2. Compiling mod_caucho.so
5.3. resin.conf
5.3.1. Maximum number of threads
5.3.2. Configures the keepalive
5.3.3. ssl
5.4. virtual hosts
5.4.1. explicit host
5.4.2. regexp host
5.4.3. host-alias
5.4.4. configures a deployment directory for virtual hosts
5.4.5. Resources
5.5. FAQ
5.5.1. java.lang.OutOfMemoryError: PermGen space
6. Application Server
6.1. Zope
6.2. JBoss - JBoss Enterprise Middleware
7. Web Server Optimization
7.1. ulimit
7.1.1. open files
7.2. khttpd
7.3. php.ini
7.3.1. Resource Limits
7.3.2. File Uploads
7.3.3. Session Shared
7.3.4. PATHINFO
7.4. APC Cache (php-apc - APC (Alternative PHP Cache) module for PHP 5)
7.5. Zend Optimizer
7.6. eaccelerator
8. varnish - a state-of-the-art, high-performance HTTP accelerator
8.1. Varnish Install
8.2. varnish utility
8.2.1. status
8.2.2. varnishadm
8.2.2.1. 清除緩存
8.2.3. varnishtop
8.2.4. varnishhist
8.2.5. varnishsizes
8.3. log file
8.4. Varnish Configuration Language - VCL
8.4.1. unset / set
8.5. example
9. Apache Traffic Server
9.1. Install
9.2. Configure
10. Cherokee
10.1. Installing Cherokee
11. Jetty
12. Other Web Server
12.1. Python SimpleHTTPServer
13. web 伺服器排名
13.1. HTTP狀態碼
14. HTTP2
14.1. Chrome

範例清單

1.1. Expires Examples
1.2. nginx expires
1.3. Nginx SSL 雙向認證,證書生成過程
1.4. Example: valid_referers
1.5. Nginx + Tomcat
2.1. /etc/profile.d/java.sh
2.2. /etc/init.d/tomcat
2.3. Example /srv/apache-tomcat/conf
2.4. tomcat firewall
2.5. /etc/rc.d/init.d/www
3.1. index.php
3.2. autolamp.sh
3.3. R=301
3.4. mod_perl.conf
4.1. /etc/init.d/lighttpd
4.2. lighttpd compress
4.3. lighttpd expire
4.4. fastcgi.conf
4.5. Cache
5.1. explicit host in resin.conf
5.2. regexp host in resin.conf
5.3. host-alias in the resin.conf
5.4. host-alias in a /var/www/hosts/foo/host.xml
5.5. host-alias-regexp in the resin.conf
5.6. shared database in host
5.7. rewrite-dispatch
8.1. default.vcl