apache的alias规则转换成nginx配置的示例
# apache主配置文件
<VirtualHost *:80>
ServerAdmin webmaster@example.com
DocumentRoot "/data/www/vhosts/chinasoft.com/httpdocs/"
ServerName chinasoft.com
ServerAlias www.chinasoft.com chinasoft.com
errorDocument 404 /404.html
ErrorLog "/var/log/error_log"
CustomLog "/var/log/access_log" combined
#HTTP_TO_HTTPS_START
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://www.chinasoft.com$1 [L,R=301]
</IfModule>
#HTTP_TO_HTTPS_END
#DENY FILES
<Files ~ (.user.ini|.htaccess|.git|.svn|.project|LICENSE|README.md)$>
Order allow,deny
Deny from all
</Files>
#PHP
#<FilesMatch .php$>
# SetHandler "proxy:unix:/tmp/php-cgi-73.sock|fcgi://localhost"
#</FilesMatch>
#PATH
<Directory "/data/www/vhosts/chinasoft.com/httpdocs/">
SetOutputFilter DEFLATE
Options FollowSymLinks
AllowOverride All
Require all granted
DirectoryIndex index.php index.html index.htm default.php default.html default.htm
</Directory>
<IfModule alias_module>
Alias /server/ /data/www/vhosts/chinasoft.com/httpdocs/maxserver/
</IfModule>
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmasterexample.com
DocumentRoot "/data/www/vhosts/chinasoft.com/httpdocs/"
ServerName chinasoft.com
ServerAlias www.chinasoft.com chinasoft.com
errorDocument 404 /404.html
ErrorLog "/var/log/error_log"
CustomLog "/var/log/access_log" combined
#SSL
SSLEngine On
SSLCertificateFile /etc/0924pem/chinasoft.com/full.crt
SSLCertificateKeyFile /etc/0924pem/chinasoft.com/key.crt
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
#PHP
#<FilesMatch .php$>
# SetHandler "proxy:unix:/tmp/php-cgi-73.sock|fcgi://localhost"
#</FilesMatch>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^chinasoft.com$ [NC]
RewriteRule (.*) https://www.%{SERVER_NAME}$1 [L,R=301]
</IfModule>
#DENY FILES
<Files ~ (.user.ini|.htaccess|.git|.svn|.project|LICENSE|README.md)$>
Order allow,deny
Deny from all
</Files>
#PATH
<Directory "/data/www/vhosts/chinasoft.com/httpdocs/">
SetOutputFilter DEFLATE
Options FollowSymLinks Indexes
AllowOverride All
Require all granted
DirectoryIndex index.php index.html index.htm default.php default.html default.htm
</Directory>
<IfModule alias_module>
Alias /server/ /data/www/vhosts/chinasoft.com/httpdocs/maxserver/
</IfModule>
</VirtualHost>
# 目录下的apache配置
~ # more /data/www/vhosts/www.chinasoft.com/httpdocs/maxserver/public/.htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteBase /server/public
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
转换成nginx的配置
# nginx 配置
~# cat /usr/local//nginx/conf/vhost.d/www.chinasoft.com.conf
upstream node_servers{
ip_hash;
server 172.31.18.105:2233 max_fails=2 fail_timeout=30s weight=1;
server 172.31.17.40:2233 max_fails=2 fail_timeout=30s weight=1;
check interval=3000 rise=2 fall=5 timeout=1000 type=tcp port=2233;
check_keepalive_requests 100;
}
server {
listen 80;
server_name chinasoft.com www.chinasoft.com ori-www.chinasoft.com;
access_log on;
access_log /data/www/logs/nginx_log/access/www.chinasoft.com_access.log main ;
error_log /data/www/logs/nginx_log/error/www.chinasoft.com_error.log ;
root /data/www/vhosts/www.chinasoft.com/httpdocs;
index index.html index.shtml index.php ;
include rewrite.d/www.chinasoft.com.conf ;
if ($http_user_agent ~ Ezooms) {
return 403;
}
location ~ ^.*.(htaccess|htpasswd|ini|sh)$ {
deny all;
}
rewrite ^/(.*)$ https://www.chinasoft.com/$1 permanent;
}
server {
listen 443 ssl;
ssl_certificate cert2016/chinasoft_com.crt;
ssl_certificate_key cert2016/chinasoft_com.key;
ssl_dhparam cert2016/dh_2048.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA25
6:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!AES128-GCM-SHA256:!AES256-GCM-SHA384:!AES128-SHA256:!AES256-SHA256:!AES128-SHA:!AES256-SHA:AES:!C
AMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:EDH-RSA-DES-CBC3
-SHA:!KRB5-DES-CBC3-SHA";
ssl_prefer_server_ciphers on;
server_name chinasoft.com www.chinasoft.com ori-www.chinasoft.com;
access_log on;
access_log /data/www/logs/nginx_log/access/www.chinasoft.com_access.log main ;
error_log /data/www/logs/nginx_log/error/www.chinasoft.com_error.log ;
root /data/www/vhosts/www.chinasoft.com/httpdocs;
index index.html index.shtml index.php ;
include rewrite.d/www.chinasoft.com.conf ;
error_page 404 403 /404.html;
if ($http_user_agent ~ Ezooms) {
return 403;
}
location ~ ^.*.(htaccess|htpasswd|ini|sh)$ {
deny all;
}
location /templates/ {
# proxy_pass http://127.0.0.1:2233;
proxy_pass http://node_servers;
}
location ^~ /online/ {
try_files $uri $uri/ /online/home.html;
index home.html index.html;
}
location ~* ^/server/(.+)$ {
alias /data/www/vhosts/www.chinasoft.com/httpdocs/maxserver/;
index index.php index.html;
try_files $1 $1/ /server/public/index.php?$query_string;
#try_files $uri $uri/ /server/public/index.php?$query_string;
location ~* ^/server/(.+).php$ {
add_header Cache-Control no-store;
fastcgi_pass unix:/tmp/php5.6-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$1.php;
include fastcgi_params;
}
}
location ~ .php$ {
fastcgi_pass unix:/tmp/php5.6-fpm.sock;
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}