文档章节

Apache 及 Nginx 配置

麦拂沙
 麦拂沙
发布于 2015/10/01 19:23
字数 942
阅读 65
收藏 0

Apache配置

全局配置httpd.conf

# 服务运行账户设定
User daemon
Group daemo

# 启用常用模块
LoadModule php5_module    modules/libphp5.so  #php支持模块
LoadModule rewrite_module modules/mod_rewrite.so  #URL重写模块

Addtype application/x-httpd-php .php  # 添加PHP的MIMETYPE

DirectoryIndex index.php index.html index.htm  # 默认页配置

PidFile /var/run/httpd.pid  # 进程文件设定

虚拟主机配置httpd-vhosts.conf

# Apache 2.2系列版本
<VirtualHost *:80>
   DocumentRoot /srv/www/site1
   ServerName sitename.com
   ServerAlias aliasname1.com aliasname2.com  #可选(common日志格式)
   ErrorLog  /var/log/httpd/sitename_error.log  #如未指定,则使用全局配置ErrorLog 
   CustomLog /var/log/httpd/sitename_access.log common  #可选
   
   <Directory /srv/www/site1>
    Options MultiViews FollowSymLinks
   AllowOverride All
   Order allow,deny
   Allow From All
   </Directory>
</VirtualHost>

# Apache 2.4系列版本
<VirtualHost *:80>
   DocumentRoot /srv/www/site1
   ServerName sitename.com
   ServerAlias aliasname1.com aliasname2.com  #可选(common日志格式)
   ErrorLog  /var/log/httpd/sitename_error.log  #如未指定,则使用全局配置ErrorLog 
   CustomLog /var/log/httpd/sitename_access.log common  #可选
   <Directory /srv/www/site1>
     Options FollowSymLinks
     AllowOverride all 
     Require all granted
   </Directory>
</VirtualHost>

4种系统内置的服务日志格式:
|格式分类|格式简写|用途说明|
|:-----|:------|:------|
|普通日志格式(common log format,CLF)|common|记录常规的请求信息|
|参考日志格式(referer log format)|referer|在常规信息基础上增加来源页信息|
|代理日志格式(agent log format)|agent|在常规信息基础上增加代理信息|
|综合日志格式(combined log format)|combined|结合以上三种日志信息|

Apache URL重写

格式 RewriteRule Pattern Substitution [flags]

Substitution:

flag:

  • NC忽略大小写
  • L立即停止重写操作,并不再应用其他重写规则
  • R若要使用300-400范围内的响应代码,只需在此指定R=即可(或使用下列符号名称之一:temp(默认), permanent, seeother)
# 301跳转, R=permanent 进行永久重定向
RewriteRule Pattern Substitution [R=permanent,L]

# 302跳转, 要求Substitution以http://开头
RewriteRule Pattern Substitution [R,L]

# 图片防盗链
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} ! http://www.你的域名.com [NC]
RewriteCond %{HTTP_REFERER} ! http://www.baidu.com [NC]
RewriteCond %{HTTP_REFERER} ! http://www.google.com [NC]
RewriteRule .*\.(gif|jpg|jpeg|bmp|png)$ http://www.你的域名.com/unfind.jpg [R,NC,L]

Apache配置允许跨域

  • 一个请求的协议、域名、端口必须都相同,才是同域,否则即为跨域。
  • 面向第三方网站跨域操作时,浏览器仍然会发出请求,但是需得到第一方网站的允许,浏览器才会正常接收第三方网站的响应。
  • 具体的即第一方网站的 http response header 中,需引入 Access-Control-Allow-Origin 来授权浏览器跨域访问第三方网站。
# 启用header模块
LoadModule headers_module modules/mod_headers.so

# 虚拟主机配置
Header set Access-Control-Allow-Origin http://other_domain.com

Nginx配置nginx.conf

user nobody;  # 指定服务运行用户
worker_processes  4;  # 工作进程数设定(一般和cpu数一致)
 
# 全局错误日志
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid logs/nginx.pid;  # 进程文件指定
keepalive_timeout 60;
 
#工作模式设定
events {
    use epoll;  # linux2.6+内核可设定epoll(多路复用io)模式提高性能
    worker_connections 1024;  # 每个工作进程的并发连接数
}
 
 
http {
    # 日志格式设定
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"'; 

    access_log  logs/access.log  main;  # 全局日志设定
    gzip  on;  # 开启gzip压缩
  
    # 虚拟主机配置
    server {
        listen    80;
        server_name  www.site.com;
        root /service/www;
        access_log  logs/nginx.access.log  main;  # 当前虚拟主机访问日志
 
        # php脚本处理
        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;
        } 
    }
}

nginx并发总数 = worker_processes * worker_connections (反向代理一般会使并发性能降低4倍)

server_name 高级配置

  • 匹配多个主机名,空格隔开
    server_name  a.site.com b.site.com;
    
  • 使用通配符
    server_name  *.site.com;
    
  • 使用正则
    server_name  ~^(?<hostname>.+?)\.site\.com$;
    
    捕获的变量可通过 $hostname 形式在配置文件中使用

© 著作权归作者所有

共有 人打赏支持
麦拂沙
粉丝 22
博文 120
码字总数 109526
作品 1
海淀
高级程序员
私信 提问
Apache 与 Nginx 比较

Nginx 轻量级,采用 C 进行编写,同样的 web 服务,会占用更少的内存及资源 抗并发,nginx 以 epoll and kqueue 作为开发模型,处理请求是异步非阻塞的,负载能力比 apache 高很多,而 apac...

pcdog
2018/08/13
0
0
九、参考资料

《实战 Nginx:取代Apache的高性能Web服务器》 《nginx的五种负载均衡算法》 《Nginx服务器优化》 《nginx 解决session共享》 《nginx tomcat session复制》 《UNIX下Apache 简介及基本配置》...

孟飞阳
2016/08/07
30
0
使用apache和nginx部署graphite的相关配置

写在前面 我们在测试的时候,可以使用下面的命令来启动graphite 但是这种启动方式只可用于测试,生产环境下,启动graphite不能用这种方式。 生产环境下需要使用apache或者nginx来部署graphit...

摩云菜
2016/07/14
195
0
比较Apache与Nginx的优缺点

1、nginx相对于apache的优点:轻量级,同样起web 服务,比apache 占用更少的内存及资源抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高...

xdl刘涛
2016/08/29
11
0
ubuntu 用nginx反向代理apache,实现静态文件用nginx,php文件用apac...

最近有个想法,就是想实现nginx和apache并存,*.html或静态文件用nginx运行 .php文件用apache运行 怎么实现配置呢? 首先nginx的配置修改/etc/nginx/sites-available/default文件,使用一下的...

quanpower
2013/05/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 升级中的一些常见问题

升级的时候遇到了问题了吗? 如果你想尝试重新进行升级的话,你需要首先重新恢复老的备份。不要尝试再次对 Confluence 进行升级或者在升级失败后重新启动老的 Confluence。 在升级过程中的一...

honeymoose
今天
2
0
C++随笔(四)Nuget打包

首先把自己编译好的包全部准备到一个文件夹 像这样 接下来新建一个文本文档,后缀名叫.nuspec 填写内容 <?xml version="1.0"?><package xmlns="http://schemas.microsoft.com/packaging/201......

Pulsar-V
今天
2
0
再谈使用开源软件搭建数据分析平台

三年前,我写了这篇博客使用开源软件快速搭建数据分析平台, 当时收到了许多的反馈,有50个点赞和300+的收藏。到现在我还能收到一些关于dataplay2的问题。在过去的三年,开源社区和新技术的发...

naughty
今天
7
0
Python3的日期和时间

python 中处理日期时间数据通常使用datetime和time库 因为这两个库中的一些功能有些重复,所以,首先我们来比较一下这两个库的区别,这可以帮助我们在适当的情况下时候合适的库。 在Python文...

编程老陆
今天
2
0
分布式面试整理

并发和并行 并行是两个任务同时进行,而并发呢,则是一会做一个任务一会又切换做另一个任务。 临界区 临界区用来表示一种公共资源或者说是共享数据,可以被多个线程使用,但是每一次,只能有...

群星纪元
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部