Ubuntu中Nginx怎么安装与配置
发布时间 - 2023-05-15 00:00:00 点击率:次1.nginx介绍
nginx是一个非常轻量级的http服务器,nginx,它的发音为“engine x”, 是一个高性能的http和
反向代理服务器,同时也是一个imap/pop3/smtp 代理服务器。
2.对php支持
目前各种web 服务器对php的支持一共有三种:
(1)通过web 服务器内置的模块来实现,例如apache的mod_php5,类似的apache内置的mod_perl
可以对perl支持。
(2)通过cgi来实现,这个就好比之前perl的cgi,该种方式的缺点是性能差,因为每次服务器遇到
这些脚本都需要重新启动脚本解析器来执行脚本然后将结果返回给服务器;
另一方面就是不太安全;该方面几乎很少使用了。
(3)最新出现一种叫做fastcgi。所谓fastcgi就是对cgi的改进。它一般采用c/s结构,一般脚本处理器
会启动一个或者多个daemon进程,每次web 服务器遇到脚本的时候,直接交付给fastcgi的进程来执行,然后
将得到的结果(通常为html)返回给浏览器。
2.1 apache+mod_php模式
我们很久一段时间使用经典的apache+mod_php。
apache对php的支持是通过apache的模块来支持的。如果从源代码编译安装php的话,如果希望apache支持
php的话,在./configure步骤需要指定--with-apxs2=/usr/local/apache2/bin/apxs 表示告诉编译器通过
apache的mod_php5/apxs来提供对php5的解析;而且在最后一步make install的时候我们会看到将动态链接库
libphp5.so拷贝到apache2的安装目录的modules目录下,并且还需要在httpd.conf配置文件中添加loadmodule
语句来动态将libphp5.so模块加载进来,从而实现apache对php的支持。
2.2 nginx+fastcgi模式
nginx完全是轻量级的,必须借助第三方的fastcgi处理器才可以对php进行解析,因此其实这样看来nginx是
非常灵活的,它可以和任何第三方提供解析的处理器实现连接从而实现对php的解析(在nginx.conf中很容易设置)。
nginx可以使用spwan-fcgi。在早期版本中需要安装lighttpd,但是在9.10版本以后直接安装spawn-fcgi就可以。
现在出现了新的第三方的php的fastcgi处理器,叫做php-fpm,可以了解一下。本文是基于spawn-fcgi实现对
php模块的支持。
2.3 安装fastcgi
/usr/bin/spawn-fcgi这个文件来管理 fastcgi,它原属于lighttpd这个包里面,但 9.10 后,spawn-fcgi
被分离出来单独成包。
(1)使用apt-get在线安装命令如下:
$sudo apt-get install spawn-fcgi
(2)源代码安装如下,下载地址为:
解压缩以后,进入目录下执行如下安装命令:
$./configure
$make
$make install
安装之后,spawn-fcgi命令就可以直接使用了,它的可执行文件在/usr/local/bin/spawn-fcgi。
3.nginx安装
3.1 安装nginx
(1)在线安装
$sudo apt-get install nginx
nginx的版本是1.2.1
ubuntu安装nginx之后的文件结构大致为:
所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下
启动程序文件在/usr/sbin/nginx
日志放在了/var/log/nginx中,分别是access.log和error.log
并已经在/etc/init.d/下创建了启动脚本nginx
默认的虚拟主机的目录设置在了/usr/share/nginx/www
(2)源代码安装
下载地址:
我这里下载的是 nginx-1.3.9.tar.gz,安装过程很简单,如下:
$./configure
$make
$make install
安装成功之后,nginx放置在/usr/local/nginx目录下,主要的配置文件为conf目录下的nginx.conf,
nginx的启动文件在sbin目录下的nginx文件。
3.2 启动nginx
(1)在线安装的启动过程
$sudo /etc/init.d/nginx start
(2)源代码安装的启动过程
$cd /usr/local/nginx
$sbin/nginx
然后就可以访问了,http://localhost/ , 一切正常!如果不能访问,先不要继续,看看是什么原因,
解决之后再继续。
如果你的机器同时安装了apache,那上面的访问方式就不能使用了,而且nginx都可能启动不了,这是
因为它们都是用了80这个端口。我们这里将nginx的端口修改为8080,
这里主要修改nginx的配置文件nginx.conf,将一下这一行
listen 80;
修改为
listen 8080;
然后就可以访问了,http://localhost:8080/ 。
3.3 安装php和mysql
$sudo apt-get install php5-cli php5-cgi mysql-server php5-mysql
3.4 测试nginx对php的支持
(1)重新启动nginx:
$/etc/init.d/nginx restart
(2)启动fastcgi:
$spawn-fcgi -a 127.0.0.1 -p 9000 -c 10 -u www-data -f /usr/bin/php-cgi
spawn-fcgi启动出现错误时,查看php-cgi是否安装,如果么有的话,安装php5-cgi。
$sudo apt-get install php5-cgi
(3)测试
打开http://localhost/phpinfo.php
4.nginx配置
nginx的配置文件是/etc/nginx/nginx.conf,其中设置了一些必要的参数,我们发现其中这样的语句:
include /etc/nginx/sites-enabled/*
可以看出/etc/nginx/sites-enabled/default文件也是一个核心的配置文件,其中包含了主要的配置信息,
如服务器跟目录、服务器名称、location信息和server信息。
对于源代码安装的nginx,配置文件为/usr/local/nginx/conf/nginx.conf。
下面主要说明location的匹配规则:
(1)= 前缀的指令严格匹配这个查询。如果找到,停止搜索。
(2)剩下的常规字符串,最长的匹配优先使用。如果这个匹配使用 ^~ 前缀,搜索停止。
(3)正则表达式,按配置文件里的顺序,第一个匹配的被使用。
(4)如果第三步产生匹配,则使用这个结果。否则使用第二步的匹配结果。
在location中可以使用常规字符串和正则表达式。
如果使用正则表达式,你必须使用以下规则:
(1)~* 前缀选择不区分大小写的匹配
(2)~ 选择区分大小写的匹配
例子:
location = / {
# 只匹配 / 查询。
[ configuration a ]
}
location / {
# 匹配任何查询,因为所有请求都以 / 开头。
# 但是正则表达式规则和长的块规则将被优先和查询匹配。
[ configuration b ]
}
location ^~ /images/ {
# 匹配任何以 /images/ 开头的任何查询并且停止搜索。
# 任何正则表达式将不会被测试。
[ configuration c ]
}
location ~* \.(gif|jpg|jpeg)$ {
# 匹配任何以
gif、jpg 或 jpeg 结尾的请求。
# 然而所有 /images/ 目录的请求将使用 configuration c。
[ configuration d ]
}
# ubuntu
# nginx
# php
# perl
# mysql
# 正则表达式
# html
# include
# Error
# 字符串
# CGI
# var
# default
# location
# apache
# http
# Access
# 配置文件
# 源代码
# 就可以
# 目录下
# 第三方
# 下载地址
# 可以使用
# 使用了
# 来实现
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何配置Horizon来管理队列?(安装和使用)
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
微信小程序 HTTPS报错整理常见问题及解决方案
Laravel如何为API生成Swagger或OpenAPI文档
如何撰写建站申请书?关键要点有哪些?
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
Swift中循环语句中的转移语句 break 和 continue
如何在建站主机中优化服务器配置?
Laravel API资源类怎么用_Laravel API Resource数据转换
JavaScript数据类型有哪些_如何准确判断一个变量的类型
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
详解MySQL数据库的安装与密码配置
Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】
JS经典正则表达式笔试题汇总
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
如何彻底卸载建站之星软件?
如何安全更换建站之星模板并保留数据?
如何选择可靠的免备案建站服务器?
详解Android——蓝牙技术 带你实现终端间数据传输
网站建设整体流程解析,建站其实很容易!
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
Python文件异常处理策略_健壮性说明【指导】
太平洋网站制作公司,网络用语太平洋是什么意思?
Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
详解jQuery中的事件
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
香港服务器租用费用高吗?如何避免常见误区?
浅谈redis在项目中的应用
JS实现鼠标移上去显示图片或微信二维码
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
jQuery中的100个技巧汇总
如何在阿里云虚拟服务器快速搭建网站?
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
微信推文制作网站有哪些,怎么做微信推文,急?
jquery插件bootstrapValidator表单验证详解
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
javascript如何操作浏览器历史记录_怎样实现无刷新导航
如何续费美橙建站之星域名及服务?

