Nginx:
配置文件路径:
yum安装:/etc/nginx/nginx.conf
源码包安装: /usr/local/nginx/conf/nginx.conf

源码安装
安装编译依赖环境

yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel perl-ExtUtils-Embed gd-devel

下载地址

wget http://nginx.org/download/nginx-1.20.1.tar.gz

创建nginx用户与组,以及临时目录

useradd -s /sbin/nologin -M nginx

解压nginx源码包,切换到该目录,开始安装前配置,及编译安装
也可以使用默认配置安装

./configure &&make &&make install

./configure \
--user=nginx \
--group=nginx \
--prefix=/usr/local/nginx \
--conf-path=/etc/nginx/nginx.conf \
--sbin-path=/usr/sbin/nginx \
--error-log-path=/var/log/nginx/nginx_error.log \
--http-log-path=/var/log/nginx/nginx_access.log \
--pid-path=/usr/local/nginx/run/nginx.pid \
--lock-path=/usr/local/nginx/locj/nginx \
--with-http_image_filter_module \
--with-pcre 
&&make &&make install

安装配置解析
./configure \
--user=nginx \

指定启动用户

--group=nginx \

指定启动用户组

--prefix=/usr/local/nginx \

指定安装目录

--conf-path=/etc/nginx/nginx.conf \

指定配置文件路径

--sbin-path=/usr/sbin/nginx \

指定nginx的sbin目录

--error-log-path=/var/log/nginx/nginx_error.log \

指定nginx错误日志存放路径

--http-log-path=/var/log/nginx/nginx_access.log \

指定nginx访问日志存放路径

--pid-path=/usr/local/nginx/run/nginx.pid \

指定nginx运行的pid存放路径

--lock-path=/usr/local/nginx/locj/nginx \
--with-http_image_filter_module \

下面的都是模块

--with pcre
--http-client-body-temp-path=/var/tmp/nginx/client/ \
--http-proxy-temp-path=/var/tmp/nginx/proxy \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi\
&&make &&make install

配置文件解析

配置文件中的变量:

日志格式,以下具体介绍变量

$remote_addr与$http_x_forwarded for #用以记录客户端的ip地址:
$remote_user #用来记录客户端用户名称:
$time_local #用来记录访问时间与时区:
$ request #用来记录请求的 url 与 http 协议:
$status #用来记录请求状态:成功是200;
$body_bytess ent #记录发送给客户端文件主体内容大小:
$http
referer #用来记录从那个页面链接访问过来的:

配置文件:
user nginx; #设置nginx服务的系统使用用户
worker_processes auto; #工作进程数,一般和cpu数保持一致
error_log /var/log/nginx/error.log; #错误日志
pid /run/nginx.pid; #存放nginx服务启动时的pid

events { # 如1个worker能同时允许多少连接
use epoll;

epoll 是多路复用IO(I/O Multiplexing)中的-一种方式,但是仅用于linux2 .6以上内核,可以大大提高nginx 的性能

worker_connections 1024;   #这是指 一个子进程最大允许连1024个连接

}

server {
listen 80; #监听端口
listen [::]:80; #IPV6监听端口
server_name test.com; #域名
root /usr/share/nginx/html; #网站根目录
index index.php index.thml index.htm #指定首页名称 用于支持php 或其他页面

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;            #这一句表示会把其他配置文件引进来

    error_page 404 /404.html;           #发生404错误时跳转到某个页面
    location = /404.html {
                    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
                    }

Nginx配置PHP参数

用于隐藏PHP后缀

location / {
try_files $uri $uri/ $uri.php?$args;
}


#用于支持PHP页面,调用php-fpm
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;
}

}

#PHP测试页面
<html>
<body>
<?php
echo "helllo word"
?>
</body>
</html>

反向代理

server {
listen 80;
server_name test.com
location / {
proxy_pass 10.0.0.1 #这里可以直接写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-Forward获取用户真实IP
client_max_body_size 10M; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128K; #缓冲区代理,用户端请求的最大字节数
proxy_connect_timeout 300; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 300; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 300; #连接成功后,后端服务器响应时间(代理接受超时)
}
}

允许及拒绝IP访问
在虚拟主机添加配置,该配置为拒绝10.0.0.1访问,并允许其他所有的访问
deny 10.0.0.1; #拒绝该IP访问
allow all; #允许所有访问