Initial commit

pull/4/head
Mashiro 2018-09-17 18:29:24 +08:00
parent 2ceabe42d7
commit a41d55be08
52 changed files with 20807 additions and 0 deletions

3
.gitignore vendored 100644
View File

@ -0,0 +1,3 @@
.log
logs/access.log
logs/error.log

Binary file not shown.

After

Width:  |  Height:  |  Size: 588 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

View File

@ -0,0 +1,165 @@
@echo off
rem 提供Windows下nginx的启动重启关闭功能
echo ==================begin========================
cls
::ngxin 所在的盘符
set NGINX_PATH=%~d0
::nginx 所在目录
set NGINX_DIR=%~dp0
::color 0a
TITLE Nginx 管理脚本 v1.0
CLS
echo.
echo. ***************************
echo. ***************************
echo. *** Nginx 管理脚本 v1.0 ***
echo. *** Mashiro ***
echo. *** https://2heng.xin ***
echo. ***************************
echo. ***************************
echo.
:MENU
echo. ***** nginx 进程list ******
::tasklist|findstr /i "nginx.exe"
tasklist /fi "imagename eq nginx.exe"
echo.
if ERRORLEVEL 1 (
echo nginx.exe不存在
) else (
echo nginx.exe存在
)
echo.
::*************************************************************************************************************
echo.
echo. [1] 启动Nginx
echo. [2] 关闭Nginx
echo. [3] 重启Nginx
echo. [4] 刷新控制台
echo. [5] 重新加载Nginx配置文件
echo. [6] 检查测试nginx配置文件
echo. [7] 查看nginx version
echo. [0] 退 出
echo.
echo.请输入选择的序号:
set /p ID=
IF "%id%"=="1" GOTO start
IF "%id%"=="2" GOTO stop
IF "%id%"=="3" GOTO restart
IF "%id%"=="4" GOTO MENU
IF "%id%"=="5" GOTO reloadConf
IF "%id%"=="6" GOTO checkConf
IF "%id%"=="7" GOTO showVersion
IF "%id%"=="0" EXIT
PAUSE
::*************************************************************************************************************
::启动
:start
call :startNginx
GOTO MENU
::停止
:stop
call :shutdownNginx
GOTO MENU
::重启
:restart
call :shutdownNginx
call :startNginx
GOTO MENU
::检查测试配置文件
:checkConf
call :checkConfNginx
GOTO MENU
::重新加载Nginx配置文件
:reloadConf
call :checkConfNginx
call :reloadConfNginx
GOTO MENU
::显示nginx版本
:showVersion
call :showVersionNginx
GOTO MENU
::*************************************************************************************
::底层
::*************************************************************************************
:shutdownNginx
echo.
echo.关闭Nginx......
taskkill /F /IM nginx.exe > nul
echo.OK,关闭所有nginx 进程
goto :eof
:startNginx
echo.
echo.启动Nginx......
IF NOT EXIST "%NGINX_DIR%nginx.exe" (
echo "%NGINX_DIR%nginx.exe"不存在
goto :eof
)
%NGINX_PATH%
cd "%NGINX_DIR%"
IF EXIST "%NGINX_DIR%nginx.exe" (
echo "start '' nginx.exe"
start "" nginx.exe
)
echo.OK
goto :eof
:checkConfNginx
echo.
echo.检查测试 nginx 配置文件......
IF NOT EXIST "%NGINX_DIR%nginx.exe" (
echo "%NGINX_DIR%nginx.exe"不存在
goto :eof
)
%NGINX_PATH%
cd "%NGINX_DIR%"
nginx -t -c conf/nginx.conf
goto :eof
::重新加载 nginx 配置文件
:reloadConfNginx
echo.
echo.重新加载 nginx 配置文件......
IF NOT EXIST "%NGINX_DIR%nginx.exe" (
echo "%NGINX_DIR%nginx.exe"不存在
goto :eof
)
%NGINX_PATH%
cd "%NGINX_DIR%"
nginx -s reload
goto :eof
::显示nginx版本
:showVersionNginx
echo.
%NGINX_PATH%
cd "%NGINX_DIR%"
nginx -V
goto :eof

View File

@ -0,0 +1,3 @@
logs 文件夹内为服务器日志文件。access.log 为工作日志里面可能留下你的访问记录error.log 为 Nginx 错误日志。
通常提供错误日志即可;分享工作日志的时候注意保护隐私。

View File

@ -0,0 +1,7 @@
<center>
<h1>使用说明及后续维护情况请访问<br><a href="https://2heng.xin/2017/09/19/pixiv/">https://2heng.xin/2017/09/19/pixiv/</a></h1>
<br><br><br>
<big>by Mashiro</big>
<hr>
<p><i>打包时间2018/9/17</i></p>
</center>

BIN
BouncyCastle.dll 100644

Binary file not shown.

View File

@ -1 +1,21 @@
# Pixiv-Nginx
<center>
[![GitHub release](https://img.shields.io/github/release/mashirozx/Pixiv-Nginx.svg?style=flat-square)](https://github.com/mashirozx/Pixiv-Nginx/releases/latest)
[![Github commits (since latest release)](https://img.shields.io/github/commits-since/mashirozx/Pixiv-Nginx/latest.svg?style=flat-square)](https://github.com/mashirozx/Pixiv-Nginx/commits/)
<center>
使用说明见 <https://2heng.xin/2017/09/19/pixiv/>
### 要饭
微信支付:
<img src="https://view.moezx.cc/images/2018/05/28/WeChanQR.png" width="200"/>
支付宝:
<img src="https://view.moezx.cc/images/2018/05/28/AliPayQR.jpg" width="200"/>
PayPal
<https://paypal.me/mashirozx>
### Lisence
This is a fork of [nginx/nginx](https://github.com/nginx/nginx), so you should always follow its [2-clause BSD-like license](http://nginx.org/LICENSE).

16
ca.cer 100644
View File

@ -0,0 +1,16 @@
-----BEGIN CERTIFICATE-----
MIICfzCCAegCCQCAFez22a+CnTANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMC
Q04xETAPBgNVBAgMCFNoYW5naGFpMREwDwYDVQQHDAhTaGFuZ2hhaTEUMBIGA1UE
CgwLTWFzaGlybyBMTEMxEDAOBgNVBAsMB01hc2hpcm8xJjAkBgNVBAMMHU1hc2hp
cm8gSW50ZXJuZXQgQXV0aG9yaXR5IENBMB4XDTE4MDkxNjA4MzQxNVoXDTI4MDkx
MzA4MzQxNVowgYMxCzAJBgNVBAYTAkNOMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8G
A1UEBwwIU2hhbmdoYWkxFDASBgNVBAoMC01hc2hpcm8gTExDMRAwDgYDVQQLDAdN
YXNoaXJvMSYwJAYDVQQDDB1NYXNoaXJvIEludGVybmV0IEF1dGhvcml0eSBDQTCB
nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAugoR9OzVDTN0lXToRH+kQ2qjV+UI
tXR6WVXwYyyqcihrhe5A9SQ21LJRoyZlSOVdg85QvhBJeLgOgtGVZZla1z6TjMDx
rfTIjHKRVj9/kyujkxtY0w2iZnz1pd31A+UJdQwnDMeyBZagRVQD/7xn1wV72bS8
vyhEh0Q/ZUZGxrcCAwEAATANBgkqhkiG9w0BAQUFAAOBgQAX+noK9G1vvNFB8ZXq
MNYf7qimQTjxTBGQLijrNCyiqOkw8YW1BgdnaV0Vc97L7nqRx1XGEAvPHiGEC/Xk
xu9Mj+gwTEFRXBauoPBFElnBuQaePYmCHB+eCODPLwkgkhh3/HUr0385bTvVwoqX
AsTNS/eeFFtZ88cLcdCBbupWiw==
-----END CERTIFICATE-----

16
conf/ca/ca.cer 100644
View File

@ -0,0 +1,16 @@
-----BEGIN CERTIFICATE-----
MIICfzCCAegCCQCAFez22a+CnTANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMC
Q04xETAPBgNVBAgMCFNoYW5naGFpMREwDwYDVQQHDAhTaGFuZ2hhaTEUMBIGA1UE
CgwLTWFzaGlybyBMTEMxEDAOBgNVBAsMB01hc2hpcm8xJjAkBgNVBAMMHU1hc2hp
cm8gSW50ZXJuZXQgQXV0aG9yaXR5IENBMB4XDTE4MDkxNjA4MzQxNVoXDTI4MDkx
MzA4MzQxNVowgYMxCzAJBgNVBAYTAkNOMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8G
A1UEBwwIU2hhbmdoYWkxFDASBgNVBAoMC01hc2hpcm8gTExDMRAwDgYDVQQLDAdN
YXNoaXJvMSYwJAYDVQQDDB1NYXNoaXJvIEludGVybmV0IEF1dGhvcml0eSBDQTCB
nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAugoR9OzVDTN0lXToRH+kQ2qjV+UI
tXR6WVXwYyyqcihrhe5A9SQ21LJRoyZlSOVdg85QvhBJeLgOgtGVZZla1z6TjMDx
rfTIjHKRVj9/kyujkxtY0w2iZnz1pd31A+UJdQwnDMeyBZagRVQD/7xn1wV72bS8
vyhEh0Q/ZUZGxrcCAwEAATANBgkqhkiG9w0BAQUFAAOBgQAX+noK9G1vvNFB8ZXq
MNYf7qimQTjxTBGQLijrNCyiqOkw8YW1BgdnaV0Vc97L7nqRx1XGEAvPHiGEC/Xk
xu9Mj+gwTEFRXBauoPBFElnBuQaePYmCHB+eCODPLwkgkhh3/HUr0385bTvVwoqX
AsTNS/eeFFtZ88cLcdCBbupWiw==
-----END CERTIFICATE-----

View File

@ -0,0 +1,71 @@
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 5 (0x5)
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=CN, ST=Shanghai, L=Shanghai, O=Mashiro LLC, OU=Mashiro, CN=Mashiro Internet Authority CA
Validity
Not Before: Sep 16 16:57:32 2018 GMT
Not After : Sep 13 16:57:32 2028 GMT
Subject: C=CN, ST=Shanghai, O=Mashiro LLC, OU=Mashiro, CN=*.pixiv.net
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:a9:84:77:44:2f:77:cf:5a:de:59:4c:ce:15:c1:
bc:db:6d:43:1e:6f:f2:2e:46:f5:a4:74:bc:f6:92:
60:77:b2:cd:79:bf:d7:65:2b:54:78:48:6d:ab:2f:
6b:f8:63:c1:69:a1:1d:b2:b5:78:e4:2b:b7:ad:62:
d6:14:aa:7a:24:97:72:d2:81:f7:e3:d7:b4:76:1f:
94:de:74:5c:b0:b1:6c:31:21:2f:c4:3e:58:41:3b:
ab:06:e5:8a:28:80:fd:c3:a1:b5:dc:db:c7:4f:62:
bd:cc:ff:ee:b5:e9:21:5f:9b:88:20:ab:c3:36:f9:
82:22:3c:88:6e:d9:69:cd:ad:c0:2b:5e:19:68:e7:
ff:2a:64:90:24:32:07:ab:2c:67:a9:ab:2d:75:ef:
85:26:df:37:67:c3:53:31:0e:9c:8c:58:aa:24:f3:
e2:5f:2b:1c:fc:72:45:34:94:9b:b4:69:cb:ef:a3:
6d:8f:f7:ab:4c:83:77:84:e8:ac:e6:b7:17:58:e8:
c2:47:ce:08:35:32:9a:45:79:15:e4:f4:07:92:ee:
79:64:cc:41:6b:5d:a4:4c:46:72:2f:5a:7a:66:38:
df:3d:58:8f:02:79:4b:ea:0f:8b:0c:33:cc:41:79:
0f:3c:16:91:0c:67:44:6d:42:7e:1c:cb:2f:d6:1f:
6b:fb
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
X509v3 Subject Alternative Name:
DNS:*.pixiv.net, DNS:pixiv.net, DNS:*.secure.pixiv.net, DNS:pximg.net, DNS:*.pximg.net, DNS:wikipedia.org, DNS:*.wikipedia.org, DNS:google.com, DNS:*.google.com, IP Address:127.0.0.1
X509v3 Subject Key Identifier:
A7:E1:07:03:F4:8A:62:A6:32:C3:98:CC:C1:3E:37:33:56:22:DA:21
Signature Algorithm: sha256WithRSAEncryption
8d:e9:35:fa:68:71:c0:12:f5:d1:4c:2a:91:29:96:e5:7c:26:
1c:05:66:29:31:42:c1:9f:fb:2f:6c:2f:47:20:1d:dd:d2:c4:
7f:4d:df:a6:0b:91:13:bc:38:28:87:aa:a5:f5:6b:88:fb:04:
92:ad:d2:3f:82:70:5e:de:e5:bd:74:f2:86:c0:22:61:61:30:
e1:02:02:1d:89:6d:97:38:cb:0b:32:bb:37:32:08:7f:5e:ab:
15:79:93:e6:8f:d0:40:78:5b:b0:a2:b0:d2:e5:04:01:65:74:
bf:57:42:ea:9c:5b:93:c6:96:26:34:bc:f0:d7:46:6a:ad:7c:
2f:92
-----BEGIN CERTIFICATE-----
MIIDnDCCAwWgAwIBAgIBBTANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCQ04x
ETAPBgNVBAgMCFNoYW5naGFpMREwDwYDVQQHDAhTaGFuZ2hhaTEUMBIGA1UECgwL
TWFzaGlybyBMTEMxEDAOBgNVBAsMB01hc2hpcm8xJjAkBgNVBAMMHU1hc2hpcm8g
SW50ZXJuZXQgQXV0aG9yaXR5IENBMB4XDTE4MDkxNjE2NTczMloXDTI4MDkxMzE2
NTczMlowXjELMAkGA1UEBhMCQ04xETAPBgNVBAgMCFNoYW5naGFpMRQwEgYDVQQK
DAtNYXNoaXJvIExMQzEQMA4GA1UECwwHTWFzaGlybzEUMBIGA1UEAwwLKi5waXhp
di5uZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCphHdEL3fPWt5Z
TM4VwbzbbUMeb/IuRvWkdLz2kmB3ss15v9dlK1R4SG2rL2v4Y8FpoR2ytXjkK7et
YtYUqnokl3LSgffj17R2H5TedFywsWwxIS/EPlhBO6sG5YoogP3DobXc28dPYr3M
/+616SFfm4ggq8M2+YIiPIhu2WnNrcArXhlo5/8qZJAkMgerLGepqy1174Um3zdn
w1MxDpyMWKok8+JfKxz8ckU0lJu0acvvo22P96tMg3eE6KzmtxdY6MJHzgg1MppF
eRXk9AeS7nlkzEFrXaRMRnIvWnpmON89WI8CeUvqD4sMM8xBeQ88FpEMZ0RtQn4c
yy/WH2v7AgMBAAGjgb8wgbwwCQYDVR0TBAIwADCBjwYDVR0RBIGHMIGEggsqLnBp
eGl2Lm5ldIIJcGl4aXYubmV0ghIqLnNlY3VyZS5waXhpdi5uZXSCCXB4aW1nLm5l
dIILKi5weGltZy5uZXSCDXdpa2lwZWRpYS5vcmeCDyoud2lraXBlZGlhLm9yZ4IK
Z29vZ2xlLmNvbYIMKi5nb29nbGUuY29thwR/AAABMB0GA1UdDgQWBBSn4QcD9Ipi
pjLDmMzBPjczViLaITANBgkqhkiG9w0BAQsFAAOBgQCN6TX6aHHAEvXRTCqRKZbl
fCYcBWYpMULBn/svbC9HIB3d0sR/Td+mC5ETvDgoh6ql9WuI+wSSrdI/gnBe3uW9
dPKGwCJhYTDhAgIdiW2XOMsLMrs3Mgh/XqsVeZPmj9BAeFuworDS5QQBZXS/V0Lq
nFuTxpYmNLzw10ZqrXwvkg==
-----END CERTIFICATE-----

View File

@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCphHdEL3fPWt5Z
TM4VwbzbbUMeb/IuRvWkdLz2kmB3ss15v9dlK1R4SG2rL2v4Y8FpoR2ytXjkK7et
YtYUqnokl3LSgffj17R2H5TedFywsWwxIS/EPlhBO6sG5YoogP3DobXc28dPYr3M
/+616SFfm4ggq8M2+YIiPIhu2WnNrcArXhlo5/8qZJAkMgerLGepqy1174Um3zdn
w1MxDpyMWKok8+JfKxz8ckU0lJu0acvvo22P96tMg3eE6KzmtxdY6MJHzgg1MppF
eRXk9AeS7nlkzEFrXaRMRnIvWnpmON89WI8CeUvqD4sMM8xBeQ88FpEMZ0RtQn4c
yy/WH2v7AgMBAAECggEAWSrltYcmhXrt5JlC+izLk7x4hsUp5e/LfHMvhp/egHgc
H0OrIHtXVmH61gX+zExky5RFU+CjM5pPZrPLmllGIINNka9t3npzYYMhQpaAvyzE
lV84igilUcL6JomNT9ryIPqp9//fakGtRu0E+skjle/w/gZ7jCpYqnue5HgWcGpu
cUTABq96kRzY8winNZcfbBw2uIdpKGDXMxWnepVbhNNzXpns0ivJ7+MrUSKLX1a2
nCPQkRjAZHYMgRIKfPbSwcyRcHHsO5CyCY71uiqFBy2aDtamD/r9QOFTEdvTMddf
aP1RU8eSb2mDDrWPySbkYTGuehcfXcroxBFkQnRn0QKBgQDbB6qyIF/bVVATZBpR
TBu1CQuiowEbvSm+XCA2vig4A5IJ6JnUaS+wc2BBM2RUBLYbHKb4lEGGmpnGGHCD
sxy64PhAvzWqbn9hvU3HwDwPZzUqWGHq9yaFbgD/LK/Vl57ow/oRV7a0u9hAJOPx
mR70uqvfr6HTMbCmjY/k4TfvAwKBgQDGIVpLo+Bjz62c8YJEiOqQjB1yFuqRP4OH
K6MmyMEc6H2619RyyrDbkMNVpwHNwChTUNcwAqFYvEqRGrvQ5dO8whYxEli/0cIR
jOgzbGLXst3nIbzm30MeknnoWVCrMiqXeCNtwnUifKS4WvBs0Bdn4KBZTiytNN6K
xhZJPgvhqQKBgDADKDnPuvN7agg2I0a65j/y8af/D1kjSClATJdza6GLttGROVdE
j32gbPMd7to0Bi8/QqKu7QYykY7JALD97EhS1FhtEbiAbE/ijVBCJWhC+XaE1UIK
V1lcWb+V7h1mFSF1BDYVAinwG2FENOta41xGJzLrbw+6jryTv30umXI9AoGBAL2k
JPJrjBbdLJchDwgcaTAr/O88Ag8+1N0npoUz+Kt72QRjG4U4fynaGS29qdtPRwng
QehBTEBMEa9sAEOGCDIPMACOSAZqdrAnyAWYg89j9EQMJexx3KPBnhAIlU8XuG68
3mRrkYSN+3g+CwyL7StPdQul6Nts1GnOCnzWd7bpAoGBANkO5h+oUhd4y8tCX3vX
mT98imjvCnvW1KTKa9YHL0OEH5aEPKDzUwHyqtUJCsw7YTk0+z/XtiVm9/V/1t76
Dllt7KaEI6MszXD8QgBDpkCp8N2zmTT5URKbV33odGXYJPcA908RiqDCBmw3zxjZ
cCSu7rDx8R2i8DFU9frXY81l
-----END PRIVATE KEY-----

17
conf/cert.pem 100644
View File

@ -0,0 +1,17 @@
-----BEGIN CERTIFICATE-----
MIICxDCCAaygAwIBAgIIVHb1I+71EegwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE
AwwEV25tcDAeFw0xODA5MTYxNTMxMDZaFw0yODA5MTYxNTMxMDZaMA8xDTALBgNV
BAMMBFdubXAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDF6c6zZZyP
zref4Nmd6N0aqIQLeJcwhpSZNiw0S44+oROrZ8aVfoRLkBbe2uGDwpjh9G9C+RaX
QukIuvQY0iPycM69oEk8xLfK2qLRn8gPjmmzLoqjkUDtvzGU9aYcNP5wkeOzQHFy
w5ZEjqv9ZxrhTSeZr6m6cRNA2nexUjSp2j8cRcecXMxgfFdN4T2VkXwo0PSm5cb7
tw3lSmOMaHEB156I7JP8zeacLiN6tmsqcq9bdl4BFzWNjMCYH+d3B78zhzRLiZjp
aqDQwc/LggkbVwFgSeYIFgWGhztFMxCgItMYJqdgShK/xK09A5PFebONbEGRuejw
88cPYCHkWFx3AgMBAAGjJDAiMCAGCWCGSAGG+EIBDQQTDBFHZW5lcmF0ZWQgYnkg
V25tcDANBgkqhkiG9w0BAQsFAAOCAQEAAD+Vl7W/kX+fD6bZp4BBRHe9eYE7XM9B
aft8KR6kxzGXdQqIT1dAfFeTd49XeLLMXeVl9idGHAinl64ZCrDyjEDEPsIAoYf2
nzgpTrv9qExghRXp/1jTRZ6HBHEXHHLlDBHCfw+pHw6R53W28RN7Em7vvu222DpT
0mRO1CSm+OCRuw1pPq5Z9SiNDI52bB6XIyq+QE7jNuQCWG8eRV66fVBdEr99wL2e
6ZTVfKKM3sfvmHNY45roRhqTRyibA9X7fnz4fBa8uBmbSCBAfebI6HvzStInqJOQ
DPdQyX9Ky87CRCyCRZFQJFe1eUfaMMQMN/pFNYiS518NFtIzSMHZZg==
-----END CERTIFICATE-----

26
conf/fastcgi.conf 100644
View File

@ -0,0 +1,26 @@
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;

View File

@ -0,0 +1,25 @@
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;

27
conf/key.pem 100644
View File

@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAxenOs2Wcj863n+DZnejdGqiEC3iXMIaUmTYsNEuOPqETq2fG
lX6ES5AW3trhg8KY4fRvQvkWl0LpCLr0GNIj8nDOvaBJPMS3ytqi0Z/ID45psy6K
o5FA7b8xlPWmHDT+cJHjs0BxcsOWRI6r/Wca4U0nma+punETQNp3sVI0qdo/HEXH
nFzMYHxXTeE9lZF8KND0puXG+7cN5UpjjGhxAdeeiOyT/M3mnC4jerZrKnKvW3Ze
ARc1jYzAmB/ndwe/M4c0S4mY6Wqg0MHPy4IJG1cBYEnmCBYFhoc7RTMQoCLTGCan
YEoSv8StPQOTxXmzjWxBkbno8PPHD2Ah5FhcdwIDAQABAoIBAC5fI3bGMqJBSaX0
vZhxtMinvlSfuzD7/3pMhpv0Lg5/mEe7h3yEicPYrXsm5tsD7+VVa/JRwZjMbSSG
BWaBajnGc7JbiX1rDDND+g1Ktknq0NpSZ9p+UKvD9f6Udgi64/kFPchEq7A7ooxK
r4Kus04h0UsBrS+JifzSk2PhQoSfPDQ+RtzUy9qTh8dTj4CUf3CYBTMPDPmbvSRx
qwsNOqrcMf9Wn/g2jk6FFtnjsN+lE3x2Zy+kuYDNfGNnUDg9XghalUXFOxnFqFcO
UxttpbT3qoMOtk4agIh8HJ9697CgN7OfLWZ+dxpJYbOLiLLr6IotiEWI0bStTC4t
CXRaZxUCgYEA7V10bfad9zpvilHfa+Q73z5eBfyfTAJYMvo/FhjKPgSqsBtkIIYz
3GvZy4JqZbWYNvmvBCzQGehtRsZpzkKviUWDxYEbHDfL7lNh7DHrcjmrlUFWhT3I
ZYgIPQASwpMPwRz6Xsc2T2YgBDRAX25PSGAY6tBAymGTarLltxOBHO0CgYEA1XN0
UBWiR40KWjhHBowqSqYFb95LcqtE4pE8158tGqOAZDp9s3n16phNpvOlF9CH9ebC
3SAPTk0ShNUkbcDb+mI0L8ZUkKIJOgA6ESJS9X++OEkK6Yqt8U0u8WgI79atQGoB
6Zee5NbQP43223CwJE4K0YhDX+d+bAZMoGzMFnMCgYB3fQciX/ZvQSRrLgHZj0Aw
hnXQb7ZFDh0WNHFTj1En3TOLiY5i7QvoVwaBcvpajwq8Cf73jBOKJz3zVehnY5x3
7t2BrBdYoiHvrFvsCckrbCqa7RQ/6LUbn1n+Uy4ecueIYC0NTx1g5NkTJLaPE7mn
hnCkrAchmfMa0EnhWlkxlQKBgCLKcLjk7dBvwrI13g3JJtOH//bd6rpEBDRRq/MR
NM7Uu4aaqgZo6JZWQMHnkI8zJBYGiNh180i180DHZOqmtrQ28X6f+wSgBJT5mH1W
dOMi8SRHc4nhWryr8ezTIjHFcfO/05P5bKKsCMFzKDtYQL2KIuVIKoMlPkvpMvAr
C5DVAoGBAIQ/B0/pr9HDr23Vdnwd5har7rEomat+1LXAdtcJAGF3yIxMNSxqn7Ep
KNGMfj5x6BrfXtujmCKbqcaXV0mpDIXpNyqJViCa6t6Z3Hjk/c4vBBods5ssHFeL
W+62bkHmws1OFb61d/ko+GojOchLxeoLIQ41vIdzQQzv+Th8w8VM
-----END RSA PRIVATE KEY-----

109
conf/koi-utf 100644
View File

@ -0,0 +1,109 @@
# This map is not a full koi8-r <> utf8 map: it does not contain
# box-drawing and some other characters. Besides this map contains
# several koi8-u and Byelorussian letters which are not in koi8-r.
# If you need a full and standard map, use contrib/unicode2nginx/koi-utf
# map instead.
charset_map koi8-r utf-8 {
80 E282AC ; # euro
95 E280A2 ; # bullet
9A C2A0 ; # &nbsp;
9E C2B7 ; # &middot;
A3 D191 ; # small yo
A4 D194 ; # small Ukrainian ye
A6 D196 ; # small Ukrainian i
A7 D197 ; # small Ukrainian yi
AD D291 ; # small Ukrainian soft g
AE D19E ; # small Byelorussian short u
B0 C2B0 ; # &deg;
B3 D081 ; # capital YO
B4 D084 ; # capital Ukrainian YE
B6 D086 ; # capital Ukrainian I
B7 D087 ; # capital Ukrainian YI
B9 E28496 ; # numero sign
BD D290 ; # capital Ukrainian soft G
BE D18E ; # capital Byelorussian short U
BF C2A9 ; # (C)
C0 D18E ; # small yu
C1 D0B0 ; # small a
C2 D0B1 ; # small b
C3 D186 ; # small ts
C4 D0B4 ; # small d
C5 D0B5 ; # small ye
C6 D184 ; # small f
C7 D0B3 ; # small g
C8 D185 ; # small kh
C9 D0B8 ; # small i
CA D0B9 ; # small j
CB D0BA ; # small k
CC D0BB ; # small l
CD D0BC ; # small m
CE D0BD ; # small n
CF D0BE ; # small o
D0 D0BF ; # small p
D1 D18F ; # small ya
D2 D180 ; # small r
D3 D181 ; # small s
D4 D182 ; # small t
D5 D183 ; # small u
D6 D0B6 ; # small zh
D7 D0B2 ; # small v
D8 D18C ; # small soft sign
D9 D18B ; # small y
DA D0B7 ; # small z
DB D188 ; # small sh
DC D18D ; # small e
DD D189 ; # small shch
DE D187 ; # small ch
DF D18A ; # small hard sign
E0 D0AE ; # capital YU
E1 D090 ; # capital A
E2 D091 ; # capital B
E3 D0A6 ; # capital TS
E4 D094 ; # capital D
E5 D095 ; # capital YE
E6 D0A4 ; # capital F
E7 D093 ; # capital G
E8 D0A5 ; # capital KH
E9 D098 ; # capital I
EA D099 ; # capital J
EB D09A ; # capital K
EC D09B ; # capital L
ED D09C ; # capital M
EE D09D ; # capital N
EF D09E ; # capital O
F0 D09F ; # capital P
F1 D0AF ; # capital YA
F2 D0A0 ; # capital R
F3 D0A1 ; # capital S
F4 D0A2 ; # capital T
F5 D0A3 ; # capital U
F6 D096 ; # capital ZH
F7 D092 ; # capital V
F8 D0AC ; # capital soft sign
F9 D0AB ; # capital Y
FA D097 ; # capital Z
FB D0A8 ; # capital SH
FC D0AD ; # capital E
FD D0A9 ; # capital SHCH
FE D0A7 ; # capital CH
FF D0AA ; # capital hard sign
}

103
conf/koi-win 100644
View File

@ -0,0 +1,103 @@
charset_map koi8-r windows-1251 {
80 88 ; # euro
95 95 ; # bullet
9A A0 ; # &nbsp;
9E B7 ; # &middot;
A3 B8 ; # small yo
A4 BA ; # small Ukrainian ye
A6 B3 ; # small Ukrainian i
A7 BF ; # small Ukrainian yi
AD B4 ; # small Ukrainian soft g
AE A2 ; # small Byelorussian short u
B0 B0 ; # &deg;
B3 A8 ; # capital YO
B4 AA ; # capital Ukrainian YE
B6 B2 ; # capital Ukrainian I
B7 AF ; # capital Ukrainian YI
B9 B9 ; # numero sign
BD A5 ; # capital Ukrainian soft G
BE A1 ; # capital Byelorussian short U
BF A9 ; # (C)
C0 FE ; # small yu
C1 E0 ; # small a
C2 E1 ; # small b
C3 F6 ; # small ts
C4 E4 ; # small d
C5 E5 ; # small ye
C6 F4 ; # small f
C7 E3 ; # small g
C8 F5 ; # small kh
C9 E8 ; # small i
CA E9 ; # small j
CB EA ; # small k
CC EB ; # small l
CD EC ; # small m
CE ED ; # small n
CF EE ; # small o
D0 EF ; # small p
D1 FF ; # small ya
D2 F0 ; # small r
D3 F1 ; # small s
D4 F2 ; # small t
D5 F3 ; # small u
D6 E6 ; # small zh
D7 E2 ; # small v
D8 FC ; # small soft sign
D9 FB ; # small y
DA E7 ; # small z
DB F8 ; # small sh
DC FD ; # small e
DD F9 ; # small shch
DE F7 ; # small ch
DF FA ; # small hard sign
E0 DE ; # capital YU
E1 C0 ; # capital A
E2 C1 ; # capital B
E3 D6 ; # capital TS
E4 C4 ; # capital D
E5 C5 ; # capital YE
E6 D4 ; # capital F
E7 C3 ; # capital G
E8 D5 ; # capital KH
E9 C8 ; # capital I
EA C9 ; # capital J
EB CA ; # capital K
EC CB ; # capital L
ED CC ; # capital M
EE CD ; # capital N
EF CE ; # capital O
F0 CF ; # capital P
F1 DF ; # capital YA
F2 D0 ; # capital R
F3 D1 ; # capital S
F4 D2 ; # capital T
F5 D3 ; # capital U
F6 C6 ; # capital ZH
F7 C2 ; # capital V
F8 DC ; # capital soft sign
F9 DB ; # capital Y
FA C7 ; # capital Z
FB D8 ; # capital SH
FC DD ; # capital E
FD D9 ; # capital SHCH
FE D7 ; # capital CH
FF DA ; # capital hard sign
}

95
conf/mime.types 100644
View File

@ -0,0 +1,95 @@
types {
text/html html htm shtml;
text/css css;
text/xml xml;
image/gif gif;
image/jpeg jpeg jpg;
application/javascript js;
application/atom+xml atom;
application/rss+xml rss;
text/mathml mml;
text/plain txt;
text/vnd.sun.j2me.app-descriptor jad;
text/vnd.wap.wml wml;
text/x-component htc;
image/png png;
image/svg+xml svg svgz;
image/tiff tif tiff;
image/vnd.wap.wbmp wbmp;
image/webp webp;
image/x-icon ico;
image/x-jng jng;
image/x-ms-bmp bmp;
application/font-woff woff;
application/java-archive jar war ear;
application/json json;
application/mac-binhex40 hqx;
application/msword doc;
application/pdf pdf;
application/postscript ps eps ai;
application/rtf rtf;
application/vnd.apple.mpegurl m3u8;
application/vnd.google-earth.kml+xml kml;
application/vnd.google-earth.kmz kmz;
application/vnd.ms-excel xls;
application/vnd.ms-fontobject eot;
application/vnd.ms-powerpoint ppt;
application/vnd.oasis.opendocument.graphics odg;
application/vnd.oasis.opendocument.presentation odp;
application/vnd.oasis.opendocument.spreadsheet ods;
application/vnd.oasis.opendocument.text odt;
application/vnd.openxmlformats-officedocument.presentationml.presentation
pptx;
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
xlsx;
application/vnd.openxmlformats-officedocument.wordprocessingml.document
docx;
application/vnd.wap.wmlc wmlc;
application/x-7z-compressed 7z;
application/x-cocoa cco;
application/x-java-archive-diff jardiff;
application/x-java-jnlp-file jnlp;
application/x-makeself run;
application/x-perl pl pm;
application/x-pilot prc pdb;
application/x-rar-compressed rar;
application/x-redhat-package-manager rpm;
application/x-sea sea;
application/x-shockwave-flash swf;
application/x-stuffit sit;
application/x-tcl tcl tk;
application/x-x509-ca-cert der pem crt;
application/x-xpinstall xpi;
application/xhtml+xml xhtml;
application/xspf+xml xspf;
application/zip zip;
application/octet-stream bin exe dll;
application/octet-stream deb;
application/octet-stream dmg;
application/octet-stream iso img;
application/octet-stream msi msp msm;
audio/midi mid midi kar;
audio/mpeg mp3;
audio/ogg ogg;
audio/x-m4a m4a;
audio/x-realaudio ra;
video/3gpp 3gpp 3gp;
video/mp2t ts;
video/mp4 mp4;
video/mpeg mpeg mpg;
video/quicktime mov;
video/webm webm;
video/x-flv flv;
video/x-m4v m4v;
video/x-mng mng;
video/x-ms-asf asx asf;
video/x-ms-wmv wmv;
video/x-msvideo avi;
}

233
conf/nginx.conf 100644
View File

@ -0,0 +1,233 @@
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
server_names_hash_max_size 512;
server_names_hash_bucket_size 1024;
#gzip on;
upstream www-pixiv-net {
server 210.129.120.46:443;
server 210.129.120.52:443;
server 210.129.120.50:443;
}
upstream sketch-pixiv-net {
server 210.140.174.37:443;
server 210.140.170.179:443;
server 210.140.175.130:443;
}
upstream imgaz-pixiv-net {
server 210.140.131.145:443;
server 210.140.131.144:443;
server 210.140.131.147:443;
server 210.140.131.153:443;
}
upstream i-pximg-net {
server 210.140.92.140:443;
server 210.140.92.137:443;
server 210.140.92.139:443;
server 210.140.92.142:443;
server 210.140.92.134:443;
server 210.140.92.141:443;
server 210.140.92.143:443;
server 210.140.92.135:443;
server 210.140.92.136:443;
}
server {
#listen 80;
listen 443 ssl;
server_name pixiv.net;
server_name www.pixiv.net;
server_name ssl.pixiv.net;
server_name accounts.pixiv.net;
server_name touch.pixiv.net;
server_name oauth.secure.pixiv.net;
ssl on;
ssl_certificate ca/pixiv.net.crt;
ssl_certificate_key ca/pixiv.net.key;
client_max_body_size 50M;
location / {
proxy_pass https://www-pixiv-net;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header Accept-Encoding '';
proxy_buffering off;
}
}
server {
listen 443 ssl;
server_name i.pximg.net;
ssl on;
ssl_certificate ca/pixiv.net.crt;
ssl_certificate_key ca/pixiv.net.key;
location / {
proxy_pass https://i-pximg-net;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header Accept-Encoding '';
proxy_buffering off;
}
}
server {
listen 443 ssl;
server_name sketch.pixiv.net;
ssl on;
ssl_certificate ca/pixiv.net.crt;
ssl_certificate_key ca/pixiv.net.key;
location / {
proxy_pass https://sketch-pixiv-net;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header Accept-Encoding '';
proxy_buffering off;
}
# Proxying WebSockets
location /ws/ {
proxy_pass https://sketch-pixiv-net;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}
server {
listen 443 ssl;
server_name factory.pixiv.net;
ssl on;
ssl_certificate ca/pixiv.net.crt;
ssl_certificate_key ca/pixiv.net.key;
location / {
proxy_pass https://210.140.131.180/;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header Accept-Encoding '';
proxy_buffering off;
}
}
server {
listen 443 ssl;
server_name dic.pixiv.net;
server_name en-dic.pixiv.net;
server_name sensei.pixiv.net;
server_name fanbox.pixiv.net;
server_name payment.pixiv.net.pixiv.net;
ssl on;
ssl_certificate ca/pixiv.net.crt;
ssl_certificate_key ca/pixiv.net.key;
location / {
proxy_pass https://210.129.120.50/;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header Accept-Encoding '';
proxy_buffering off;
}
}
server {
listen 443 ssl;
server_name imgaz.pixiv.net;
server_name comic.pixiv.net;
server_name novel.pixiv.net;
ssl on;
ssl_certificate ca/pixiv.net.crt;
ssl_certificate_key ca/pixiv.net.key;
location / {
proxy_pass https://imgaz-pixiv-net;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header Accept-Encoding '';
proxy_buffering off;
}
}
server {
listen 443 ssl;
server_name zh.wikipedia.org;
server_name zh-yue.wikipedia.org;
server_name wuu.wikipedia.org;
server_name ug.wikipedia.org;
server_name ja.wikipedia.org;
server_name zh.wikinews.org;
server_name zh.m.wikipedia.org;
server_name ug.m.wikipedia.org;
server_name zh.m.wikinews.org;
ssl on;
ssl_certificate ca/pixiv.net.crt;
ssl_certificate_key ca/pixiv.net.key;
location / {
proxy_pass https://103.102.166.224/;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header Accept-Encoding '';
proxy_buffering off;
}
}
}

17
conf/scgi_params 100644
View File

@ -0,0 +1,17 @@
scgi_param REQUEST_METHOD $request_method;
scgi_param REQUEST_URI $request_uri;
scgi_param QUERY_STRING $query_string;
scgi_param CONTENT_TYPE $content_type;
scgi_param DOCUMENT_URI $document_uri;
scgi_param DOCUMENT_ROOT $document_root;
scgi_param SCGI 1;
scgi_param SERVER_PROTOCOL $server_protocol;
scgi_param REQUEST_SCHEME $scheme;
scgi_param HTTPS $https if_not_empty;
scgi_param REMOTE_ADDR $remote_addr;
scgi_param REMOTE_PORT $remote_port;
scgi_param SERVER_PORT $server_port;
scgi_param SERVER_NAME $server_name;

17
conf/uwsgi_params 100644
View File

@ -0,0 +1,17 @@
uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;
uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param REQUEST_SCHEME $scheme;
uwsgi_param HTTPS $https if_not_empty;
uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;

126
conf/win-utf 100644
View File

@ -0,0 +1,126 @@
# This map is not a full windows-1251 <> utf8 map: it does not
# contain Serbian and Macedonian letters. If you need a full map,
# use contrib/unicode2nginx/win-utf map instead.
charset_map windows-1251 utf-8 {
82 E2809A ; # single low-9 quotation mark
84 E2809E ; # double low-9 quotation mark
85 E280A6 ; # ellipsis
86 E280A0 ; # dagger
87 E280A1 ; # double dagger
88 E282AC ; # euro
89 E280B0 ; # per mille
91 E28098 ; # left single quotation mark
92 E28099 ; # right single quotation mark
93 E2809C ; # left double quotation mark
94 E2809D ; # right double quotation mark
95 E280A2 ; # bullet
96 E28093 ; # en dash
97 E28094 ; # em dash
99 E284A2 ; # trade mark sign
A0 C2A0 ; # &nbsp;
A1 D18E ; # capital Byelorussian short U
A2 D19E ; # small Byelorussian short u
A4 C2A4 ; # currency sign
A5 D290 ; # capital Ukrainian soft G
A6 C2A6 ; # borken bar
A7 C2A7 ; # section sign
A8 D081 ; # capital YO
A9 C2A9 ; # (C)
AA D084 ; # capital Ukrainian YE
AB C2AB ; # left-pointing double angle quotation mark
AC C2AC ; # not sign
AD C2AD ; # soft hypen
AE C2AE ; # (R)
AF D087 ; # capital Ukrainian YI
B0 C2B0 ; # &deg;
B1 C2B1 ; # plus-minus sign
B2 D086 ; # capital Ukrainian I
B3 D196 ; # small Ukrainian i
B4 D291 ; # small Ukrainian soft g
B5 C2B5 ; # micro sign
B6 C2B6 ; # pilcrow sign
B7 C2B7 ; # &middot;
B8 D191 ; # small yo
B9 E28496 ; # numero sign
BA D194 ; # small Ukrainian ye
BB C2BB ; # right-pointing double angle quotation mark
BF D197 ; # small Ukrainian yi
C0 D090 ; # capital A
C1 D091 ; # capital B
C2 D092 ; # capital V
C3 D093 ; # capital G
C4 D094 ; # capital D
C5 D095 ; # capital YE
C6 D096 ; # capital ZH
C7 D097 ; # capital Z
C8 D098 ; # capital I
C9 D099 ; # capital J
CA D09A ; # capital K
CB D09B ; # capital L
CC D09C ; # capital M
CD D09D ; # capital N
CE D09E ; # capital O
CF D09F ; # capital P
D0 D0A0 ; # capital R
D1 D0A1 ; # capital S
D2 D0A2 ; # capital T
D3 D0A3 ; # capital U
D4 D0A4 ; # capital F
D5 D0A5 ; # capital KH
D6 D0A6 ; # capital TS
D7 D0A7 ; # capital CH
D8 D0A8 ; # capital SH
D9 D0A9 ; # capital SHCH
DA D0AA ; # capital hard sign
DB D0AB ; # capital Y
DC D0AC ; # capital soft sign
DD D0AD ; # capital E
DE D0AE ; # capital YU
DF D0AF ; # capital YA
E0 D0B0 ; # small a
E1 D0B1 ; # small b
E2 D0B2 ; # small v
E3 D0B3 ; # small g
E4 D0B4 ; # small d
E5 D0B5 ; # small ye
E6 D0B6 ; # small zh
E7 D0B7 ; # small z
E8 D0B8 ; # small i
E9 D0B9 ; # small j
EA D0BA ; # small k
EB D0BB ; # small l
EC D0BC ; # small m
ED D0BD ; # small n
EE D0BE ; # small o
EF D0BF ; # small p
F0 D180 ; # small r
F1 D181 ; # small s
F2 D182 ; # small t
F3 D183 ; # small u
F4 D184 ; # small f
F5 D185 ; # small kh
F6 D186 ; # small ts
F7 D187 ; # small ch
F8 D188 ; # small sh
F9 D189 ; # small shch
FA D18A ; # small hard sign
FB D18B ; # small y
FC D18C ; # small soft sign
FD D18D ; # small e
FE D18E ; # small yu
FF D18F ; # small ya
}

21
contrib/README 100644
View File

@ -0,0 +1,21 @@
geo2nginx.pl by Andrei Nigmatulin
The perl script to convert CSV geoip database ( free download
at http://www.maxmind.com/app/geoip_country ) to format, suitable
for use by the ngx_http_geo_module.
unicode2nginx by Maxim Dounin
The perl script to convert unicode mappings ( available
at http://www.unicode.org/Public/MAPPINGS/ ) to the nginx
configuration file format.
Two generated full maps for windows-1251 and koi8-r.
vim by Evan Miller
Syntax highlighting of nginx configuration for vim, to be
placed into ~/.vim/.

View File

@ -0,0 +1,58 @@
#!/usr/bin/perl -w
# (c) Andrei Nigmatulin, 2005
#
# this script provided "as is", without any warranties. use it at your own risk.
#
# special thanx to Andrew Sitnikov for perl port
#
# this script converts CSV geoip database (free download at http://www.maxmind.com/app/geoip_country)
# to format, suitable for use with nginx_http_geo module (http://sysoev.ru/nginx)
#
# for example, line with ip range
#
# "62.16.68.0","62.16.127.255","1041253376","1041268735","RU","Russian Federation"
#
# will be converted to four subnetworks:
#
# 62.16.68.0/22 RU;
# 62.16.72.0/21 RU;
# 62.16.80.0/20 RU;
# 62.16.96.0/19 RU;
use warnings;
use strict;
while( <STDIN> ){
if (/"[^"]+","[^"]+","([^"]+)","([^"]+)","([^"]+)"/){
print_subnets($1, $2, $3);
}
}
sub print_subnets {
my ($a1, $a2, $c) = @_;
my $l;
while ($a1 <= $a2) {
for ($l = 0; ($a1 & (1 << $l)) == 0 && ($a1 + ((1 << ($l + 1)) - 1)) <= $a2; $l++){};
print long2ip($a1) . "/" . (32 - $l) . " " . $c . ";\n";
$a1 += (1 << $l);
}
}
sub long2ip {
my $ip = shift;
my $str = 0;
$str = ($ip & 255);
$ip >>= 8;
$str = ($ip & 255).".$str";
$ip >>= 8;
$str = ($ip & 255).".$str";
$ip >>= 8;
$str = ($ip & 255).".$str";
}

View File

@ -0,0 +1,131 @@
charset_map koi8-r utf-8 {
80 E29480 ; # BOX DRAWINGS LIGHT HORIZONTAL
81 E29482 ; # BOX DRAWINGS LIGHT VERTICAL
82 E2948C ; # BOX DRAWINGS LIGHT DOWN AND RIGHT
83 E29490 ; # BOX DRAWINGS LIGHT DOWN AND LEFT
84 E29494 ; # BOX DRAWINGS LIGHT UP AND RIGHT
85 E29498 ; # BOX DRAWINGS LIGHT UP AND LEFT
86 E2949C ; # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
87 E294A4 ; # BOX DRAWINGS LIGHT VERTICAL AND LEFT
88 E294AC ; # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
89 E294B4 ; # BOX DRAWINGS LIGHT UP AND HORIZONTAL
8A E294BC ; # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
8B E29680 ; # UPPER HALF BLOCK
8C E29684 ; # LOWER HALF BLOCK
8D E29688 ; # FULL BLOCK
8E E2968C ; # LEFT HALF BLOCK
8F E29690 ; # RIGHT HALF BLOCK
90 E29691 ; # LIGHT SHADE
91 E29692 ; # MEDIUM SHADE
92 E29693 ; # DARK SHADE
93 E28CA0 ; # TOP HALF INTEGRAL
94 E296A0 ; # BLACK SQUARE
95 E28899 ; # BULLET OPERATOR
96 E2889A ; # SQUARE ROOT
97 E28988 ; # ALMOST EQUAL TO
98 E289A4 ; # LESS-THAN OR EQUAL TO
99 E289A5 ; # GREATER-THAN OR EQUAL TO
9A C2A0 ; # NO-BREAK SPACE
9B E28CA1 ; # BOTTOM HALF INTEGRAL
9C C2B0 ; # DEGREE SIGN
9D C2B2 ; # SUPERSCRIPT TWO
9E C2B7 ; # MIDDLE DOT
9F C3B7 ; # DIVISION SIGN
A0 E29590 ; # BOX DRAWINGS DOUBLE HORIZONTAL
A1 E29591 ; # BOX DRAWINGS DOUBLE VERTICAL
A2 E29592 ; # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
A3 D191 ; # CYRILLIC SMALL LETTER IO
A4 E29593 ; # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
A5 E29594 ; # BOX DRAWINGS DOUBLE DOWN AND RIGHT
A6 E29595 ; # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
A7 E29596 ; # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
A8 E29597 ; # BOX DRAWINGS DOUBLE DOWN AND LEFT
A9 E29598 ; # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
AA E29599 ; # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
AB E2959A ; # BOX DRAWINGS DOUBLE UP AND RIGHT
AC E2959B ; # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
AD E2959C ; # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
AE E2959D ; # BOX DRAWINGS DOUBLE UP AND LEFT
AF E2959E ; # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
B0 E2959F ; # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
B1 E295A0 ; # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
B2 E295A1 ; # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
B3 D081 ; # CYRILLIC CAPITAL LETTER IO
B4 E295A2 ; # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
B5 E295A3 ; # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
B6 E295A4 ; # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
B7 E295A5 ; # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
B8 E295A6 ; # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
B9 E295A7 ; # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
BA E295A8 ; # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
BB E295A9 ; # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
BC E295AA ; # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
BD E295AB ; # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
BE E295AC ; # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
BF C2A9 ; # COPYRIGHT SIGN
C0 D18E ; # CYRILLIC SMALL LETTER YU
C1 D0B0 ; # CYRILLIC SMALL LETTER A
C2 D0B1 ; # CYRILLIC SMALL LETTER BE
C3 D186 ; # CYRILLIC SMALL LETTER TSE
C4 D0B4 ; # CYRILLIC SMALL LETTER DE
C5 D0B5 ; # CYRILLIC SMALL LETTER IE
C6 D184 ; # CYRILLIC SMALL LETTER EF
C7 D0B3 ; # CYRILLIC SMALL LETTER GHE
C8 D185 ; # CYRILLIC SMALL LETTER HA
C9 D0B8 ; # CYRILLIC SMALL LETTER I
CA D0B9 ; # CYRILLIC SMALL LETTER SHORT I
CB D0BA ; # CYRILLIC SMALL LETTER KA
CC D0BB ; # CYRILLIC SMALL LETTER EL
CD D0BC ; # CYRILLIC SMALL LETTER EM
CE D0BD ; # CYRILLIC SMALL LETTER EN
CF D0BE ; # CYRILLIC SMALL LETTER O
D0 D0BF ; # CYRILLIC SMALL LETTER PE
D1 D18F ; # CYRILLIC SMALL LETTER YA
D2 D180 ; # CYRILLIC SMALL LETTER ER
D3 D181 ; # CYRILLIC SMALL LETTER ES
D4 D182 ; # CYRILLIC SMALL LETTER TE
D5 D183 ; # CYRILLIC SMALL LETTER U
D6 D0B6 ; # CYRILLIC SMALL LETTER ZHE
D7 D0B2 ; # CYRILLIC SMALL LETTER VE
D8 D18C ; # CYRILLIC SMALL LETTER SOFT SIGN
D9 D18B ; # CYRILLIC SMALL LETTER YERU
DA D0B7 ; # CYRILLIC SMALL LETTER ZE
DB D188 ; # CYRILLIC SMALL LETTER SHA
DC D18D ; # CYRILLIC SMALL LETTER E
DD D189 ; # CYRILLIC SMALL LETTER SHCHA
DE D187 ; # CYRILLIC SMALL LETTER CHE
DF D18A ; # CYRILLIC SMALL LETTER HARD SIGN
E0 D0AE ; # CYRILLIC CAPITAL LETTER YU
E1 D090 ; # CYRILLIC CAPITAL LETTER A
E2 D091 ; # CYRILLIC CAPITAL LETTER BE
E3 D0A6 ; # CYRILLIC CAPITAL LETTER TSE
E4 D094 ; # CYRILLIC CAPITAL LETTER DE
E5 D095 ; # CYRILLIC CAPITAL LETTER IE
E6 D0A4 ; # CYRILLIC CAPITAL LETTER EF
E7 D093 ; # CYRILLIC CAPITAL LETTER GHE
E8 D0A5 ; # CYRILLIC CAPITAL LETTER HA
E9 D098 ; # CYRILLIC CAPITAL LETTER I
EA D099 ; # CYRILLIC CAPITAL LETTER SHORT I
EB D09A ; # CYRILLIC CAPITAL LETTER KA
EC D09B ; # CYRILLIC CAPITAL LETTER EL
ED D09C ; # CYRILLIC CAPITAL LETTER EM
EE D09D ; # CYRILLIC CAPITAL LETTER EN
EF D09E ; # CYRILLIC CAPITAL LETTER O
F0 D09F ; # CYRILLIC CAPITAL LETTER PE
F1 D0AF ; # CYRILLIC CAPITAL LETTER YA
F2 D0A0 ; # CYRILLIC CAPITAL LETTER ER
F3 D0A1 ; # CYRILLIC CAPITAL LETTER ES
F4 D0A2 ; # CYRILLIC CAPITAL LETTER TE
F5 D0A3 ; # CYRILLIC CAPITAL LETTER U
F6 D096 ; # CYRILLIC CAPITAL LETTER ZHE
F7 D092 ; # CYRILLIC CAPITAL LETTER VE
F8 D0AC ; # CYRILLIC CAPITAL LETTER SOFT SIGN
F9 D0AB ; # CYRILLIC CAPITAL LETTER YERU
FA D097 ; # CYRILLIC CAPITAL LETTER ZE
FB D0A8 ; # CYRILLIC CAPITAL LETTER SHA
FC D0AD ; # CYRILLIC CAPITAL LETTER E
FD D0A9 ; # CYRILLIC CAPITAL LETTER SHCHA
FE D0A7 ; # CYRILLIC CAPITAL LETTER CHE
FF D0AA ; # CYRILLIC CAPITAL LETTER HARD SIGN
}

View File

@ -0,0 +1,48 @@
#!/usr/bin/perl -w
# Convert unicode mappings to nginx configuration file format.
# You may find useful mappings in various places, including
# unicode.org official site:
#
# http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1251.TXT
# http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-R.TXT
# Needs perl 5.6 or later.
# Written by Maxim Dounin, mdounin@mdounin.ru
###############################################################################
require 5.006;
while (<>) {
# Skip comments and empty lines
next if /^#/;
next if /^\s*$/;
chomp;
# Convert mappings
if (/^\s*0x(..)\s*0x(....)\s*(#.*)/) {
# Mapping <from-code> <unicode-code> "#" <unicode-name>
my $cs_code = $1;
my $un_code = $2;
my $un_name = $3;
# Produce UTF-8 sequence from character code;
my $un_utf8 = join('',
map { sprintf("%02X", $_) }
unpack("U0C*", pack("U", hex($un_code)))
);
print " $cs_code $un_utf8 ; $un_name\n";
} else {
warn "Unrecognized line: '$_'";
}
}
###############################################################################

View File

@ -0,0 +1,130 @@
charset_map windows-1251 utf-8 {
80 D082 ; #CYRILLIC CAPITAL LETTER DJE
81 D083 ; #CYRILLIC CAPITAL LETTER GJE
82 E2809A ; #SINGLE LOW-9 QUOTATION MARK
83 D193 ; #CYRILLIC SMALL LETTER GJE
84 E2809E ; #DOUBLE LOW-9 QUOTATION MARK
85 E280A6 ; #HORIZONTAL ELLIPSIS
86 E280A0 ; #DAGGER
87 E280A1 ; #DOUBLE DAGGER
88 E282AC ; #EURO SIGN
89 E280B0 ; #PER MILLE SIGN
8A D089 ; #CYRILLIC CAPITAL LETTER LJE
8B E280B9 ; #SINGLE LEFT-POINTING ANGLE QUOTATION MARK
8C D08A ; #CYRILLIC CAPITAL LETTER NJE
8D D08C ; #CYRILLIC CAPITAL LETTER KJE
8E D08B ; #CYRILLIC CAPITAL LETTER TSHE
8F D08F ; #CYRILLIC CAPITAL LETTER DZHE
90 D192 ; #CYRILLIC SMALL LETTER DJE
91 E28098 ; #LEFT SINGLE QUOTATION MARK
92 E28099 ; #RIGHT SINGLE QUOTATION MARK
93 E2809C ; #LEFT DOUBLE QUOTATION MARK
94 E2809D ; #RIGHT DOUBLE QUOTATION MARK
95 E280A2 ; #BULLET
96 E28093 ; #EN DASH
97 E28094 ; #EM DASH
99 E284A2 ; #TRADE MARK SIGN
9A D199 ; #CYRILLIC SMALL LETTER LJE
9B E280BA ; #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
9C D19A ; #CYRILLIC SMALL LETTER NJE
9D D19C ; #CYRILLIC SMALL LETTER KJE
9E D19B ; #CYRILLIC SMALL LETTER TSHE
9F D19F ; #CYRILLIC SMALL LETTER DZHE
A0 C2A0 ; #NO-BREAK SPACE
A1 D08E ; #CYRILLIC CAPITAL LETTER SHORT U
A2 D19E ; #CYRILLIC SMALL LETTER SHORT U
A3 D088 ; #CYRILLIC CAPITAL LETTER JE
A4 C2A4 ; #CURRENCY SIGN
A5 D290 ; #CYRILLIC CAPITAL LETTER GHE WITH UPTURN
A6 C2A6 ; #BROKEN BAR
A7 C2A7 ; #SECTION SIGN
A8 D081 ; #CYRILLIC CAPITAL LETTER IO
A9 C2A9 ; #COPYRIGHT SIGN
AA D084 ; #CYRILLIC CAPITAL LETTER UKRAINIAN IE
AB C2AB ; #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
AC C2AC ; #NOT SIGN
AD C2AD ; #SOFT HYPHEN
AE C2AE ; #REGISTERED SIGN
AF D087 ; #CYRILLIC CAPITAL LETTER YI
B0 C2B0 ; #DEGREE SIGN
B1 C2B1 ; #PLUS-MINUS SIGN
B2 D086 ; #CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
B3 D196 ; #CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
B4 D291 ; #CYRILLIC SMALL LETTER GHE WITH UPTURN
B5 C2B5 ; #MICRO SIGN
B6 C2B6 ; #PILCROW SIGN
B7 C2B7 ; #MIDDLE DOT
B8 D191 ; #CYRILLIC SMALL LETTER IO
B9 E28496 ; #NUMERO SIGN
BA D194 ; #CYRILLIC SMALL LETTER UKRAINIAN IE
BB C2BB ; #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
BC D198 ; #CYRILLIC SMALL LETTER JE
BD D085 ; #CYRILLIC CAPITAL LETTER DZE
BE D195 ; #CYRILLIC SMALL LETTER DZE
BF D197 ; #CYRILLIC SMALL LETTER YI
C0 D090 ; #CYRILLIC CAPITAL LETTER A
C1 D091 ; #CYRILLIC CAPITAL LETTER BE
C2 D092 ; #CYRILLIC CAPITAL LETTER VE
C3 D093 ; #CYRILLIC CAPITAL LETTER GHE
C4 D094 ; #CYRILLIC CAPITAL LETTER DE
C5 D095 ; #CYRILLIC CAPITAL LETTER IE
C6 D096 ; #CYRILLIC CAPITAL LETTER ZHE
C7 D097 ; #CYRILLIC CAPITAL LETTER ZE
C8 D098 ; #CYRILLIC CAPITAL LETTER I
C9 D099 ; #CYRILLIC CAPITAL LETTER SHORT I
CA D09A ; #CYRILLIC CAPITAL LETTER KA
CB D09B ; #CYRILLIC CAPITAL LETTER EL
CC D09C ; #CYRILLIC CAPITAL LETTER EM
CD D09D ; #CYRILLIC CAPITAL LETTER EN
CE D09E ; #CYRILLIC CAPITAL LETTER O
CF D09F ; #CYRILLIC CAPITAL LETTER PE
D0 D0A0 ; #CYRILLIC CAPITAL LETTER ER
D1 D0A1 ; #CYRILLIC CAPITAL LETTER ES
D2 D0A2 ; #CYRILLIC CAPITAL LETTER TE
D3 D0A3 ; #CYRILLIC CAPITAL LETTER U
D4 D0A4 ; #CYRILLIC CAPITAL LETTER EF
D5 D0A5 ; #CYRILLIC CAPITAL LETTER HA
D6 D0A6 ; #CYRILLIC CAPITAL LETTER TSE
D7 D0A7 ; #CYRILLIC CAPITAL LETTER CHE
D8 D0A8 ; #CYRILLIC CAPITAL LETTER SHA
D9 D0A9 ; #CYRILLIC CAPITAL LETTER SHCHA
DA D0AA ; #CYRILLIC CAPITAL LETTER HARD SIGN
DB D0AB ; #CYRILLIC CAPITAL LETTER YERU
DC D0AC ; #CYRILLIC CAPITAL LETTER SOFT SIGN
DD D0AD ; #CYRILLIC CAPITAL LETTER E
DE D0AE ; #CYRILLIC CAPITAL LETTER YU
DF D0AF ; #CYRILLIC CAPITAL LETTER YA
E0 D0B0 ; #CYRILLIC SMALL LETTER A
E1 D0B1 ; #CYRILLIC SMALL LETTER BE
E2 D0B2 ; #CYRILLIC SMALL LETTER VE
E3 D0B3 ; #CYRILLIC SMALL LETTER GHE
E4 D0B4 ; #CYRILLIC SMALL LETTER DE
E5 D0B5 ; #CYRILLIC SMALL LETTER IE
E6 D0B6 ; #CYRILLIC SMALL LETTER ZHE
E7 D0B7 ; #CYRILLIC SMALL LETTER ZE
E8 D0B8 ; #CYRILLIC SMALL LETTER I
E9 D0B9 ; #CYRILLIC SMALL LETTER SHORT I
EA D0BA ; #CYRILLIC SMALL LETTER KA
EB D0BB ; #CYRILLIC SMALL LETTER EL
EC D0BC ; #CYRILLIC SMALL LETTER EM
ED D0BD ; #CYRILLIC SMALL LETTER EN
EE D0BE ; #CYRILLIC SMALL LETTER O
EF D0BF ; #CYRILLIC SMALL LETTER PE
F0 D180 ; #CYRILLIC SMALL LETTER ER
F1 D181 ; #CYRILLIC SMALL LETTER ES
F2 D182 ; #CYRILLIC SMALL LETTER TE
F3 D183 ; #CYRILLIC SMALL LETTER U
F4 D184 ; #CYRILLIC SMALL LETTER EF
F5 D185 ; #CYRILLIC SMALL LETTER HA
F6 D186 ; #CYRILLIC SMALL LETTER TSE
F7 D187 ; #CYRILLIC SMALL LETTER CHE
F8 D188 ; #CYRILLIC SMALL LETTER SHA
F9 D189 ; #CYRILLIC SMALL LETTER SHCHA
FA D18A ; #CYRILLIC SMALL LETTER HARD SIGN
FB D18B ; #CYRILLIC SMALL LETTER YERU
FC D18C ; #CYRILLIC SMALL LETTER SOFT SIGN
FD D18D ; #CYRILLIC SMALL LETTER E
FE D18E ; #CYRILLIC SMALL LETTER YU
FF D18F ; #CYRILLIC SMALL LETTER YA
}

View File

@ -0,0 +1,4 @@
au BufRead,BufNewFile *.nginx set ft=nginx
au BufRead,BufNewFile */etc/nginx/* set ft=nginx
au BufRead,BufNewFile */usr/local/nginx/conf/* set ft=nginx
au BufRead,BufNewFile nginx.conf set ft=nginx

View File

@ -0,0 +1 @@
setlocal commentstring=#\ %s

View File

@ -0,0 +1,11 @@
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal indentexpr=
" cindent actually works for nginx' simple file structure
setlocal cindent
" Just make sure that the comments are not reset as defs would be.
setlocal cinkeys-=0#

File diff suppressed because it is too large Load Diff

8069
docs/CHANGES 100644

File diff suppressed because it is too large Load Diff

8204
docs/CHANGES.ru 100644

File diff suppressed because it is too large Load Diff

26
docs/LICENSE 100644
View File

@ -0,0 +1,26 @@
/*
* Copyright (C) 2002-2018 Igor Sysoev
* Copyright (C) 2011-2018 Nginx, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/