nginx负责处理静态页面就是html标签,apache负责处理php脚本,对于那些访问量大的网站来说这样的组合是比较高效的。
本博客就是使用这样的组合搭建的。
配置方法:
1,在此之前需要安装了lamp环境,可以参考https://sdeno.com/?p=5280
之后修改apache的默认端口为8080,在路径/etc/apache2/ports.conf
2,安装nginx服务端sudo apt-get install nginx,nginx负责监听80端口过滤静态请求,然后动态请求即Proxy 到Apache 的8080 端口。Proxy 反向代理的好处是访问的时候,始终就是80端口,来访者不会觉察到有任何的区别。(我安装的版本为nginx/1.10.0)
3,配置nginx
安装完成nginx之后测试下是否成功,nginx和apache一样默认web路径都是/var/www/html,
访问:http://localhost/index.nginx-debian.html 看看是否能成功。
进入到目录 /etc/nginx/sites-available/ 创建一个文件名为test的文件内容是:
//以下是对php网站的设置
server {
listen 80;
access_log /var/www/html/nginx.access.log;
error_log /var/www/html/nginx.error.log;
root /var/www/html;
index index.php index.html;
server_name www.xgllseo.com xgllseo.com;
location \ {
try_files $uri $uri/ index.php/$uri;
}
location ~* ^.*\.php$ {
if (!-f $request_filename) {
return 404;
}
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080; (前提要保证https://sdeno.com:8080/这样能正常访问到,也就是要绑定域名和修改端口)
}
location ~ /\.(ht|git) {
deny all;
}
}
//node.js配置可以是
server{
listen 80;
server_name xx.com www.xx.com;
location /{
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_cache_bypass $http_upgrade;
}
access_log /var/www/node/node.log;
}
//为node.js设置内存缓存
http {
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=one:8m max_size=3000m inactive=600m;
proxy_temp_path /var/tmp;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
gzip_comp_level 6;
gzip_vary on;
gzip_min_length 1000;
gzip_proxied any;
gzip_types text/plain text/htm text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_buffers 16 8k;
ssl_certificate /root/www/Nginx/1_www.easynode.cn_bundle.crt;
ssl_certificate_key /root/www/Nginx/2_www.easynode.cn.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DSS:!DES:!RC4:!3DES:!MD5:!PSK;
ssl_prefer_server_ciphers on;
upstream silly_face_society_upstream {
server 127.0.0.1:3011;
#server 127.0.0.1:61338;
keepalive 64;
}
#server {
# listen 80;
#listen 443 ssl;
# server_name easynode.cn;
#return 301 $scheme://www.sillyfacesociety.com$request_uri;
#}
server {
listen 80;
#listen 443 ssl;
server_name www.easynode.cn;
#error_page 502 /errors/502.html;
#if ($scheme = http) { #80端口跳转443
# return 301 https://$server_name$request_uri;
#}
#location ~ ^/(images/|img/|javascript/|js/|css/|stylesheets/|flash/|media/|static/|robots.txt|humans.txt|favicon.ico) {
#root /root/www/easynode/public;
#access_log off;
#expires max;
#}
location ~ .*\.(woff|eot|svg|ttf|favicon.ico|gif|jpg|jpeg|png|bmp|swf)$
{
#expires 30d;
expires max;
root /root/www/easynode/public; #重点
}
location ~ .*\.(js|css)?$
{
#expires 12h;
expires max;
root /root/www/easynode/public; #重点
}
#location /errors {
# internal;
# alias /usr/local/silly_face_society/node/public/errors;
#}
location / {
proxy_redirect off;
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_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Connection "";
proxy_http_version 1.1;
proxy_cache one;
proxy_cache_key sfs$request_uri$scheme;
proxy_pass http://silly_face_society_upstream;
}
}
}
创建软链接
sudo ln -s /etc/nginx/sites-available/test /etc/nginx/sites-enabled/test
这时候就会在 sites-enabled目录下看到刚刚的test配置被启动了
sudo /etc/init.d/nginx restart 重启nginx如果OK说明没问题
4,配置apache
在/etc/apache2/sites-available/目录下创建名为test.conf的文件内容是:
<VirtualHost *:8080> ServerAdmin webmaster@localhost DocumentRoot /var/www/html </VirtualHost>
创建软链接
sudo ln -s /etc/apache2/sites-available/test.conf /etc/apache2/sites-enabled/test.conf
在sites-enabled目录能看到刚刚的test.conf说明也启动成功。
接着按照下面顺序执行下
sudo a2ensite test sudo /etc/init.d/apache2 restart sudo /etc/init.d/apache2 reload
5,尝试下是否成功,
在/var/www/html/目录下创建1.php内容为<?php phpinfo();?>的php文件,
访问:http://localhost/1.php 。
如果成功那就完成了。