安装最常用的Nginx服务
本文使用 阿里云服务器 Centos 7 Linux 服务器。
Nginx介绍
Nginx是一款使用C语言开发的高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。
Nginx的应用场景
- http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
- 虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
- 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
准备工作
修改防火墙规则,开放80/443端口。(记得重启防火墙)
端口设置可参考本系列教程 :Centos7 yum安装配置Web服务器系列(一)小谈防火墙问题
通过yum命令安装Nginx
1)添加Nginx存储库
要添加CentOS 7 EPEL仓库,请打开终端并使用以下命令:
yum install epel-release
2)安装
yum install nginx
3)启动nginx并设置开机启动
systemctl start nginx
systemctl enable nginx
4)测试访问,出现下面页面则说明搭建成功。
5)配置Nginx
Nginx的主配置文件:
1. vim /etc/nginx/nginx.conf
配置参数详情请移步 Nginx httpd.conf文件配置参数说明 查看
Nginx配置支持PHP:
在 /etc/nginx/conf.d 目录下存放着多个配置文件 这些配置项会在Nginx运行时加载到主配置项目中(类似虚拟机)
Nginx是通过php-fpm来通讯的,所以需要监听9000端口。
在这个目录下生成一个自己的配置文件例如 admin.conf
vim /etc/nginx/conf.d/admin.conf
写入以下内容:
server {
listen 80; #端口
server_name admin1.test.com admin.test.com ; # 域名
root /var/www/card/public; # 网站根目录
index index.php index.html index.htm;
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last; #主要配置隐藏url中index.php
break;
}
}
location ~ \.php$ {
#root /var/www/card/public;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Nginx反向代理配置:
upstream test{
server 192.168.68.43:8080 weight=1;
server 192.168.68.44:8080 weight=1;
}
server {
listen 80;
server_name porxy.zxy.com;
location / {
proxy_pass #这里可直接写IP地址进行配置 如果需要配置负载均衡 可以使用 http://test 和upstream名称一致
#以下是一些反向代理的配置可删除
proxy_redirect off;
proxy_set_header Host $host; #指定请求的服务器的域名和端口号
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
client_max_body_size 10m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数
proxy_connect_timeout 300; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 300; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 300; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传
}
}