【Nginx 网络服务】 | 您所在的位置:网站首页 › nginx双主 › 【Nginx 网络服务】 |
目录
一、Nginx和Apache的优点和缺点二、编译安装Nginx服务1.关闭防火墙,将安装nginx所需软件包传到/opt目录下2.安装依赖包3.创建运行用户、组4.编译安装Nginx5.检查、启动、重启、停止 nqinx服务
三、认识Nginx服务的主配置文件 nginx.conf1、系统文件支持数量2.全局配置3.I/O 事件配置4.HTTP 配置
四、访问状态统计配置五、基于授权的访问控制1.生成用户密码认证文件
六、基于域名的 Nginx 虚拟主机1.为虚拟主机提供域名解析2.为虚拟主机准备网页文档3.修改Nginx的配置文件
七、安装 MySQL 服务1、安装Mysql环境依赖包2、创建运行用户3、编译安装4.创建mysql用户5.修改mysql 配置文件6、.更改mysql安装目录和配置文件的属主属组7.设置路径环境变量8.初始化数据库9.添加mysqld系统服务10.修改mysql 的登录密码11.授权远程登录
八、安装配置 PHP 解析环境1、安装环境依赖包2、编译安装3、路径优化4、调整PHP配置文件5、启动php-fpm6、配置 Nginx 支持 PHP 解析7、验证PHP 测试页8、验证数据库工作是否正常
九、部署 Discuz!社区论坛 Web 应用1、社区论坛2、博客论坛
一、Nginx和Apache的优点和缺点
Nginx相对于Apache的优点: 轻量级,同样是 web 服务,比Apache 占用更少的内存及资源,高并发,Nginx 处理请求是异步非塞的,而Apache 则是阻塞型的,在高并发下Nginx 能保持低资源低消耗高性能;高度模块化的设计 编写模块相对简单;社区活跃,各种高性能模块出品迅速 Apache 相对于Nginx 的优点: rewrite,比Nginx 的rewrite强大; 模块超多,基本想到的都可以找到; 少bug,Nginx 的bug 相对较多; 超稳定存在就是理由,一般来说,需要性能的web 服务,用Nginx 。如果不需要性能只求稳定,那就Apache。Nginx处理动态请求是弱项,一般动态请求要Apache去做,Nginx只适处理静态网页或反向代理。 二、编译安装Nginx服务 1.关闭防火墙,将安装nginx所需软件包传到/opt目录下 systemctl stop firewalld systemctl disable firewalld setenforce 0 2.安装依赖包#nginx的配置及运行需要pcre、zlib、openss1等软件包的支持,因此需要安装这些软件的开发包,以便提供相应的库和头文件 yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make 3.创建运行用户、组(Ngnx 服务程序默认以 obody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限) useradd -M -s /sbin/nologin nginx 4.编译安装Nginx cd /opt tar zxvf nginx-1.24.0.tar.gz -C /opt/ #解压文件 cd nginx-1.24.0/ cd nginx-1.12.0/ ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --with-http_stub_status_module make && make install检查配置文件是否配置正确 开启服务 kill 命令来进行停止 kill -15 #默认 kill -9 #强杀 kill -3 #优雅的杀除,可以保存日志,杀除后 kill -1 #重载配置文件 kill -0 #检查进程是否在运行查看进程号 master process #管理工作进程 worker process #处理用户请求,读取配置文件新版本升级: tar -zxvf nginx-1.xx.xx.tar.gz #解压要更新安装包 cd nginx-1.xx.xx ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --with-http_stub_status_module --with-http_ssl_module make mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old cp objs/nginx /usr/local/nginx/sbin/nginx make upgrade #要保证当前 nginx 进程是通过 /usr/local/nginx/sbin/nginx 启动的,而不是通过查找环境变量中那个 nginx 命令启动的 #或者先 killall nginx ,再/usr/local/nginx/sbin/nginx6、添加 Nginx 系统服务 vim /lib/systemd/system/nginx.service [Unit] Description=nginx After=network.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target加权限 chmod 754 /lib/systemd/system/nginx.service重新启动服务,开启开机自动启动 1、全局块:全局配置,对全局生效; 2、events块:配置影响 Nginx 服务器与用户的网络连接; 3、http块:配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置; 4、server块:配置虚拟主机的相关参数,一个 http 块中可以有多个 server 块; 5、location块:用于配置匹配的 uri ; 6、upstream:配置后端服务器具体地址,负载均衡配置不可或缺的部分。 1、系统文件支持数量 ulimit -n 60000 #临时修改,关机重启后会恢复默认值永久修改工作进程 设置完后要重启主机才能生效 reboot vim /etc/security/limits.conf #进入添加进程最大可以打开的文件数如提高每个进程的连接数还需执行“ulimit -n 65535”命令临时修改本地每个进程可以同时打开的最大文件数。 #在Linux平台上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。 #可使用ulimit -a命令查看系统允许当前用户进程打开的文件数限制。 #epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著的减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。 #worker_processes的值和work_connections的值决定了最大并发数量,最大并发数计算方式为:worker_processesworker_connections。==但在反向代理场景中计算方法不同,因为nginx既要维持和客户端的连接,又要维持和后端服务器的连接,因此处理一次连接要占用2个连接,==所以最大并发数计算方式为:worker_processesworker_connections/2 日志格式设定: $remote_addr与$http_x_forwarded_for用以记录客户端的ip地址; $remote_user:用来记录客户端用户名称; $time_local: 用来记录访问时间与时区; $request: 用来记录请求的url与http协议; $status: 用来记录请求状态;成功是200, $body_bytes_sent :记录发送给客户端文件主体内容大小; $http_referer:用来记录从哪个页面链接访问过来的; $http_user_agent:记录客户浏览器的相关信息; 通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。 location常见配置指令,root、alias、proxy_pass root(根路径配置):root /var/www/html 请求www.kgc.com/test/1.html,会返回文件/var/www/html/test/1.html alias(别名配置):alias /var/www/html 请求www.kgc.com/test/1.html,会返回文件/var/www/html/1.html proxy_pass(反向代理配置)nginx.conf 里面添加一个内容 1.先使用命令/usr/local/nginx/sbin/nginx -V 查看已安装的 Nginx 是否包含 HTTP_STUB_STATUS 模块 cat /opt/nginx-1.24.0/auto/options | grep YES #可查看 nginx 已安装的所有模块想要关闭模块可以使用 configure --without-http-cache添加 stub_status 配置
查看并发量 修改后重新启动服务 注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧 4.创建mysql用户 useradd -M -s /sbin/nologin mysql 5.修改mysql 配置文件 vim /etc/my.cnf #删除原配置项,再重新添加下面内容 [client] #客户端设置 port = 3306 socket = /usr/local/mysql/mysql.sock [mysql] #服务端设置 port = 3306 socket = /usr/local/mysql/mysql.sock auto-rehash #开启自动补全功能 [mysqld] #服务全局设置 user = mysql #设置管理用户 basedir=/usr/local/mysql #指定数据库的安装目录 datadir=/usr/local/mysql/data #指定数据库文件的存储路径 port = 3306 #指定端口 character-set-server=utf8 #设置服务器字符集编码格式为utf8 pid-file = /usr/local/mysql/mysqld.pid #指定pid 进程文件路径 socket=/usr/local/mysql/mysql.sock #指定数据库连接文件 bind-address = 0.0.0.0 #设置监听地址,0.0.0.0代表允许所有,如允许多个IP需空格隔开 skip-name-resolve #禁用DNS解析 max_connections=2048 #设置mysql的最大连接数 default-storage-engine=INNODB #指定默认存储引擎 max_allowed_packet=16M #设置数据库接收的数据包大小的最大值 server-id = 1 #指定服务ID号 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES [client] port = 3306 socket=/usr/local/mysql/mysql.sock [mysql] port = 3306 socket = /usr/local/mysql/mysql.sock auto-rehash [mysqld] user = mysql basedir=/usr/local/mysql datadir=/usr/local/mysql/data port = 3306 character-set-server=utf8 pid-file = /usr/local/mysql/mysqld.pid socket=/usr/local/mysql/mysql.sock bind-address = 0.0.0.0 skip-name-resolve max_connections=2048 default-storage-engine=INNODB max_allowed_packet=16M server-id = 1 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES 6、.更改mysql安装目录和配置文件的属主属组 chown -R mysql:mysql /usr/local/mysql/ chown mysql:mysql /etc/my.cnf 7.设置路径环境变量 echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile source /etc/profile #重新加载环境变量字号4 cd /opt tar jxvf php-7.1.10.tar.bz2 cd php-7.1.10 ./configure \ --prefix=/usr/local/php \ --with-mysql-sock=/usr/local/mysql/mysql.sock \ --with-mysqli \ --with-zlib \ --with-curl \ --with-gd \ --with-jpeg-dir \ --with-png-dir \ --with-freetype-dir \ --with-openssl \ --enable-fpm \ --enable-mbstring \ --enable-xml \ --enable-session \ --enable-ftp \ --enable-pdo \ --enable-tokenizer \ --enable-zip make && make install 3、路径优化 ln -s /usr/local/php/bin/* /usr/local/bin/ ln -s /usr/local/php/sbin/* /usr/local/sbin/#调整主配置文件: cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini vim /usr/local/php/lib/php.ini --1170行--修改 mysqli.default_socket = /usr/local/mysql/mysql.sock --939行--取消注释,修改 date.timezone = Asia/Shanghai php -m #验证安装的模块调整进程服务配置文件: cd /usr/local/php/etc/ cp php-fpm.conf.default php-fpm.conf vim php-fpm.conf --17行--去掉";"注释 pid = run/php-fpm.pid
调整扩展配置文件: cd /usr/local/php/etc/php-fpm.d/ cp www.conf.default www.conf查看端口有没有打开
使用浏览器来验证 浏览器访问 使用浏览器访问 出现这个问题要加入权限 使用全新安装 设置数据的密码和管理员密码 论坛安装完成 解压和加入权限 创建新的数据库 使用浏览器查看 使用之前创建的账户和密码 创建成功 |
CopyRight 2018-2019 实验室设备网 版权所有 |