Home | 简体中文 | 繁体中文 | 杂文 | 知乎专栏 | 51CTO学院 | CSDN程序员研修院 | Github | OSChina 博客 | 腾讯云社区 | 阿里云栖社区 | Facebook | Linkedin | 打赏(Donations) | About
知乎专栏多维度架构

Netkiller Linux Web 手札

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

Mr. Neo Chan, 陈景峯(BG7NYT)



中国广东省深圳市望海路半岛城邦三期
518067
+86 13113668890


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

电子书最近一次更新于 2021-09-23 20:10:25

版权声明

转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明。

http://www.netkiller.cn
http://netkiller.github.io
http://netkiller.sourceforge.net
微信订阅号 netkiller-ebook
微信:13113668890 请注明“读者”
QQ:13721218 请注明“读者”
QQ群:128659835 请注明“读者”
知乎专栏 | 多维度架构

2017-02-13


致读者

Netkiller 系列手札 已经被 Github 收录,并备份保存在北极地下250米深的代码库中,备份会保留1000年。

Preserving open source software for future generations

The world is powered by open source software. It is a hidden cornerstone of modern civilization, and the shared heritage of all humanity.

The GitHub Arctic Code Vault is a data repository preserved in the Arctic World Archive (AWA), a very-long-term archival facility 250 meters deep in the permafrost of an Arctic mountain.

We are collaborating with the Bodleian Library in Oxford, the Bibliotheca Alexandrina in Egypt, and Stanford Libraries in California to store copies of 17,000 of GitHub’s most popular and most-depended-upon projects—open source’s “greatest hits”—in their archives, in museum-quality cases, to preserve them for future generations.

https://archiveprogram.github.com/arctic-vault/

目录

1. 自述
1.1. 写给读者
1.2. 作者简介
1.3. 如何获得文档
1.4. 打赏(Donations)
1.5. 联系方式
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.3.2. 使用包含配置文件配置 gzip
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. HTTP2 配置 SSL证书
1.3.5.4.1. 自颁发证书
1.3.5.4.2. spdy
1.3.5.4.3. HTTP2
1.3.5.4.4. 用户访问 HTTP时强制跳转到 HTTPS
1.3.5.4.5. SSL 双向认证
1.3.5.5. server_name 配置
1.3.5.6. location
1.3.5.6.1. 禁止访问特定目录
1.3.5.6.2. 引用document_root之外的资源
1.3.5.6.3. 处理扩展名
1.3.5.6.4. location 中关闭日志
1.3.5.6.5. 匹配多个目录
1.3.5.7. root 通过$host智能匹配目录
1.3.5.8. expires
1.3.5.8.1. 通过 add_header / more_set_headers 设置缓存
1.3.5.8.2. $request_uri
1.3.5.8.3. $request_filename
1.3.5.9. access
1.3.5.10. autoindex
1.3.5.11. try_files
1.3.5.12. add_header
1.3.5.12.1. Cache
1.3.5.12.2. Access-Control-Allow
1.3.5.13. client_max_body_size 上传文件尺寸限制
1.3.5.14. 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. upstream 负载均衡
1.3.7.1. weight 权重配置
1.3.7.2. backup 实现热备
1.3.8. Proxy
1.3.8.1. proxy_cache
1.3.8.2. rewrite + proxy_pass
1.3.8.3. request_filename + proxy_pass
1.3.8.4. $request_uri 与 proxy_pass 联合使用
1.3.8.5. try_files 与 proxy_pass 共用
1.3.8.6. Proxy 与 SSI
1.3.8.7. Host
1.3.8.8. expires
1.3.8.9. X-Forwarded-For
1.3.8.10. X-Sendfile
1.3.8.11. proxy_http_version
1.3.8.12. proxy_set_header
1.3.8.13. 隐藏头部信息
1.3.8.14. 忽略头
1.3.8.15. proxy_pass_request_headers 透传 Header
1.3.8.16. timeout 超时时间
1.3.8.17. sub_filter 文本替换
1.3.8.18. example
1.3.8.18.1. 代理特定目录
1.3.8.18.2. upstream 实例
1.3.8.18.3. Tomcat 实例
1.3.8.18.4. Nginx -> Nginx -> Tomcat
1.3.8.18.5. Proxy 处理 Cookie
1.3.8.18.6. Proxy 添加 CORS 头
1.3.8.18.7. 通过 Proxy 汉化 restful 接口
1.3.8.18.8. HTTP2 proxy_pass http://
1.3.8.18.9. IPFS
1.3.8.19. HTTP Auth 认证冲突
1.3.9. fastcgi
1.3.9.1. spawn-fcgi
1.3.9.2. php-fpm
1.3.9.2.1. php5-fpm
1.3.9.2.2. 编译 php-fpm
1.3.9.2.3. fastcgi_pass
1.3.9.2.4. nginx example
1.4. Nginx module
1.4.1. stub_status 服务器状态采集模块
1.4.2. sub_filter 页面中查找和替换
1.4.3. auth_basic HTTP 认证模块
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. 413 Request Entity Too Large
1.6.3. 499 Client Closed Request
1.6.4. 502 Bad Gateway?
1.6.5. 504 Gateway Time-out
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
1.6.13. failed (13: Permission denied) while connecting to upstream
2. Caddy
2.1. 安装 Caddy
2.2. 启动 Caddy
2.2.1. 开启 QUIC
2.3. 命令行
2.3.1. 文件服务器
2.4. /etc/caddy/Caddyfile
2.4.1. 监听地址
2.4.2. 反向代理
3. Apache Tomcat
3.1. Tomcat 安装与配置
3.1.1. Tomcat 6
3.1.1.1. tomcat-native
3.1.1.2. 启动脚本
3.1.2. Tomcat 7
3.1.2.1. Server JRE
3.1.2.2. Tomcat
3.1.3. Java 8 + Tomcat 8
3.1.3.1. systemctl 启动脚本
3.1.3.2. Session 共享
3.1.3.2.1. test session
3.1.3.3. SSL 证书上
3.1.4. Tomcat 9/10
3.1.5. 防火墙配置
3.1.6. 同时运行多实例
3.1.7. Testing file
3.1.8. mod_jk
3.1.9. mod_proxy_ajp
3.1.10. RewriteEngine 连接 Tomcat
3.1.11. SSL 双向认证
3.2. 配置 Tomcat 服务器
3.2.1. server.xml
3.2.1.1. Connector
3.2.1.1.1. HTTPS
3.2.1.1.2. compression
3.2.1.1.3. useBodyEncodingForURI
3.2.1.1.4. 隐藏Tomcat版本信息
3.2.1.2. Context
3.2.1.2.1. 应用程序安全
3.2.1.2.2. JSESSIONID
3.2.2. tomcat-users.xml
3.2.3. context.xml
3.2.3.1. Resources
3.2.3.2. session cookie
3.2.4. logging.properties
3.2.5. catalina.properties
3.3. 虚拟主机配置
3.3.1. 方案一
3.3.2. 方案二
3.3.3. Alias 别名
3.3.4. access_log
3.3.5. Context 配置
3.3.6. 主机绑定IP地址
3.4. SSI
3.5. Logging 日志
3.5.1. 开启 debug 模式
3.5.2. 切割 catalina.out 日志
3.6. Init.d Script
3.6.1. Script 1
3.6.2. Shell Script 2
4. Apache httpd
4.1. Install
4.1.1. Quick install apache with aptitude
4.1.1.1. command
4.1.1.2. rewrite module
4.1.1.3. PHP module
4.1.1.4. deflate module
4.1.1.5. ssl module
4.1.1.6. VirtualHost
4.1.1.7. ~userdir module - /public_html
4.1.1.8. PHP 5
4.1.2. CentOS 6
4.1.2.1. Install
4.1.2.2. Uninstall
4.1.2.3. Configure
4.1.2.3.1. Apache
4.1.2.3.2. MySQL
4.1.2.4. Starting
4.1.2.5. FAQ
4.1.2.5.1. compile php
4.1.3. Compile and then install Apache
4.1.3.1. Apache 安装与配置
4.1.3.2. 优化编译条件
4.1.3.3. PHP
4.1.3.4. Automation Installing
4.1.4. XAMPP
4.1.4.1. XAMPP for Linux
4.1.4.2. php5
4.2. Module
4.2.1. Output a list of modules compiled into the server.
4.2.2. Core
4.2.2.1. Listen
4.2.2.2. Filesystem and Webspace
4.2.2.2.1. Options
4.2.2.3. Etag
4.2.2.4. 隐藏 Apache 版本信息
4.2.3. mpm
4.2.3.1. event
4.2.3.2. worker
4.2.4. Apache Log
4.2.4.1. LogLevel
4.2.4.2. LogFormat
4.2.4.3. Compressed
4.2.4.4. rotatelogs - Piped logging program to rotate Apache logs
4.2.4.5. cronolog
4.2.4.6. 日志合并
4.2.4.7. 日志归档
4.2.4.8. logger
4.2.4.9. other
4.2.5. mod_access
4.2.6. VirtualHost
4.2.6.1. ServerName/ServerAlias
4.2.6.2. rotatelogs
4.2.7. Alias / AliasMatch
4.2.8. Redirect / RedirectMatch
4.2.9. Rewrite
4.2.9.1. R=301
4.2.9.2. Rewrite + JkMount
4.2.9.3. Apache redirect domain.com to www.domain.com
4.2.9.4. 正则匹配扩展名
4.2.10. Proxy
4.2.10.1. Reverse proxy
4.2.11. Deflate
4.2.11.1. 测试 gzip,deflate 模块
4.2.12. Expires
4.2.12.1. FilesMatch
4.2.12.2. Cache-Control
4.2.12.3. ETag
4.2.13. Cache
4.2.13.1. mod_disk_cache
4.2.13.2. mod_mem_cache
4.2.14. usertrack
4.2.15. Charset
4.2.16. Dir
4.2.17. Includes
4.2.18. Apache Status
4.2.19. Mod Perl
4.2.20. mod_pagespeed -
4.2.21. Module FAQ
4.2.22. mod_setenvif
4.2.23. PHP 程序安全问题 php_admin_value
4.2.24. mod_spdy
4.3. 设置Apache实现防盗连
4.4. .htaccess
4.5. Error Prompt
4.5.1. Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration
4.5.2. Invalid command 'AuthUserFile', perhaps misspelled or defined by a module not included in the server configuration
5. Lighttpd
5.1. 安装Lighttpd
5.1.1. quick install with aptitude
5.1.2. yum install
5.1.3. to compile and then install lighttpd
5.1.3.1. shell script
5.2. /etc/lighttpd/lighttpd.conf
5.2.1. max-worker / max-fds
5.2.2. accesslog.filename
5.2.3. ETags
5.2.4. server.tag
5.3. Module
5.3.1. simple_vhost
5.3.2. ssl
5.3.3. redirect
5.3.4. rewrite
5.3.4.1. Lighttpd Rewrite QSA
5.3.5. alias
5.3.6. auth
5.3.7. compress
5.3.8. expire
5.3.9. status
5.3.10. setenv
5.3.10.1. Automatic Decompression
5.3.11. fastcgi
5.3.11.1. enable fastcgi
5.3.11.1.1. spawn-fcgi
5.3.11.1.2. php-fpm
5.3.11.2. PHP
5.3.11.2.1. 编译安装PHP
5.3.11.2.2. apt-get install
5.3.11.3. Python
5.3.11.3.1. Django
5.3.11.3.2. Python Imaging Library
5.3.11.4. Perl
5.3.11.4.1. Installing lighttpd and FastCGI for Catalyst
5.3.11.5. Ruby
5.3.11.6. UNIX domain sockets
5.3.12. user-agent
5.3.13. spdy
5.4. 其他模块
5.4.1. mod_secdownload 防盗链
5.5. Example
5.5.1. s-maxage
6. Resin
6.1. 安装Resin
6.1.1. 直接使用
6.1.2. Debian/Ubuntu
6.1.3. 源码安装Resin
6.2. Compiling mod_caucho.so
6.3. resin.conf
6.3.1. Maximum number of threads
6.3.2. Configures the keepalive
6.3.3. ssl
6.4. virtual hosts
6.4.1. explicit host
6.4.2. regexp host
6.4.3. host-alias
6.4.4. configures a deployment directory for virtual hosts
6.4.5. Resources
6.5. FAQ
6.5.1. java.lang.OutOfMemoryError: PermGen space
7. Application Server
7.1. Zope
7.2. JBoss - JBoss Enterprise Middleware
8. Web Server Optimization
8.1. ulimit
8.1.1. open files
8.2. khttpd
8.3. php.ini
8.3.1. Resource Limits
8.3.2. File Uploads
8.3.3. Session Shared
8.3.4. PATHINFO
8.4. APC Cache (php-apc - APC (Alternative PHP Cache) module for PHP 5)
8.5. Zend Optimizer
8.6. eaccelerator
9. varnish - a state-of-the-art, high-performance HTTP accelerator
9.1. Varnish Install
9.2. varnish utility
9.2.1. status
9.2.2. varnishadm
9.2.2.1. 清除缓存
9.2.3. varnishtop
9.2.4. varnishhist
9.2.5. varnishsizes
9.3. log file
9.4. Varnish Configuration Language - VCL
9.4.1. unset / set
9.5. example
10. Apache Traffic Server
10.1. Install
10.2. Configure
11. Cherokee
11.1. Installing Cherokee
12. Jetty
13. Other Web Server
13.1. Python SimpleHTTPServer
14. web 服务器排名
14.1. HTTP状态码
15. HTTP2
15.1. Chrome

范例清单

1.1. Nginx SSL 双向认证,证书生成过程
1.2. Expires Examples
1.3. nginx expires
1.4. Example: valid_referers
1.5. Nginx + Tomcat
3.1. /etc/profile.d/java.sh
3.2. /etc/init.d/tomcat
3.3. Example /srv/apache-tomcat/conf
3.4. tomcat firewall
3.5. /etc/rc.d/init.d/www
4.1. index.php
4.2. autolamp.sh
4.3. R=301
4.4. mod_perl.conf
5.1. /etc/init.d/lighttpd
5.2. lighttpd compress
5.3. lighttpd expire
5.4. fastcgi.conf
5.5. Cache
6.1. explicit host in resin.conf
6.2. regexp host in resin.conf
6.3. host-alias in the resin.conf
6.4. host-alias in a /var/www/hosts/foo/host.xml
6.5. host-alias-regexp in the resin.conf
6.6. shared database in host
6.7. rewrite-dispatch
9.1. default.vcl