欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

歡迎來到夢飛科技

系統配置

當前優惠活動:

Lnmp環境的設置與優化

前言:本文提到的參數,和實際應用中服務器訪問量有關。具體請自己斟酌修改。

一、系統篇
1、增加系統文件打開數vi /etc/security/limits.conf
* hard nofile 51200
* soft nofile 51200
這篇文章做參考還是挺好的:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=1029881

2、關閉Mail Server(centos7):systemctl disable postfix.service
啟用:systemctl enable postfix.service

關閉Mail Server(centos6):chkconfig postfix off

二、Nginx篇
1、Nginx http塊:屏蔽版本信息server_tokens off;不過還是可以通過$_SERVER["SERVER_SOFTWARE"]獲得=>nginx/1.0.11.因此得vi /usr/local/nginx/fastcgi_params(文件路徑取決于你的nginx.conf路徑) 修改fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;將/$nginx_version去掉,或者改個性點^_^

2、Nginx http塊:上傳體積限制client_max_body_size 8m;

3、http塊加入fastcgi_intercept_errors on; (這句要加上,否則404很混亂)
error_page  404 403              /404.html;(404.html文件體積不能太小)

4、文件類型:
vi /usr/local/webroot/mime.types
application/octet-stream url;(增加url快捷鏈接文件下載,這個一般用不著。)
application/vnd.android.package-archive     apk;(增加安卓應用文件下載,這個一般用不著。)

5、Nginx偽靜態方面.htaccess的功能太弱,需要在nginx.conf上設置,具體可以看下網上資料,一搜一大把。apache支持的.htaccess功能強大些。不過在nginx.conf上設置的偽靜態規則卻是很強大的。

6、禁止盜鏈:

location ~* \.(txt|ico|gif|png|bmp|jpg|jpeg|zip|rar|gz|7z|exe|mp3|flv|swf)$ {
valid_referers none blocked a.org www.a.org ;
if ($invalid_referer) {#$invalid_referer為變量
rewrite ^/ http://www.a.org/404.html;
}

7、禁止IP訪問:
有些VPS或機房會允許以IP直接訪問,添加以下server塊禁止:
server {
server_name _;
return 403;
}
8、禁止其他玉米訪問
我碰到過新買的VPS,上面居然綁了N多域名,結果導致百度收錄紊亂,添加以下server塊禁止:
server {
listen 80 default;
rewrite ^(.*) http://www.flashgou.com permanent;
}
9、禁止目錄執行php(解析php)
location /uploads/ {
    location ~ .*\.(php)?$ {
        deny all;
    }
}

10、# set php open_basedir
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";

三、PHP篇
Php.ini:
1、屏蔽php版本信息expose_php=off,不過仍舊可以通過PHP_VERSION常量來顯示,但遠程探測已成功屏蔽了。
2、禁止危險函數disable_functions =phpinfo,exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
system,exec,phpinfo
3、限制目錄:open_basedir =/var/www/sina/:/var/www/wangyi/:/var/www/logs/session/,如果是apache則可以使用php_admin_value open_basedir 限定
4、設置時區,關閉討厭的警告date.timezone ="Asia/Shanghai"
5、display_errors = OFF 關閉報警信息(默認OFF),不過對于nginx的php-fpm跑php來說,報警信息控制由php-fpm.conf里的;php_flag[display_errors] = off控制,默認就是關閉狀態。
6、memory_limit = 128M 這個參數并不需要去設置。你用php看下這個就明白了:
<?php
if (function_exists('memory_get_usage')) $memory_usage = round(memory_get_usage() / 1024 / 1024, 2) . ' MByte';
 else $memory_usage = 'N/A';
echo '<br/>已用內存:'.$memory_usage;
?>
一般而言,即使設置成8M或12M都不會有問題,而且設置成128M也不是立即占用內存的。主要在上傳文件時會大點(N人一起上傳,或者腳本寫得性能爛)。
7、magic_quotes_gpc = Off設置為on,不過,一個合格的php程序員應該在程序中始終使用if(get_magic_quotes_gpc()){$str=stripslashes($str);}來處理顯示數據。當然,如果網站程序不是你寫的,還是把magic_quotes_gpc設置為on吧。(php 7 已淘汰magic_quotes_gpc)
8、allow_url_fopen = On,沒有理由設置為On,果斷allow_url_fopen = Off
9、上傳
;upload_tmp_dir =/var/www/tmp
upload_max_filesize = 2M
post_max_size = 8M
這三個還是要根據自己的情況設置一下的,聯系Nginx的第2點。
10、session.save_path = "var/www/tmp"和upload_tmp_dir="var/www/tmp",這兩個參數設置一下,閑著沒事時也可以刪除一下節省點服務器空間,嘿嘿。(夸張了點,現在不缺硬盤)不過有人說存到/dev/shm下,直接以內存方式處理會非常快。但我覺得除了管理員,實在是沒必要讓所有用戶都采用session方式驗證。至于說cookies不安全,不安全你就解決安全問題唄。
11、[安全相關][高危]esc輸入/cgi.fix_pathinfo,設置cgi.fix_pathinfo = 0;(這個真惡心,你把一php文件改為a.jpg,上傳然后訪問a.jpg/asdf.php試下就知) (好象5.3.10不存在此問題了,會顯示Access denied. )
12、max_input_vars = 1000,無需設置,默認為1000,當然也可以設置小點,比如512。php 5.3.8加入此參數

php-fpm.conf:
1、設置超時時間request_terminate_timeout = 30
2、pid = run/php-fpm.pid前的分號去掉,這樣就可以通過kill -SIGUSR2  `cat /usr/local/php/var/run/php-fpm.pid`重啟了
3、user =和group = 修改用戶名和用戶組對應,否則fopen、上傳文件等無法執行。
4、再根據啟動時的出錯提示去掉分號:(5.3.10已默認開啟,不過還是需要修改相關參數。#號后為注釋內容,實際使用中需去掉)
pm = static #可選值pm = dynamic,如果為static,則進程數始終為pm.max_children指定值
;pm.max_children = 50 #靜態方式下開啟的php-fpm進程數量。
;pm.start_servers = 20 #動態方式下的起始php-fpm進程數量。
;pm.min_spare_servers = 5 #動態方式下的最小php-fpm進程數量。
;pm.max_spare_servers = 35 #動態方式下的最大php-fpm進程數量。內存除以20M的值
;pm.max_requests = 500 #每進程的請求數
對于服務器而言,推薦使用靜態方式,而小內存VPS則適合動態方式以節省內存。簡單講,1G以上用靜態吧,以下用動態方式。什么,剛好是1G?
4、如要顯示出錯信息開啟這行:;php_flag[display_errors] = on

四、MySQL篇
1、my.cnf:
#Enter a name for the binary log. Otherwise a default name will be used. 
#log-bin="D:/job/MySQL/logs/"
#Enter a name for the query log file. Otherwise a default name will be used. 查詢語句日志
#log= "D:/job/MySQL/logs/"
#Enter a name for the error log file. Otherwise a default name will be used. MySQL出錯日志,修改下路徑。一般開啟這個
log-error= "D:/job/MySQL/logs/"
#Enter a name for the update log file. Otherwise a default name will be used. 更新語句日志
#log-update= "D:/job/MySQL/logs/"

#慢查詢日志,非必須。調試性能時非常有用,單位為秒
long_query_time = 2
slow-query-log=on(開啟慢查詢,新版本,大概是5.5+)
slow-query-log_file=/var/log/logs/slow_query.log(新版本,大概是5.5+)
#log-slow-queries = /var/log/slow_query.log (舊版本)
log-queries-not-using-indexes = false

#skip-networking,禁用TCP\IP連接,如果遠程連接則必須去除此項。可提升安全性(當然iptables作用也在那)
skip-networking
back_log=256
# key_buffer_size,Do not set it larger than 30% of your available memory,默認16M,索引緩沖,不可太大,4G MySQL服務器推薦1G
key_buffer_size=128M
read_buffer_size=1M
read_rnd_buffer_size=2M
sort_buffer_size=512K
join_buffer_size=512K

thread_cache_size=100
open_files_limit=100 #mysql執行show global status查看open_files數,將open_files_limit設置比open_files大即可
table_open_cache=512 #MySQL 5.1+,table_cache由table_open_cache取代
max_connections=512
max_connect_errors=5000
wait_timeout=5
#注意,max_connections*sort_buffer_size必須小于服務器內存4G,否則設置無意義。當然實際也跑不滿max_connections這個連接數,否則就得增加值了。max_connections為并發連接數,一般到100個網站訪問量就不得了了,也是不大可能發生的。
tmp_table_size=64M
query_cache_size=64M
query_cache_limit=2M

innodb引擎設置方面主要在于innodb_buffer_pool_size =1G和innodb_log_file_size = 64M的問題,對于前者,官方建議你設置的數值為不啟動MySQL時服務器剩余內存的50 - 80 %。或者你也可以簡單理解為:總之你的服務器在剛啟動時,還剩余20%左右的內存就對了啦。

2、帳戶
shell>/usr/local/mysql/bin/mysql -u root -p進入后
1)DELETE FROM mysql.user WHERE User = '';刪除匿名用戶(系統弄這用戶是做測試用的,對應test數據庫)
2)創建新用戶:
GRANT ALL PRIVILEGES ON *.* TO 'kuhanzhu'@'localhost' IDENTIFIED BY 'mima1234';
GRANT ALL PRIVILEGES ON *.* TO 'kuhanzhu'@'127.0.0.1' IDENTIFIED BY 'mima1234'; 
3)更改root密碼:
UPDATE mysql.user SET Password = PASSWORD('mima123') WHERE User = 'root';
4)附:
你也可以在創建新用戶后DELETE FROM mysql.user WHERE User = 'root';不過記得先給新用戶GRANT權限,否則就不能再創建新用戶了。

3、經常使用OPTIMIZE TABLE,如果你的網站信息突然不能讀取sql數據了,數據庫連接沒錯,語句沒沒錯,更不可能更改過,那么使用這句。

五、防火墻及端口篇
1、)如果web和MySQL同一服務器,那么不要開放3306到防火墻。以及在my.cnf中skip-networking(參考第一點)。不開放3306遠程連接將會大大提高安全性。你如果喜歡用Navicat Premium備份,則可以使用http Tunnel通道來備份。不過服務器(VPS以上級別)的話,使用命令備份FTP下載才是王道。
2、)修改ssh端口,整天被人掃,看著就不爽。iptables增加自定義端口3389(可自己想一個),保存并重啟iptables(這里要仔細)。再vi /etc/ssh/sshd_config修改端口(#port 22 去掉#并修改端口號),然后service sshd restart,最后再把22那條防火墻策略刪除。
3、)修改ftp端口。具體請看各ftp軟件設置資料。vsftpd可參看VSftpd篇

六、VSftpd篇
作為最安全的ftp服務軟件,沒什么好說的。只有一點:自定義端口。把端口更改下可以提高安全系數。用過FileZilla server或者IIS FTP的人都知道,看日志,整天有人掃描暴力登陸,煩都煩死了。
目的:將ftp 端口21改為1314
步驟:
1、vi /etc/sysconfig/iptables 加入:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1024:1500 -j ACCEPT
保存重起:service iptables restart
2、vi /etc/vsftpd/vsftpd.conf 加入:
listen_port=1314
ftp_data_port=20
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1500
保存重起:service vsftpd restart
3、FTP客戶端(flashfxp或FileZilla)填入地址和端口1314,模式改為被動或自動判斷。即可連接上。
注意:自定義端口必須使用被動模式,而被動模式麻煩的很多:
1)筆記本通過無線路由不能連接上。
2)主機連虛擬機(不是虛擬主機)通過ftp://192.168.5.102:1314也連不上。
無線路由上網被動模式連不上可能跟無線路由器有關,之前的連不上,換一個后可以連上。具體還沒查過哪里設置有關。

七、Apache篇
順帶吧,還是有很多Apache的用戶的。
1、禁用目錄瀏覽,搜索Indexes FollowSymLinks
  Options -Indexes FollowSymLinks
2、屏蔽apache版本及主機信息,加入:
ServerSignature Off
ServerTokens Prod
HostnameLookups Off
3、加入以下這堆東東:
KeepAlive on
KeepAliveTimeout 5
MaxKeepAliveRequests 100
Timeout 60

<IfModule prefork.c>
ServerLimit     1000
StartServers         10
MinSpareServers     10
MaxSpareServers     15
MaxClients         660
MaxRequestsPerChild 680
#ServerLimit和MaxClients是連接數限制設定,默認MaxClients為150,但也不要設置太大,否則服務器承受不了……MaxRequestsPerChild太大的話,服務器內存問題限制,內存好可以設置為0或調整大值。4G的服務器可以設置為5000,然后觀察內存進行調整
</IfModule>

4、日志及安全性(都在下面這段代碼里,自己研究吧,Windows和linux只是書寫路徑的區別)
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot D:\myphp\root
    ServerName www.shangbanla.net
  <FilesMatch "\.(ico|gif|swf|css|js)">
#不記錄ico\gif這些文件的日志
 SetEnv dontlog 1
 </FilesMatch>
#錯誤記錄,主要是404什么的
  ErrorLog logs/shangbanla.net-error_log
#日志分割,年月日,Linux則使用計劃任務分割即可。參考http://www.flashgou.com/show/34
#CustomLog "|bin/rotatelogs.exe logs/access_log_%Y%m%d 86400 480" combined env=!dontlog
#php的執行目錄,包括session的存放讀取目錄和上傳的臨時文件目錄,修改session.save_path = "var/www/tmp"和upload_tmp_dir="var/www/tmp"。
 php_admin_value open_basedir "var/www:/tmp:/var/session" #nginx現在也支持了,看nginx部分第10條
</VirtualHost>

夢飛科技 - 全球數據中心基礎服務領先供應商

Copyright © 2003-2019 MFISP.COM. 國外服務器租用 IDC公司 版權所有 ? 粵ICP備11019662號

主站蜘蛛池模板: 南靖县| 上高县| 龙南县| 错那县| 松溪县| 富裕县| 长岛县| 密山市| 兴海县| 乌鲁木齐县| 东兴市| 阳西县| 桂东县| 吉林市| 崇左市| 察哈| 常宁市| 黔西| 清徐县| 永新县| 新郑市| 南华县| 和田市| 东阳市| 济宁市| 三明市| 衡南县| 喀喇沁旗| 怀远县| 云和县| 固始县| 新建县| 大悟县| 泌阳县| 揭阳市| 安庆市| 武穴市| 石嘴山市| 十堰市| 涞源县| 金堂县|