lamp/lnmp实例
實(shí)現(xiàn)需求如下:
1. 準(zhǔn)備兩臺(tái)centos 6,其中一臺(tái)機(jī)器跑mysql,另外一臺(tái)機(jī)器跑apache和nginx + php?
2. 同時(shí)安裝apache和nginx,其中nginx啟動(dòng)80端口,用來(lái)跑靜態(tài)對(duì)象(圖片、js、css),apache監(jiān)聽(tīng)88端口,負(fù)責(zé)跑動(dòng)態(tài)頁(yè)(php相關(guān)的),并且需要由nginx代理對(duì)外訪(fǎng)問(wèn)
3. mysql服務(wù)器需要開(kāi)啟慢查詢(xún)?nèi)罩?/p>
4. 搭建discuz、wordpress以及phpmyadmin,域名分別為bbs.abc.com, blog.abc.com, pma.abc.com
5. 配置discuz的偽靜態(tài)(nginx)
6. apache不需要記錄日志,nginx記錄日志,但不記錄圖片等靜態(tài)頁(yè)的日志,并且配置日志切割
7. 配置圖片防盜鏈(nginx)
8. 配置圖片緩存7天,js,css緩存1天(nginx)
9. discuz和wordpress訪(fǎng)問(wèn)后臺(tái)限制一下ip白名單,比如只允許192.168.1.100訪(fǎng)問(wèn)(nginx)
10. phpmyadmin整個(gè)站點(diǎn)需要配置用戶(hù)認(rèn)證(nginx)
11. 寫(xiě)一個(gè)mysql備份的腳本,每天5點(diǎn)執(zhí)行,需要遠(yuǎn)程拷貝到web機(jī)器上
12. 把除了百度、google外的其他常見(jiàn)搜索引擎蜘蛛封掉,比如(bingbot/2.0、Sogou web spider/4.0、360Spider、YisouSpider、YandexBot/3.0)(nginx)
/usr/local/apache2/conf/extra/httpd-vhosts.conf
NameVirtualHost *:88
<VirtualHost *:88>
? ? ?DocumentRoot "/www"
? ? ?ServerName abc.com
? ? ?ServerAlias www.abc.com
</VirtualHost>
<VirtualHost *:88>
? ? ?DocumentRoot "/www/discuz"
? ? ?ServerName bbs.abc.com
? ? ?ServerAlias www.bbs.abc.com
</VirtualHost>
<VirtualHost *:88>
? ? ?DocumentRoot "/www/wordpress"
? ? ?ServerName blog.abc.com
? ? ?ServerAlias www.blog.abc.com
</VirtualHost>
<VirtualHost *:88>
? ? ?DocumentRoot "/www/phpadmin"
? ? ?ServerName pma.abc.com
? ? ?ServerAlias www.pma.abc.com
</VirtualHost>
?bbs.conf
server
{
? ? listen 80;
? ? server_name bbs.abc.com;
? ? index index.html index.htm index.php;
? ? root /www/discuz;
if ($http_user_agent ~ 'bingbot/2.0|MJ12bot/v1.4.2|Spider/3.0|YoudaoBot|Tomato|Gecko/20100315'){
? ? ? ? ? ? return 403;
? ? }
? ? location ~ admin.php {
? ? ? ? allow 192.168.16.16;
? ? ? ? deny all;
? ? ? ? ? ? proxy_pass http://127.0.0.1:88;
? ? ? ? ? ? proxy_set_header Host ? $host;
? ? }
? location ~ \.php$
? ? ? ? {
? ? ? ? ? ? proxy_pass http://127.0.0.1:88;
? ? ? ? ? ? proxy_set_header Host ? $host;
? ? ? ? ? ? proxy_set_header X-Real-IP ? ? ?$remote_addr;
? ? ? ? ? ? proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
? ? ? ? }
? ? ? ? rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
? ? ? ? rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
? ? ? ? rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
? ? ? ? rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
? ? ? ? rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last;
? ? ? ? rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3 last;
location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$
{
? ? ? ? ?expires 7d;
? ? ? ? ?valid_referers none blocked server_names ?*.taobao.com *.baidu.com *.google.com *.google.cn *.soso.com ;
? ? ? ? ?if ($invalid_referer) {
? ? ? ? ?# ? ? ?return 403;
? ? ? ? ? ? ? ?rewrite ^/ http://blog.abc.com/;
? ? ? ? ? }
? ? ? ? ? access_log off;
}
?location ~ .*\.(js|css)?$
? ? {
? ? ? ? ? expires ? ? ?24h;
? ? ? ? ? access_log off;
? ? }
deny 192.168.1.0/24;
allow all;
? ? access_log /usr/local/nginx/logs/discuz.log combined_realip;
}
blog.comf
server
{
? ? listen 80;
? ? server_name blog.abc.com;
? ? index index.html index.htm index.php;
? ? root /www/wordpress;
location = / {
proxy_pass http://127.0.0.1:88/;
?proxy_set_header Host ? $host;
? ? ? ? ? ? proxy_set_header X-Real-IP ? ? ?$remote_addr;
? ? ? ? ? ? proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
? ? ? ? }
? ? location ~ \.php$
? ? ? ? {
? ? ? ? ? ? proxy_pass http://127.0.0.1:88;
? ? ? ? ? ? proxy_set_header Host ? $host;
? ? ? ? ? ? proxy_set_header X-Real-IP ? ? ?$remote_addr;
? ? ? ? ? ? proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
? ? ? ? }
? ? access_log /usr/local/nginx/logs/wordpress.log combined_realip;
}
pma.conf
server
{
? ? listen 80;
? ? server_name pma.abc.com;
? ? index index.html index.htm index.php;
? ? root /www/phpadmin;
location / {
? ? ? ? ?auth_basic ? ? ? ? ? ? ?"Auth";
? ? ? ? ?auth_basic_user_file ? /usr/local/nginx/conf/.htpasswd;
? ? ? ? ? ? }
? ? location ~ \.php$
? ? ? ? {
? ? ? ? ? ? proxy_pass http://127.0.0.1:88;
? ? ? ? ? ? proxy_set_header Host ? $host;
? ? ? ? ? ? proxy_set_header X-Real-IP ? ? ?$remote_addr;
? ? ? ? ? ? proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
? ? ? ? }
? ? access_log /usr/local/nginx/logs/pma.log combined_realip;
}
日志切割.sh
#!/bin/bash
#
exec &> /dev/null
d=`date -d "-1 day" +%Y%m%d`
/bin/mv ? /usr/local/nginx/logs/discuz.log ? /usr/local/nginx/logs/$d.discuz.log
/usr/local/nginx/sbin/nginx -s reload
find /tmp/ -type f -mtime +30|xargs rm -f
轉(zhuǎn)載于:https://blog.51cto.com/onelinux/1653131
與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的lamp/lnmp实例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql全局变量之max_connec
- 下一篇: PHP内核的学习--PHP生命周期