Nginx的配置(進階):https://segmentfault.com/a/11...javascript
$ yum install nginx
咕咕咕php
$ mv /var/log/nginx/access.log /var/log/nginx/20180816.log $ kill -USER1 Nginx主進程號 # 讓Nginx從新生成一個新的日誌文件access.log
EPEL 指的是 Extra Packages for Enterprise Linux,由 Fedora 社區維護,專門給 RHEL 系的操做系統使用,而且相對於 CentOS 默認的倉庫,更新比較快。
Remi 是基於 EPEL 的針對 PHP 打包的倉庫,更新也很及時。css
$ yum install epel-release
若是VPS商家的系統是精簡的:html
$ yum install http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
安裝Remi倉房:java
$ yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
接着更新一下系統而且安裝一些必要的軟件:mysql
$ yum update $ yum install curl vim wget sudo unzip yum-utils
指定 PHP 包的版本nginx
$ yum-config-manager --enable remi-php70 $ yum update
安裝一些基本的PHP包:git
$ yum install php-fpm php-mysql php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc php-zip
修改一下/etc/php.ini
sql
$ sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php.ini
編輯Nginx的配置文件vim
$ vim /etc/nginx/nginx.conf server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } [*] 在此處添加便可 # 開啓PHP-fpm 模式 location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
重啓php和nginx
$ systemctl restart php-fpm $ systemctl restart nginx
參考連接:https://sb.sb/blog/centos-ins...
~ #波浪線表示執行一個正則匹配,區分大小寫 ~* #表示執行一個正則匹配,不區分大小寫 ^~ #^~表示普通字符匹配,若是該選項匹配,只匹配該選項,不匹配別的選項,通常用來匹配目錄 = #進行普通字符精確匹配 @ #"@" 定義一個命名的 location,使用在內部定向時,例如 error_page, try_files
例如:
location / { index index.php index.html; error_page 404 =200 /404.html; }
查看配置文件,確保包括了default.d
目錄下的配置文件
http { ... include /etc/nginx/default.d/*.conf; ... }
靈活配置,能夠針對不一樣server
作不一樣的訪問控制。
而後在default.d
目錄下建立訪問控制列表。
假如這裏要添加黑名單,那就建立black.conf
:
$ cat black.conf deny 123.151.43.110;
deny
表示禁止,支持通配符和正則。
location / { autoindex on; }
$ vim /etc/nginx/nginx.conf http { gzip on; # 開啓Gzip gzip_min_length 1k; # 不壓縮臨界值,大於1K的才壓縮 gzip_buffers 4 16k; #gzip_http_version 1.1; gzip_comp_level 2; # 壓縮級別,1-10,數字越大壓縮的越好,時間也越長 gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; # 壓縮文件類型 #gzip_vary on; # 跟Squid等緩存服務有關 gzip_disable "MSIE [1-6]\."; # 不壓縮IE6 ... }
... proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; server { set $upstream http://ip:port location / { proxy_cache my_cache; proxy_pass $upstream; } } ...
$ vim /etc/nginx/nginx.conf ... location /htdocs { alias /opt/www/alias; index index.html; } ...
alias
只會匹配最右側的路徑。
例如輸入http://www.brownfly.cn/htdocs/index.html
,那麼匹配的則是/opt/www/alias/index.html
,
而不是/opt/www/alias/htdocs/index.html
。
基於http_refer防盜鏈配置模塊:
$ vim /etc/nginx/nginx.conf ... location ~* .*\.(git|png|jpg|jpeg|swf|fle)$ { valid_referers none blocke 127.0.0.1 *.baidu; # 容許文件鏈出的域名白名單 if ($invalid_referer){ #rewrite ^/ http://118.25.89.91/404.html; # 盜鏈返回結果 return 403; }
身份驗證可用於一些私密目錄。
$ yum install -y httpd-tools $ cd /etc/nginx/conf.d $ htpasswd -c -m .htpasswd http1 # 建立http1用戶 輸入密碼 $ htpasswd -m .htpasswd http2 # 建立http2用戶 輸入密碼
$ vim /etc/nginx/nginx.conf location /secret { auth_basic "test site"; auth_basic_user_file /etc/nginx/conf.d/.htpasswd; }