您的位置:

CentOS安装Nginx - 架设Web服务器

一、安装Nginx

Nginx是一款轻量级高性能的Web服务器和反向代理服务器,被广泛使用于互联网领域,特别是在高并发的情况下。在CentOS中安装Nginx非常简单,只需要执行以下命令:

yum install nginx

执行完上述安装命令后,Nginx就已经安装并运行了。可以使用以下命令启动、停止、重启、重新加载配置:

systemctl start nginx       #启动Nginx
systemctl stop nginx        #停止Nginx
systemctl restart nginx     #重启Nginx
systemctl reload nginx      #重新加载Nginx配置(不会中断正在进行的连接)

二、设置Nginx的基本配置

默认情况下,Nginx的配置文件路径为/etc/nginx/nginx.conf。在该配置文件中可以配置Nginx的基本设置,比如监听的端口、访问日志等。打开配置文件后,可以进行一些基本设置:

worker_processes  1;         #指定工作进程数
error_log  /var/log/nginx/error.log warn;    #错误日志
pid        /var/run/nginx.pid;                #PID文件保存路径
                                                                                           
events {
    worker_connections  1024;
}                                   #设置work连接数
                                       
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;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}                                   #http的全局配置

三、配置虚拟主机

虚拟主机,常见于Web服务器,允许在同一台服务器上运行多个网站,每个网站有自己的域名或IP地址。虚拟主机的配置,需要在Nginx的配置文件/etc/nginx/nginx.conf中进行,可以在文件底部添加下面的代码:

    server {
        listen       80;
        server_name  example.com;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    }

上述代码会为example.com域名创建一个虚拟主机,并且指定该虚拟主机使用的端口是80。其中,location指令定义了Web服务器如何响应URI,root指令指定了Web服务器文件的根目录。

四、设置HTTPS

使用HTTPS可以保证网站和用户之间的数据传输是安全的。Nginx支持HTTPS,可以使用以下命令进行安装:

yum install -y nginx openssl

安装完以上两个软件包后,就可以进行HTTPS配置了。首先需要生成SSL证书文件,在命令行中执行:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/cert.key -out /etc/nginx/cert.crt

执行完上述命令后,会在/etc/nginx目录下生成一个cert.key和cert.crt文件,接下来在Nginx的配置文件/etc/nginx/nginx.conf中添加以下内容:

server {
        listen       443 ssl;
        server_name  example.com;

        ssl_certificate /etc/nginx/cert.crt;
        ssl_certificate_key /etc/nginx/cert.key;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    }

注意,需要将server监听端口改为443,并添加ssl指令来开启HTTPS服务。其中,ssl_certificate指令指定证书文件位置,ssl_certificate_key指令指定私钥文件位置。

五、启用Nginx缓存

启用Nginx缓存可以提高网站性能,大大减少后端服务器的压力,同时可以提供更快的访问速度。Nginx缓存可以设置为三种模式:fastcgi、proxy和memcached。下面以proxy模式为例:

upstream myserver {
   server backend1.example.com;
   server backend2.example.com;
}
server {
        listen       80;
        server_name  example.com;

        location / {
            proxy_pass  http://myserver;
            proxy_cache_bypass $http_pragma;
            proxy_cache_revalidate on;
            proxy_cache_valid 200 302 10m;
            proxy_cache_valid 404 1m;
            proxy_cache_key "$host$request_uri";
            proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
            proxy_temp_path /var/cache/nginx/temp;
            add_header X-Proxy-Cache $upstream_cache_status;
        }
    }

上述代码使用了proxy模式,创建了一个名称为myserver的upstream,指定了多个后端服务器。然后在location指令中引用myserver,其后设置缓存的相关指令。

六、启用Nginx负载均衡

Nginx可以使用负载均衡来提高网站并发量,同时也可以将负载均衡作为一种扩展手段来进行服务器架构的设计。Nginx提供了多种负载均衡算法,如轮询、IP哈希、加权轮询等,在使用时需要根据实际情况进行选择。以下是一个简单的Nginx负载均衡配置示例:

upstream myserver {
   server backend1.example.com weight=5;
   server backend2.example.com;
   server backend3.example.com;
}
server {
        listen       80;
        server_name  example.com;

        location / {
            proxy_pass  http://myserver;
        }
    }

上述代码定义了一个名为myserver的upstream,其中backend1的权重为5,backend2和backend3的权重均为1。在location指令中引用myserver即可实现负载均衡。

七、总结

本文主要介绍了在CentOS中安装Nginx,以及如何进行基本配置、设置虚拟主机、启用HTTPS、启用Nginx缓存、启用Nginx负载均衡等。通过本文的介绍,您应该已经对Nginx有了更深入的了解,能够更好地进行Web服务器的架设和性能优化。