linux安装nginx-1.16.1、nginx进行站点负载均衡、nginx配合mysql进行负载均衡

 

备注:如果只是安装nginx,那么只需要按以下的教程做到第13点即可;后面的配置静态资源和负载均衡,属于后加的内容,不需要的朋友可直接路过忽略

 

1、安装gcc

2、先查看系统有没有已经安装了gcc,查看命令:gcc -v

3、一般阿里云的centOS7里面是都有的,没有安装的话会提示命令找不到

安装命令:yum -y install gcc

4、pcre、pcre-devel安装

pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。

安装命令:yum install -y pcre pcre-devel

5、Zlib安装

zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip,所以需要安装

安装命令:yum install -y zlib zlib-devel

6、安装openssl

安装命令:yum install -y openssl openssl-devel

7、下载nginx安装包

官方下载地址

8、上传安装包到/usr/local目录,并解压

解压命令:tar -zxvf nginx-1.16.1.tar.gz

9、切换到/usr/local/nginx-1.16.1目录下,执行三个命令:

./configure

make

make install

10、切换到/usr/local/nginx/con目录,配置nginx的配置文件nginx.conf文件,主要也就是端口(在“软件安装包”中,已经有一个nginx.conf的文件,可直接使用该文件,并根据自己的域名情况进行修改使用)

11、启动nginx服务,切换目录到/usr/local/nginx/sbin下面,输入以下命令

启动命令:./nginx

重启命令:./nginx -s restart

停止命令:./nginx -s stop

12、查看nginx是否启动成功

查看命令:ps -ef | grep nginx

 

13、安装各种常用的nginx模块

mv /usr/local/nginx-1.16.1 /usr/local/nginx

cd /usr/local/nginx/sbin

./nginx -s stop

 

进入到nginx源码目录:

cd /usr/local/nginx/nginx-1.16.1

 

nginx安装依赖和插件包(执行以下一长串命令)

./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_gzip_static_module --http-client-body-temp-path=/usr/local/nginx/tmp/client/ --http-proxy-temp-path=/usr/local/nginx/tmp/proxy/ --http-fastcgi-temp-path=/usr/local/nginx/tmp/fcgi/ --with-poll_module --with-file-aio --with-http_realip_module --with-http_addition_module --with-http_addition_module --with-http_random_index_module --with-http_stub_status_module --http-uwsgi-temp-path=/usr/local/nginx/uwsgi_temp --http-scgi-temp-path=/usr/local/nginx/scgi_temp --with-stream

 

编译:make

覆盖nginx文件:

cp /usr/local/nginx/nginx-1.16.1/objs/nginx /usr/local/nginx/sbin/

/usr/sbin/groupadd -f www

/usr/sbin/useradd -g www www

mkdir /usr/local/nginx/tmp

mkdir /usr/local/nginx/client

 

 

14、Nginx配置映射静态资源

将以下内容粘贴至nginx.conf:

server{

listen 80; #监听80端口

server_name 123test.com www.123test.com; #映射的外网访问路径

charset utf-8;

 location / {   

  root  /usr/local/nginx/html/static_login; #html访问路径      

  index login.html; #html文件名称    

     }

}

15、设置nginx开机自启动

centos 7以上是用Systemd进行系统初始化的,Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度。关于Systemd的详情介绍在这里。

Systemd服务文件以.service结尾,比如现在要建立nginx为开机启动,如果用yum install命令安装的,yum命令会自动创建nginx.service文件,直接用命令:

systemcel enable nginx.service

设置开机启动即可。

在这里我是用源码编译安装的,所以要手动创建nginx.service服务文件。

开机没有登陆情况下就能运行的程序,存在系统服务(system)里,

即:/lib/systemd/system/

编辑 系统服务目录里创建nginx.service文件

 

cd /lib/systemd/system/

vim nginx.service

复制以下内容粘贴到文本中


 

[Unit]

Description=nginx

After=network.target



[Service]

Type=forking

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/usr/local/nginx/sbin/nginx -s reload

ExecStop=/usr/local/nginx/sbin/nginx -s quit

PrivateTmp=true



[Install]

WantedBy=multi-user.target

 

保存退出。按 Esc 输入  :wq  回车即可

 

说明:

Description:描述服务

After:描述服务类别

[Service]服务运行参数的设置

Type=forking是后台运行的形式

ExecStart为服务的具体运行命令

ExecReload为重启命令

ExecStop为停止命令

PrivateTmp=True表示给服务分配独立的临时空间

注意:[Service]的启动、重启、停止命令全部要求使用绝对路径

[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

 

重新centos后,nginx就自动启动了

 

nginx其他命令:

systemctl start nginx.service (启动nginx服务)

systemctl stop nginx.service (停止nginx服务)

systemctl enable nginx.service (设置开机自启动)

systemctl disable nginx.service (停止开机自启动)

systemctl status nginx.service (查看服务当前状态)

systemctl restart nginx.service (重新启动服务)

systemctl list-units --type=service (查看所有已启动的服务)

 

16、配置站点负载均衡

 

upstream 123test {
ip_hash;
server 127.0.0.1:8040 weight=5;
server 127.0.0.1:8040 weight=2;
}


server{
listen 80;
listen 443 ssl;
server_name www.123test.com;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
if ($request_method = 'OPTIONS'){
return 204;
}



#监听访问开始
location /index.php {
return 403;
}

location /public {
return 403;
}
#监听访问结束

location / {
proxy_pass http://123test;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
}
}

 

 

17、配置mysql使用nginx进行负载均衡

stream {

    server {

       listen 3305;

       proxy_pass db;    

    }

    upstream db {

       server 127.0.0.1:3305 weight=50;

       server 127.0.0.1:3306 weight=50;

    }

}

备注:stream 应该是在与http同级,即不能放在http里面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值