Nginx网站服务LNMP搭建论坛

本文详细介绍了如何使用Nginx搭建高性能的Web服务,并通过FastCGI接口与PHP结合,优化高并发处理。同时,文章还涵盖了MySQL数据库的安装、PHP的FPM模块配置与优化,以及通过Nginx配置虚拟主机实现基于域名、IP和端口的网站隔离。最终,演示了如何搭建和配置Discuz社区论坛。
摘要由CSDN通过智能技术生成

Nginx

一款高性能、轻量级Web服务软件
稳定性高
系统资源消耗低
对HTTP并发连接的处理能力高,单台物理服务器可支持30000-50000个并发请求

Nginx模块

核心模块:HTTP模块、EVENT模块和MAIL模块
基础模块:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块
第三方模块:HTTP Upstream Request Hash模块、Notice模块和HTTP Access Key模块

Nginx+FastCGI运行原理

FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当HTTP服务器每.次遇到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。

Nginx 不支持对外部程序的直接调用或者解析,所有的外部程序(包括 PHP)必须通过FastCGI 接口来调用。FastCGI 接口在 Linux 下是 socket(这个 socket 可以是文件 socket, 也可以是 ip socket)。 wrapper 为了调用 CGI 程序,还需要一个 FastCGI 的 wrapper(wrapper 可以理解为用于启动另一个程序的程序),这个 wrapper 绑定在某个固定 socket 上,如端口或者文件 socket。当 Nginx 将 CGI 请求发送给这个 socket 的时候,通过 FastCGI 接口,wrapper 接收到请求,然后 Fork(派生)出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据;接着 wrapper 再将返回的数据通过 FastCGI 接口,沿着固定的 socket传递给 Nginx;最后 Nginx 将返回的数据(html 页面或者图片)发送给客户端。
在这里插入图片描述

Nginx部署过程

首先安装依赖包准备生产环境

yum -y install \
 gcc \
 gcc-c++ \
 make \
 pcre-devel \
 zlib-devel

useradd -M -s /sbin/nologin nginx		##添加nginx用户
tar zxvf nginx-1.12.2.tar.gz 
cd nginx-1.12.2/
./configure \
--prefix=/usr/local/nginx \		#指定安装目录
--user=nginx \						#指定程序用户
--group=nginx \					#指定程序属组
--with-http_stub_status_module			#将状态模块启用

make && make install		##编译安装
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
nginx -t		##配置文件语法检查
nginx    	##启动服务
netstat -anpt | grep nginx
vi /etc/init.d/nginx         ##创建可执行脚本

#!/bin/bash
# chkconfig: 35 90 20
# description: Nginx http server
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
        start)
                $PROG
                ;;
        stop)
                kill -s QUIT $(cat $PIDF)
                ;;
        restart)
                $0 stop
                $0 start
                ;;
        reload)
                kill -s HUP $(cat $PIDF)
                ;;
        *)
                echo "Usage: $0 {start|stop|restart|reload}"
                exit 1
esac
exit 0

chmod +x /etc/init.d/nginx
chkconfig --add nginx

修改配置文件

vi /usr/local/nginx/conf/nginx.conf
user nginx nginx;		#程序用户
worker_processes  4;	#进程号
error_log logs/error.log info;		#开启记录错误日志
pid        logs/nginx.pid;	#开启进程指定进程文件
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;
##开启记录全局访问日志(可不开,单独开启主机访问日志也可)
server {
   
charset utf-8;    #主机设置开启支持utf-8编码
access_log  logs/host.access.log  main;	#开启主机访问日志
	   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值