一、简介
Nginx是一个高性能的开源Web服务器软件,也可以用作反向代理、负载均衡等其他用途。以下是关于Nginx的一些重要特点和用途,以及为什么要使用Nginx的原因:
高性能和高并发能力:Nginx采用了异步非阻塞的事件驱动架构,能够处理大量并发请求,并具有较低的内存消耗。这使得它能够处理高流量和高负载的网站和应用程序,提供出色的性能和响应速度。
负载均衡:Nginx具有内置的负载均衡功能,可以将流量分发到多个后端服务器,以提高系统的可靠性和可扩展性。通过负载均衡,可以确保每个服务器能够平均分担负荷,避免单个服务器的过载问题。
反向代理:Nginx可以作为反向代理服务器,接收客户端请求,并将其转发到被代理的后端服务器。反向代理可以隐藏真实的服务器IP地址,提供更高的安全性,并在多个后端服务器之间均衡负载。
静态文件服务:Nginx通过快速高效地提供静态文件服务,可以显著减轻后端应用服务器的负载。它可以处理静态文件的请求,如HTML、CSS、JavaScript、图片等,减少了额外的服务器资源消耗。
缓存功能:Nginx支持缓存静态和动态内容,可以缓存经常访问的资源,提高用户的访问速度,并减轻后端服务器的负载。这对于处理大量的并发请求和频繁访问的内容非常有用。
可扩展性和模块化:Nginx具有丰富的模块化架构,使其可以根据需要进行扩展和定制。通过添加适当的模块,可以实现额外的功能和扩展,满足不同的需求。
二、安装
本次安装方式使用的是源码安装:
# 关闭防火墙和内核安全机制
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i 's/enforcing/disabled/' /etc/selinux/config
# 安装所需的工具和依赖
[root@localhost ~]# yum -y install vim wget net-tools gcc make openssl openssl-devel pcre-devel zlib zlib-devel
# 下载并解压缩 Nginx(Ng版本可以自行选择)
[root@localhost ~]# wget http://nginx.org/download/nginx-1.9.12.tar.gz
[root@localhost ~]# tar zxf nginx-1.9.12.tar.gz
# 进入解压后的 Nginx 目录
[root@localhost ~]# cd nginx-1.9.12
# 配置和安装 Nginx
[root@localhost ~]# ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module
[root@localhost ~]# make && make install
# 启动 Nginx 服务
[root@localhost ~]# /usr/local/nginx/sbin/nginx
# 查看进程
[root@localhost ~]# netstat -tnpl
[root@localhost ~]# ps -ef | grep nginx
/usr/local/nginx/sbin/nginx:启动 Nginx 服务。这将启动 Nginx Web 服务器。
ps -ef | grep nginx:使用 ps 和 grep 命令查找正在运行的 Nginx 进程。
netstat -tnpl:使用 netstat 命令显示正在监听的网络端口和相关进程。
IP+端口号(默认80)访问:
能看到如上信息就表示Ng已经安装成功了。
三、反向代理配置
找到nginx.conf配置文件,在里面添加一行:
# 在http模块里面添加一行
include /etc/nginx/conf.d/*.conf;
在Nginx的配置文件中,include /etc/nginx/conf.d/*.conf;是一个指令,用于包含指定目录下的所有.conf文件。
具体解释如下:
include指令:在Nginx配置文件中,include指令用于将其他配置文件或配置片段包含到当前配置文件中。
/etc/nginx/conf.d/:这是一个目录路径,表示Nginx配置文件所在的目录。通常,该目录用于存放要包含的子配置文件。
.conf:这是一个通配符,表示匹配目录下所有以.conf为扩展名的文件。因此,include /etc/nginx/conf.d/.conf;指示Nginx包含该目录下的所有.conf文件
-
mkdir -p /etc/nginx/conf.d
-
cd /etc/nginx/conf.d
-
vim kqkq.test.conf
只是做个域名而已,如果没有什么特殊要求,直接复制下面的模板就行:
[root@oa-e9prd-ssl conf]# cat nginx.conf
user root;
worker_processes 8;
error_log logs/error.log;
pid logs/nginx.pid;
events {
worker_connections 20480;
}
http {
include 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 logs/access.log main;
sendfile on;
keepalive_timeout 65;
tcp_nopush on;
tcp_nodelay on;
gzip on;
gzip_http_version 1.0;
gzip_comp_level 9;
gzip_min_length 1024;
gzip_proxied any;
gzip_vary on;
gzip_disable msie6;
gzip_buffers 64 8k;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php application/javascript application/json;
client_body_timeout 300;
client_body_in_single_buffer on;
client_body_buffer_size 300m;
client_header_buffer_size 8k;
client_header_timeout 300;
client_max_body_size 300m;
large_client_header_buffers 4 32k;
server {
listen 443 ssl;
server_name oa.my.com;
ssl_certificate /opt/nginx/conf/cert/_.my.com_chain.crt; #证书公钥
ssl_certificate_key /opt/nginx/conf/cert/my.com(Wildcard).key; #证书私钥
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!3DES:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://172.198.0.209:30501;
}
}
}
[root@oa-e9prd-ssl conf]
注意:复制此示例模板需要修改以下三个地方:
域名:把原有的my.com替换为自己的域名。
SSL证书:证书名称和路径按自己实际情况修改。
IP+端口:把原有的172.198.0.209:30501替换为自己想要代理的IP+端口。
完事了记得重启:/usr/local/nginx/sbin/nginx -s reload