由于需要nginx反向代理负载,跳转目录URL会自动被加上非80端口(如9000,当启用https时9000端口号会导致证书错误),需要隐藏。
通过port_in_redirect off;可实现端口号隐藏,设置重启后需要清除浏览器缓存。try_files $uri $uri/ @rewrite;会生成301永久重定向,部分浏览器会记住而导致设置无效。
upstream upstream.lenmot { #ip_hash; server 192.168.1.201:9000 weight=5 max_fails=2 fail_timeout=5s; server 192.168.1.202:9000 backup; } server { listen 80; server_name *.lenmot.com; return 301 https://$host$request_uri; } server { listen 443; server_name *.lenmot.com; ssl on; ssl_certificate /etc/nginx/keys/***.crt; ssl_certificate_key /etc/nginx/keys/***.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers "***"; location / { proxy_pass http://upstream.lenmot; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; # proxy_buffer_size 32k; # proxy_buffers 4 32k; # proxy_busy_buffers_size 64k; # proxy_temp_file_write_size 64k; #proxy_max_temp_file_size 0; #proxy_connect_timeout 90; #proxy_send_timeout 90; #proxy_read_timeout 90; } } server { listen 9000; server_name *.lenmot.com; root /usr/local/www/lenmot/www; index index.php index.html index.htm; add_header Strict-Transport-Security "max-age=31536000;includeSubDomains"; port_in_redirect off; try_files $uri $uri/ @rewrite; location @rewrite { rewrite ^/(.*)$ /index.php?s=$1 last; } # PHP FPM configuration. location ~ \.php { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(.*)$; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ /\.ht { deny all; } }