Centos7 Nginx+LAMP

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos7 Nginx+LAMP相关的知识,希望对你有一定的参考价值。

LAMP平台概述

LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。LAMP是一个缩写词,具体包括Linux操作系统、Apache网站服务器、mysql数据库服务器、php(或Perl、Python)网页编程语言

LAMP平台的构成组件

Linux操作系统:作为LAMP架构的基础,提供用于支撑Web站点的d操作系统,能够与其他三个组件提供更好的稳定性、兼容性(AMP组件也支持Windows、UNIX等操作系统)

1、Apache网站服务器:作为LAMP架构的前端,是一款功能强大、稳定性好的Web服务器程序,该服务器直接面向用户提供网站访问,发送网
页、图片等文件内容。

2、MySQL数据库服务器:作为LAMP架构的后端,是一款流行的开源关系数据库系统。在企业网站、业务系统等应用中,各种账户信息、产品信息、客户资料、业务数据等可以存储到MySQL数据库,其它程序可以通过MySQL语句来查询、更改这些信息。

3、PHP、Perl、Python网页编程语言:作为三种开发动态网页的编程语言,负责解释动态网页文件,并提供Web应用程序的开发和运行环境。其中PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可以嵌入到html中,尤其适合于Web应用开发。

LAMP平台的应用优势

1、成本低廉:构成组件都是开放源代码的软件,可以自由获得和免费使用,在技术上和许可证方面没有太严格的限制,大大降低企业成本。

2、可定制:拥有大量的额外组件和可扩展功能的模块,能够满足大部分企业应用的定制需求,甚至可以自行开发、添加新的功能。

3、方便易用:PHP、Perl等属于解释性语言,开发的各种Web程序不需要编译,方便进行移植使用。整套的网站项目程序,通常只要复制到网站目录下,就可以直接访问。

4、易于开发:基于LAMP平台的动态网站中,页面代码简洁,与HTML标记语言的结合度非常好,即使是非专业的程序员也能够轻松读懂乃至修改网页代码。

5、安全和稳定:得益于开源的优势,大量的程序员在关注并持续改进LAMP平台的各个组件,发现的问题能够很快得到解决。LAMP架构已经经历了数十年的长期验证,在安全性和稳定性方面表现得非常优秀。构建LAMP时,各组件的安装顺序依次为Linux、Apache、MySQL、PHP,其中Apache和MySQL的安装并没有严格的顺序,而PHP环境的安装一般放到最后,负责沟通Web服务器和数据库系统以协同工作。

实验环境

系统版本:CentOS Linux release 7.3.1611 (Core)x64

MySQL版本:

Apache版本:Apache/2.4.6 (yum安装)

nginx版本:Nginx1.14.0

PHP版本:PHP 7.0.32

关闭防火墙并禁止开机自启

systemctl stop firewalld.service
systemctl disable firewalld

关闭selinux

sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g‘ /etc/sysconfig/selinux

重启 reboot

实验架构

技术分享图片
注:如果服务器资源紧张nginx和apache可以在同一台服务器部署,但是为了安全个人建议分开部署!

安装反向代理nginx

1、修改主机名

vi /etc/hostname

nginx.wfy.com

2、域名绑定IP

vi /etc/hosts
技术分享图片
注:如果不确定是否修改成功,可以reboot重启验证!

3、安装nginx依赖环境包

yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
技术分享图片

4、安装nginx

1)官网下载nginx1.14.0压缩包

wget https://nginx.org/download/nginx-1.14.0.tar.gz

2)解压nginx

tar xf nginx-1.14.0.tar.gz

3)进入解压目录

cd nginx-1.14.0

4)编译nginx

//默认编译

. /configure

//自定义编译选项

. /configure
--user=nginx
--group=nginx
--prefix=/usr/local/nginx
--conf-path=/usr/local/nginx/conf/nginx.conf
--pid-path=/usr/local/nginx/conf/nginx.pid
--lock-path=/var/lock/nginx.lock
--error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log
--with-http_gzip_static_module
--http-client-body-temp-path=/var/temp/nginx/client
--http-proxy-temp-path=/var/temp/nginx/proxy
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi
--http-scgi-temp-path=/var/temp/nginx/scgi
--with-http_ssl_module
注:以上为默认编译方式和具体指定的编译方式,任选以上这两种之一即可。--with-http_ssl_module这个选项是https的重要模块必须安装。

//本文编译方式

./configure
--prefix=/usr/local/nginx
--with-http_stub_status_module
--with-http_ssl_module
技术分享图片
注:以上--with-http_ssl_module这个模块是https的关键可以根据业务需求使用https协议或者http协议。我这里使用默认http协议!

5)安装nginx

make && make install
技术分享图片

5、启动nginx

1)编辑nginx启动脚本

vi /etc/init.d/nginx

#! /bin/bash
#chkconfig: - 85 15
PATH=/usr/local/nginx
NAME=nginx
DAEMON=$PATH/sbin/$NAME
CONFIGFILE=$PATH/conf/$NAME.conf
PIDFILE=$PATH/logs/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
set -e
[ -x "$DAEMON" ] || exit 0
do_start() {
$DAEMON -c $CONFIGFILE || echo -e "33[32m nginx already running 33[0m"
}
do_stop() {
$DAEMON -s stop || echo -e "33[31m nginx not running 33[0m"
}
do_reload() {
$DAEMON -s reload || echo -e "33[31m nginx can‘t reload 33[0m"
}
case "$1" in
start)
echo -e "33[32m $NAME running 33[0m"
do_start
;;
stop)
echo -e "33[31m $NAME stoping 33[0m"
do_stop
;;
reload|graceful)
echo -e "33[32m $NAME configuration...33[0m"
do_reload
;;
restart)
echo -e "33[32m Restarting : $NAME 33[0m"
do_stop
do_start
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2
exit 3
;;
esac
exit 0

注:切记编辑完启动脚本以后一定要给予执行权限,不然启动无效!

2)设置启动文件执行权限

chmod +x /etc/init.d/nginx

3)启动nginx

//设置开机自启

chkconfig nginx on

//启动nginx

/etc/init.d/nginx start

//重启nginx

/etc/init.d/nginx restart

//查看nginx服务启动状态

chkconfig --list

//查看nginx服务是否开启

netstat -antupl | grep nginx

6、环境变量

1)编辑nginx环境变量

vi /etc/profile

export PATH=$PATH:/usr/local/nginx/sbin

2)环境变量生效

source /etc/profile

7、访问测试

访问地址:http://192.168.152.170/

8、配置nginx反向代理

1)备份nginx配置文件

cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.backup

2)修改配置文件

vi /usr/local/nginx/conf/nginx.conf

#设置低权限用户,为了安全而设置的
user nobody;
#工作衍生进程数一般不大于cpu核数
worker_processes 2;
#设置错误文件存放路径
error_log logs/error.log;
error_log logs/error.log notice;
error_log logs/error.log info;
#设置pid存放路径(pid是控制系统中重要文件)
pid logs/nginx.pid;
#设置最大连接数
events{
worker_connections 1024;
}
http{
#主要是用于设置一组可以在proxy_pass和fastcgi_pass指令中使用额代理服务器,默认负载均衡方式为轮询
upstream tomcat {
#设置同一个cookie的两次/多次请求,请求的是同一台服务器
ip_hash;
#weight权重,默认1,权重越大访问概率越大,backup备用服务器,服务器全部崩溃后启动
server 192.168.152.168:80 weight=5;
#server localhost:8080 weight=5 backup;
}

#开启gzip压缩,开启后,访问网页会自动压缩
gzip on;

#指定服务器的名称和参数
server {
listen 80;
server_name localhost;

#设置字符         
#charset koi8-r; 

#location / 指用根目录做负载均衡         
location / { 
    proxy_pass http://tomcat;   
    proxy_redirect default; 
    #设置代理 
    proxy_set_header Host $host;       
    proxy_set_header X-Real-IP $remote_addr; 
} 

}
}

注:nginx反向代理本身就和nginx负载均衡是一回事,设置方式有两种,一种是直接写负载均衡,但是后端只挂一个服务器即可,如果是两个服务器那就是通过反向代理实现负载均衡;另一种注释负载均衡功能,直接写location来做代理即可!

以上是关于Centos7 Nginx+LAMP的主要内容,如果未能解决你的问题,请参考以下文章

centos7 LAMP环境安装zabbix3.0

centos7基础—LAMP架构部署

centos7.4编译安装lamp

基于CentOS7部署LNMP架构

CentOS7.4—构建Apache+Nginx动静分离

Linux(centos7)下gitlab使用自己安装的nginx配置