本服务器用的阿里云Centos7
nginx配置文件结构
安装好nginx后我们cd进/etc/nginx目录下,这里面有两个配置文件比较重要。
nginx.conf为nginx的主配置文件,conf.d为nginx的子配置文件
接着我们输入命令vim nginx.conf进入nginx.conf配置文件
- nginx.conf配置文件内容如下(#后面的是注释说明这里先看一遍了解)
user nginx;
#用户名称,默认nginx,可以不设置
worker_processes 1;
#Nginx进程数量 设置和cpu一样即可
error_log /var/log/nginx/error.log warn;
#错误日志存放目录
#如遇服务启动失败可cd到此目录用命令tail error.log输出此错误日志
pid /var/run/nginx.pid;
#进程pid存放位置
events {
worker_connections 1024; # 单个后台进程的最大并发数
}
http {
include /etc/nginx/mime.types; #文件扩展名与类型映射表
default_type application/octet-stream; #默认文件类型
#设置日志模式
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 /var/log/nginx/access.log main; #nginx访问日志存放位置
sendfile on; #开启高效传输模式
#tcp_nopush on; #减少网络报文段的数量
keepalive_timeout 65; #保持连接的时间,也叫超时时间
#gzip on; #开启gzip压缩
include /etc/nginx/conf.d/*.conf; #包含的子配置项位置和文件
-
conf.d配置文件
由于是文件夹,我们先cd进去再用vim编辑器进入此配置文件
server {
listen 80; #配置监听端口
server_name localhost; #配置域名
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html; #服务默认启动目录
index index.html index.htm; #默认访问文件
}
#error_page 404 /404.html; # 配置404页面
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html; #错误状态码的显示页面,配置后需要重启
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#location ~ /\.ht {
# deny all;
#}
}
安全组配置
到这里我们的nginx就已经可以提供服务了,接着我们只需设置安全组配置即可
如果你也是阿里云服务器的话切到控制台这里的安全组配置并进入配置规则页面
添加安全组规则
这里的端口范围为80/80,因为我们前面在default.conf里配置了监听端口为80
浏览器输入服务器地址输出如下说明nginx配置成功了。
因为浏览器默认监听的是80端口,我们可以为设置它监听其他端口试试,如81
设置好后 :wq保存退出vim编辑器
再用命令 nginx -s reload重启nginx服务
然后记得阿里云控制台新增规则即可
浏览器输入服务器地址输出如下说明我们监听不同端口配置完成。
使用域名设置虚拟主机
很简单还是在/etc/nginx/conf.d目录下vim进入default.conf配置文件修改server_name即可后面写的是你的域名
同样:wq保存退出编辑器然后nginx -s reload重启服务。访问域名即可出现welcome nginx的页面。
nginx反向代理
-
代理
代理简单来说,就是如果我们想做什么,但又想省去做事情中间的各种步骤和麻烦事,那么这时候就找一个中间人(代理服务器)帮我们达到想要的目的。
-
正向代理
我们用过的vpn它就是正向代理,因为国内的ip地址是访问不了国外的网站的,这时vpn也就是代理服务器就给我们客户端做了一层代理,把我们的ip变成国外的ip那我们就能顺利访问了。
像类似的还有游戏加速器等等,如果我们想玩外服的游戏通常也会用到它,通过转移修改节点使我们的延迟降低。
-
反向代理
和正向代理最根本的区别就是:正向代理中是给客户端做代理。反向代理中是给服务器做代理。
通过两张图最直观的表现就是,反向代理它只暴露了代理服务器,而真实的服务器其实是被隐藏的,服务器有很多台,客户端也不知道自己被分配到了哪台服务器中访问。
接下来讲下配置反向代理的配置
还是cd到/etc/nginx/conf.d下vim进入default.conf编辑
修改location 后面的地址就是你的域名
这样就配置完成了。因为我们在前面监听的是我的一个子域名http://nginx.heyaniu.com,然后在这里的操作就是将其反向代理到http://heyaniu.com这个网站上。设置完毕后:wq保存再用命令nginx -s reload重启nginx服务最后打开浏览器访问http://nginx.heyaniu.com,会发现我们成功反向代理到了http://heyaniu.com这个页面。
nginx负载均衡
负载均衡顾名思义就是平衡服务器压力将负载进行平衡,比如有1000个用户访问两台服务器,那最好就是两台各500的访问量这就是负载均衡。
负载均衡的配置也很简单。
配置upstream 后面名字随便起
这里我们配置两台服务,weight后面的数表示负载量。
假设同时有300次访问量,那第一台就会负载200次第二台就会负载100次。