日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

nginx 及 php 配置

發(fā)布時間:2025/3/21 php 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nginx 及 php 配置 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一. 配置nginx啟動腳本以及nginx.conf

編寫啟動腳本 vim /etc/init.d/nginx //加入內(nèi)容
#!/bin/bash
# chkconfig: - 30 21
# description: http service.
# Source Function Library
. /etc/init.d/functions
# Nginx Settings

NGINX_SBIN="/usr/local/nginx/sbin/nginx"
NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
NGINX_PID="/usr/local/nginx/logs/nginx.pid"
RETVAL=0
prog="Nginx"

start() {
? ?? ?? ?echo -n $"Starting $prog: "
? ?? ?? ?mkdir -p /dev/shm/nginx_temp
? ?? ?? ?daemon $NGINX_SBIN -c $NGINX_CONF
? ?? ?? ?RETVAL=$?
? ?? ?? ?echo
? ?? ?? ?return $RETVAL
}

stop() {
? ?? ?? ?echo -n $"Stopping $prog: "
? ?? ?? ?killproc -p $NGINX_PID $NGINX_SBIN -TERM
? ?? ?? ?rm -rf /dev/shm/nginx_temp
? ?? ?? ?RETVAL=$?
? ?? ?? ?echo
? ?? ?? ?return $RETVAL
}

reload(){
? ?? ?? ?echo -n $"Reloading $prog: "
? ?? ?? ?killproc -p $NGINX_PID $NGINX_SBIN -HUP
? ?? ?? ?RETVAL=$?
? ?? ?? ?echo
? ?? ?? ?return $RETVAL
}

restart(){
? ?? ?? ?stop
? ?? ?? ?start
}

configtest(){
? ???$NGINX_SBIN -c $NGINX_CONF -t
? ???return 0
}

case "$1" in
? ?start)
? ?? ?? ?start
? ?? ?? ?;;
? ?stop)
? ?? ?? ?stop
? ?? ?? ?;;
? ?reload)
? ?? ?? ?reload
? ?? ?? ?;;
? ?restart)
? ?? ?? ?restart
? ?? ?? ?;;
? ?configtest)
? ?? ?? ?configtest
? ?? ?? ?;;
? ?*)
? ?? ?? ?echo $"Usage: $0 {start|stop|reload|restart|configtest}"
? ?? ?? ?RETVAL=1
esac

exit $RETVAL

### 到此結束

chmod 755 /etc/init.d/nginx
chkconfig --add nginx
chkconfig nginx on

更改Nginx配置文件 vim /usr/local/nginx/conf/nginx.conf //清空原來的配置,加入如下內(nèi)容:

user nobody nobody;
worker_processes 2;
error_log /usr/local/nginx/logs/nginx_error.log crit;
pid /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
events
{
? ? use epoll;
? ? worker_connections 6000;
}
http

{
? ? include mime.types;
? ? default_type application/octet-stream;
? ? server_names_hash_bucket_size 3526;
? ? server_names_hash_max_size 4096;
? ? log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
? ? '$host "$request_uri" $status'
? ? '"$http_referer" "$http_user_agent"';
? ? sendfile on;
? ? tcp_nopush on;
? ? keepalive_timeout 30;
? ? client_header_timeout 3m;
? ? client_body_timeout 3m;
? ? send_timeout 3m;
? ? connection_pool_size 256;
? ? client_header_buffer_size 1k;
? ? large_client_header_buffers 8 4k;
? ? request_pool_size 4k;
? ? output_buffers 4 32k;
? ? postpone_output 1460;
? ? client_max_body_size 10m;
? ? client_body_buffer_size 256k;
? ? client_body_temp_path /usr/local/nginx/client_body_temp;
? ? proxy_temp_path /usr/local/nginx/proxy_temp;
? ? fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
? ? fastcgi_intercept_errors on;
? ? tcp_nodelay on;
? ? gzip on;
? ? gzip_min_length 1k;
? ? gzip_buffers 4 8k;
? ? gzip_comp_level 5;
? ? gzip_http_version 1.1;
? ? gzip_types text/plain application/x-javascript text/css text/htm application/xml;

server

{
? ? listen 80;
? ? server_name localhost;
? ? index index.html index.htm index.php;
? ? root /usr/local/nginx/html;

? ? location ~ \.php$ {
? ?? ???include fastcgi_params;
? ?? ???fastcgi_pass unix:/tmp/php-fcgi.sock;
? ?? ???fastcgi_index index.php;
? ?? ???fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
? ? }
}
}

二. php-fpm.conf 配置
vim? ?/usr/local/php/etc/php-fpm.conf? ???//把之前的內(nèi)容清空,然后寫入如下配置:

[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
[www]
listen = /tmp/php-fcgi.sock
user = php-fpm
group = php-fpm
listen.owner = nobody??//和后面的nginx的一致
listen.group = nobody // 同上
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024

配置多個pool
[global]
...
...
[domain1.com]
...
...
...
[domain2.com]
...
...
...

慢執(zhí)行日志
slowlog = /path/to/slow.log
request_slowlog_timeout = 1

open_basedir
php_admin_value[open_basedir]=/data/www/:/tmp/

動態(tài)、靜態(tài)子進程pm = static/dynamic
如果選擇static,則由pm.max_children指定固定的子進程數(shù)。
如果選擇dynamic,則由以下參數(shù)決定:
pm.max_children ,子進程最大數(shù)
pm.start_servers ,啟動時的進程數(shù)
pm.min_spare_servers ,保證空閑進程數(shù)最小值,如果空閑進程小于此值,則創(chuàng)建新的子進程
pm.max_spare_servers ,保證空閑進程數(shù)最大值,如果空閑進程大于此值,此進行清理
對于專用服務器,pm可以設置為static。

三. nginx高級配置
1. 配置第二個虛擬主機
可以在nginx.conf 加一行
include??conf/vhosts/*.conf;??
這樣,我們就可以在 conf/vhosts目錄下創(chuàng)建虛擬主機配置文件了。
vim??conf/vhosts/111.conf? ?// 加入
server

{
? ? listen 80;
? ? server_name 111.com;
? ? index index.html index.htm index.php;
? ? root /data/www2;

? ? location ~ \.php$ {
? ?? ???include fastcgi_params;
? ?? ???fastcgi_pass unix:/tmp/php-fcgi.sock;
? ?? ???fastcgi_index index.php;
? ?? ???fastcgi_param SCRIPT_FILENAME /data/www2$fastcgi_script_name;
? ? }
}
2. 驗證默認虛擬主機
listen? ?? ? 80 default_server;

3. 用戶認證
首先需要安裝apache,可以使用yum install httpd 安裝
生成密碼文件,創(chuàng)建用戶
htpasswd -c /usr/local/nginx/conf/htpasswd??test // 添加test用戶,第一次添加時需要加-c參數(shù),第二次添加時不需要-c參數(shù)
在nginx的配置文件中添加
location??/ {
? ?? ?? ?? ?? ?? ?? ? root /data/www/wwwroot/count;
? ?? ?? ?? ?? ?? ?? ? auth_basic? ?? ?? ?? ???"Auth";
? ?? ?? ?? ?? ?? ?? ? auth_basic_user_file? ?/usr/local/nginx/conf/htpasswd;
? ?? ?? ?? ?}

4. 域名重定向
server_name??aminglinux.com??www.aminglinux.com;

? ? if ($host != 'www.aminglinux.com' ) {
? ?? ???rewrite??^/(.*)$??http://www.aminglinux.com/$1??permanent;
? ? }

5. 日志相關
日志切割:
編寫腳本:
vim??/usr/local/sbin/logrotate.sh??//加入

#! /bin/bash
datedir=`date +%Y%m%d`
/bin/mkdir??/home/logs/$datedir >/dev/null 2>&1
/bin/mv /home/logs/*.log /home/logs/$datedir
/bin/kill -HUP `cat /var/run/nginx.pid`

日志格式

log_format main '$remote_addr - $remote_user [$time_local] $request '
? ?? ?? ?? ?? ?? ???'"$status" $body_bytes_sent "$http_referer" '
? ?? ?? ?? ?? ?? ???'"$http_user_agent" "$http_x_forwarded_for"';



log_format main1 '$proxy_add_x_forwarded_for - $remote_user [$time_local] '
? ?? ?? ?? ?? ?? ?? ? '"$request" $status $body_bytes_sent '
? ?? ?? ?? ?? ?? ?? ? '"$http_referer" "$http_user_agent"';??//此日志格式為,ip不僅記錄代理的ip還記錄遠程客戶端真實IP。


錯誤日志error_log日志級別

error_log 級別分為 debug, info, notice, warn, error, crit??默認為crit, 該級別在日志名后邊定義格式如下:
error_log??/your/path/error.log crit;??
crit 記錄的日志最少,而debug記錄的日志最多。如果你的nginx遇到一些問題,比如502比較頻繁出現(xiàn),但是看默認的error_log并沒有看到有意義的信息,那么就可以調(diào)一下錯誤日志的級別,當你調(diào)成error級別時,錯誤日志記錄的內(nèi)容會更加豐富。

6. 靜態(tài)文件不記錄日志,配置緩存
? ?? ?? ?? ?? ???location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
? ?? ?? ?? ?? ?? ?? ?? ? {
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?expires? ?? ?30d;
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?access_log off;
? ?? ?? ?? ?? ?? ?? ?? ? }

? ?? ?? ?? ?? ? location ~ .*\.(js|css)?$
? ?? ?? ?? ?? ?? ?? ?? ? {
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?expires? ?? ?12h;
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?access_log off;
? ?? ?? ?? ?? ?? ?? ?? ? }

7. 防盜鏈
在 nginx.conf中的server部分中添加如下代碼
location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ {? ?
? ?? ?? ?? ?? ? valid_referers none blocked server_names??*.taobao.com *.baidu.com *.google.com *.google.cn *.soso.com ;??// 對這些域名的網(wǎng)站不進行盜鏈。
? ?? ?? ?? ?? ? if ($invalid_referer) {
#? ?? ?? ?? ?? ?? ?? ?? ?return 403;
? ?? ?? ?? ?? ?? ?? ?? ?rewrite ^/ http://www.example.com/nophoto.gif;
? ?? ?? ?? ?? ?? ?? ?? ?}
? ?? ?? ?? ?? ? }
8. 訪問控制
限制只讓某個ip訪問
? ? allow? ?? ?? ? 219.232.244.234;
? ? deny? ?? ?? ???all;

禁止某個IP或者IP段訪問站點的設置方法

首先建立下面的配置文件放在nginx的conf目錄下面,命名為deny.ip? ?
cat??deny.ip
deny 192.168.1.11;
deny 192.168.1.123;
deny 10.0.1.0/24;

在nginx的配置文件nginx.conf中加入:include deny.ip;

重啟一下nginx的服務:/usr/local/nginx/sbin/nginx??reload 就可以生效了。

deny.ip 的格式中也可以用deny all;
如果你想實現(xiàn)這樣的應用,除了幾個IP外,其他全部拒絕,
那需要你在deny.ip 中這樣寫
allow 1.1.1.1;
allow 1.1.1.2;
deny all;

有時候會根據(jù)目錄來限制php解析:location ~ .*(diy|template|p_w_uploads|forumdata|p_w_upload|p_w_picpath/.*\.php$ {
? ?? ???deny all;
}


使用 user_agent 控制客戶端訪問
? ?? ???location / {
? ?? ???if ($http_user_agent ~ 'bingbot/2.0|MJ12bot/v1.4.2|Spider/3.0|YoudaoBot|Tomato|Gecko/20100315'){
? ?? ?? ?? ?? ? return 403;
? ?? ???}
? ?? ???}

9. nginx的rewrite應用
Rewrite設置及示例 http://www.lishiming.net/thread-239-1-1.html
nginx $document_uri 參數(shù)使用 http://www.lishiming.net/thread-993-1-1.html
nginx的301與302如何配置 http://www.lishiming.net/thread-4840-1-1.html
nginx rewrite不支持if 嵌套也不支持邏輯或和邏輯并??http://www.lishiming.net/thread-4842-1-1.html

10. nginx 代理
代理一個服務器上所有域名 http://www.lishiming.net/thread-257-1-1.html
Nginx的代理 http://www.lishiming.net/thread-64-1-1.html
根據(jù)訪問的目錄來區(qū)分后端的web http://www.lishiming.net/thread-920-1-1.html
針對請求的uri來代理 http://www.lishiming.net/thread-1049-1-1.html

轉載于:https://blog.51cto.com/more3/1654055

總結

以上是生活随笔為你收集整理的nginx 及 php 配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。