当前位置: 首页 > 编程日记 > 正文

Apache服务器部署(2)

签名CA证书

环境:server1:172.25.1.1    重置虚拟机       挂载yum源         

[root@server1 ~]# yum install mod_ssl -y                 //下载ssl模块

[root@server1 ~]# yum install crypto-utils -y             //安装加密软件

[root@server1 ~]# genkey www.westos.com           //对www.westos.com加密

https://mp.csdn.net/

这个过程一般比较慢,可以另外打开一个终端,并不断按键或者拖动鼠标

//填写证书内容

//点击Next进行下一步,会出现下面的内容

其中,

output will be written to /etc/pki/tls/certs/www.westos.com.crt           //证书

output key written to /etc/pki/tls/private/www.westos.com.key          //密钥

[root@server1 ~]# vim /etc/httpd/conf.d/ssl.conf                   //修改文件中的证书及密钥

SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt

SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key

[root@server1 ~]# systemctl restart httpd

此时进行网页浏览:

1、当密钥生成错误时,进入目录/etc/pki/tls/serts删除证书,进入目录cd /etc/pki/tls/private/删除密钥

2、若重新生成密钥后还是不能下载证书则进行Edit–>Advanced–>View并删除本机证书后即可下载。

网页重写

[root@server1 ~]# mkdir /var/www/virtual/westos.com/login -p
[root@server1 ~]# vim /var/www/virtual/westos.com/login/index.html


[root@server1 ~]# cd /etc/httpd/conf.d/
[root@server1 conf.d]# ls
autoindex.conf  README  ssl.conf  userdir.conf  welcome.conf
[root@server1 conf.d]# vim login.conf

<VirtualHost *:443>        
    ServerName login.westos.com            
    DocumentRoot "/var/www/virtual/westos.com/login/"            //默认发布目录,即网页文件存放位置

CustomLog "logs/login.log" combined                     //日志
    SSLEngine on             //开启加密

SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt                    //加密公钥
    SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key          //加密私钥
</VirtualHost>
<Directory "/var/www/virtual/westos.com/login/">
    Require all granted
</Directory>
<VirtualHost *:80>
    ServerName login.westos.com
    RewriteEngine on
    RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
</VirtualHost>

由于用户输网址时不会刻意添加加密访问字符‘https://’, 所以我们可以用代码强制将用户输入站点自动跳转到‘https://

    RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]

[root@server1 conf.d]# systemctl restart httpd

网页进行访问:

即使访问时没有添加https://但回车时还时会自动添加上

Apache支持PHP语言(已经支持了html)

[root@server1 conf]# pwd
/etc/httpd/conf

[root@server1 conf]# vim httpd.conf

[root@server1 conf]# vim /etc/httpd/conf/httpd.conf                 //配置文件中添加默认发布目录index.php

[root@server1 conf]# yum install php -y             //安装php

[root@server1 conf]# cd /var/www/html/
[root@server1 html]# mkdir cgi                 
[root@server1 html]# cd cgi/
[root@server1 cgi]# vim index.cgi                //写脚本

[root@server1 cgi]# chmod +x index.cgi             //给脚本加可执行权限
[root@server1 cgi]# ./index.cgi               //执行脚本
Content-type: text/html

Sun Mar 10 03:48:04 EDT 2019
[root@server1 cgi]# cd -
/var/www/html
[root@server1 html]# cd /etc/httpd/conf.d/
[root@server1 conf.d]# ls
autoindex.conf  php.conf  ssl.conf      welcome.conf
login.conf      README    userdir.conf
[root@server1 conf.d]# vim default.conf                         
[root@server1 conf.d]# vim /etc/httpd/conf/httpd.conf
[root@server1 conf.d]# systemctl restart httpd

此时在网页进行访问:

论坛的搭建

[root@server1 ~]# systemctl start httpd

[root@server1 ~]# yum install -y mariadb

[root@server1 ~]# yum install mariadb-server

[root@server1 ~]# systemctl start mariadb

下载论坛的安装包至/var/www/html

[root@server1 westos]# cd /var/www/html/
[root@server1 html]# ls
cgi  Discuz_X3.2_SC_UTF8.zip  index.html  index.php
[root@server1 html]# unzip Discuz_X3.2_SC_UTF8.zip
-bash: unzip: command not found
[root@server1 html]# yum intall -y unzip

[root@server1 html]# unzip Discuz_X3.2_SC_UTF8.zip

[root@server1 html]# ls

[root@server1 html]# chmod 777 /var/www/html/upload/ -R            //添加权限
[root@server1 html]# yum install -y php-mysql               //安装php-mysl

[root@server1 html]# systemctl restart httpd

在浏览器中输入http://172.25.1.1/upload/install/

点击index.php

[root@server1 html]# mysql_secure_installation

[root@server1 html]# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y                            //设置root密码,这里我设置的是redhat
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!

//后面都输入y

返回浏览器:

注意:填写表格时:数据库服务器为localhost 数据库名为root  数据库用户名为root  数据库密码为redhat  管理员密码为admin其他部分不变

此时点击admin.php

提交:

论坛搭建完成

正向代理及反向代理  

正向代理:

也就是在浏览器的网络连接属性框中,填写上一个代理服务器的ip和端口,即可通过代理服务器中转,去浏览网页。有时候网站对单个 IP 某些操作进行了次数限制。它是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。

反向代理(Reverse Proxy):

是指以代理服务器来接受 Internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。常用做网站服务器配置,可以提供从防火墙外部代理服务器到防火墙内部安全内容服务器的加密连接,隐藏后端真实服务器,更加安全。如 负载均衡 ,CDN 缓存都是反向代理。

http与https的区别

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。

为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密,实现http的安全数据传输。可以说https就是http的升级版

HTTPS和HTTP的区别主要为以下四点:

一、https协议需要到ca申请证书,一般免费证书很少,需要交费。

二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

apache与nginx的区别

nginx

  1. epoll 异步非阻塞
  2. nginx在开启时,会生成一个master进程,然后,master进程会fork多个worker子进程,最后每个用户的请求由worker的子线程处理。
  3. 可以配置nginx的upstream实现nginx的反向代理;nginx 本身就是一个反向代理服务器,而且可以作为非常优秀的邮件代理服务器。
  4. 支持7层负载均衡,可做为负载均衡器。
  5. 静态文件、反向代理、前端缓存等处理方便;nginx 处理静态文件好,静态处理性能比 apache 高3倍以上
  6. 支持高并发连接,每秒最多的并发连接请求理论可以达到 50000 个
  7. nginx 配置简洁,正则配置让很多事情变得简单,而且改完配置能使用 -t 测试配置有没有问题,apache 配置复杂 ,重启的时候发现配置出错了,会很崩溃
  8. 用线程处理用户请求,而线程是共享内存的,只需要开启少量进程,多个线程就可以共享进程的内存,占用内存小,轻量级,采用 C 进行编写,同样的 web 服务,会占用更少的内存及资源;
  9. 一个进程死掉时,会影响到多个用户的使用,稳定性差
  10. 即使运行数个月也不需要重新启动,还能够不间断服务的情况下进行软件版本的升级
  11. 社区活跃,各种高性能模块出品迅速

apache

  1. apache 的 rewrite 比 nginx 强大,在 rewrite 频繁的情况下,用 apache
  2. 组件比nginx多
  3. 一个连接对应一个进程
  4. 当用户请求过多时,开启的进程较多,占用内存大,每秒最多的并发连接请求最多不超过 3000 个
  5. 一个进程死掉时,不会影响其他的用户;apache 超稳定
  6. apache 发展到现在,模块超多,基本想到的都可以找到
  7. apache 更为成熟,少 bug ,nginx 的 bug 相对较多
  8. apache 在处理动态请求有优势,nginx 在这方面是鸡肋,一般动态请求要 apache 去做,nginx 适合静态和反向。
  9. apache 仍然是目前的主流,拥有丰富的特性,成熟的技术和开发社区

总结:

核心区别在于nginx是异步的,多连接可对应一个进程,而apache是一个连接对应一个进程,同步多进程。

相关文章:

ASCII、Unicode、GBK和UTF-8字符编码的区别联系

一直对编码这块晕晕乎乎&#xff0c;今天终于看到一篇写的很清楚也很风趣的文章&#xff0c;转过来mark一下。 很久很久以前&#xff0c;有一群人&#xff0c;他们决定用8个可以开合的晶体管来组合成不同的状态&#xff0c;以表示世界上的万物。他们看到8个开关状态是好的&…

【iOS】快速集成轮播控件

自己写的一个轮播控件&#xff0c;初始化后只要实现两个数据源方法&#xff0c;几行代码就能快速集成&#xff0c;支持本地图片和网络图片&#xff0c;支持点击事件&#xff0c;可定制播放速度、指示器颜色/位置、默认加载图等&#xff0c;效果&#xff1a; 1.下载地址&#xf…

Hibernate中get方法和load方法的区别

一、get和load方法都是根据id去获得对应数据的&#xff0c;但是获得机制不同&#xff1a;如果使用get方法&#xff0c;hibernate会去确认该id对应的数据是否存在&#xff0c;它首先会去session中去查询(session缓存其实就hibernate的一级缓存)&#xff0c;如果没有&#xff0c;…

DNS高速缓存

DNS相关资料&#xff1a; 1.什么是DNS DNS&#xff08;Domain Name System域名系统&#xff09; 是互联网上存储域名和ip映射关系的一个分布式数据库&#xff0c;它负责把域名转换成ip地址&#xff0c;或ip地址转换为域名。DNS运行于TCP/UDP的53端口上。 2.什么是高速…

将时间改为显示:几天前,几小时前,或者几分钟前

&#xff08;原博客地址&#xff1a;http://blog.csdn.net/kenhins/article/details/38010811&#xff09; 方法一&#xff1a; 个人做法是保存时间戳&#xff0c;然后在前端用jq插件做转换&#xff0c;比如 smart-time-ago ----------------------------------------------- 方…

支持placeholder和自适配高度的TextView控件

一.应用于项目的效果如下&#xff1a; 二.使用方法&#xff1a; 1.导入JXTextView.h头文件 2.初始化,并添加到view中&#xff1a; JXTextView *textView [[JXTextView alloc] initWithFrame:CGRectMake(10, 10, 200, 30)];textView.placeholder "请输入内容";tex…

ZOJ 3735 dp

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode3735 好久没做DP题了&#xff0c;一开始没理解题目里的C(M,3)是干什么&#xff0c;原来就是组合&#xff0c;C M 取3&#xff0c;就等于n*&#xff08;n-1&#xff09;*&#xff08;n-2&#xff09;/6;题目里还有…

haproxy实现高可用及负载均衡

Haproxy简介&#xff1a; Haproxy是一个使用c语言编写的自由开发源代码软件&#xff0c;它提供高可用性、负载均衡、以及基于http和tcp的应用程序代理。Haproxy特别使用于那些负载特别大的web站点。Haproxy运行在当前的硬件上&#xff0c;完全可以支持数以万计的并发连接&#…

Apache转发到Tomcat

#vi /etc/httpd/conf/httpd.conf 添加下面配置 NameVirtualHost *:80 <VirtualHost *:80>ProxyPreserveHost OnServerName www.域名.comProxyPass / http://www.域名.com:8080/system/ErrorLog logs/error_logCustomLog logs/access_log common</VirtualHost> 作者…

.net基础问题

string sqlstr "select BranchCode,BranchName from t_sys_Branch where Jglx_DataDm{0} and IsVisible1"; sqlstr string.Format(sqlstr, departType); 上述代码运行之后 sqlstr"select BranchCode,BranchName from t_sys_Branch where Jglx_DataDmdepartTyp…

【iOS】NSDate分类,获得中国农历

1.说明&#xff1a; 参考网上代码写的一个分类&#xff0c;只需一句代码就可得到NSDate对象所对应的中国农历、星期。 2.使用方法&#xff1a; &#xff08;1&#xff09;导入分类头文件&#xff1a; #import "NSDateChineseDate.h"&#xff08;2&#xff09;NSDat…

LVS_NAT实现负载均衡

简介&#xff1a; 基于NAT机制实现。当用户请求到达director之后&#xff0c;director将请求报文的目标地址(即VIP)改成选定的realserver地址&#xff0c;同时将报文的目标端口也改成选定的realserver的相应端口&#xff0c;最后将报文请求发送到指定的realserver&#xff1b;…

自定义Push和Pop过渡动画

一、效果和源码 本文介绍如何实现一个NavigationController的自定义Push和Pop过渡动画&#xff0c;运行效果如下&#xff1a; 源码&#xff1a;https://github.com/dolacmeng/TransitionDemo 或http://download.csdn.net/detail/dolacmeng/9572384二、准备工作 首先&#xff0…

centos 安装 mysql 5.7

一&#xff0c;wget http://dev.mysql.com/get/mysql57-community-release-el6-8.noarch.rpm 二&#xff0c;yum localinstall mysql57-community-release-el6-8.noarch.rpm 三&#xff0c;yum install mysql-server 四&#xff0c;mysqld --initialize --usermysql 五&#xf…

c语言:婚礼上的谎言

/* 三对新人参加婚礼&#xff0c;三位新郎A,B,C,三位新娘X,Y,Z。 有人想知道谁与谁结婚&#xff0c;于是就问他们&#xff1a; A说他将和X结婚&#xff1b; X说他的未婚夫是C&#xff1b; C说他将和Z结婚。 这人时候知道他们都在说谎。编程求谁与谁结婚&#xff01; */ /* 思路…

redis主从复制、高可用和集群

redis简介&#xff1a; redis是一个key-value存储系统.和Memcached类似&#xff0c;它支持存储的value类型相对更多&#xff0c;包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hashs&#xff08;哈希类型&#xff09;;这些数据类型都支持push/pop、…

对学习编译原理的看法

我认为编译原理这本书是一门与代码做斗争的课程&#xff0c;学习编译原理能够追寻程序设计语言的本质&#xff0c;了解计算机各种语言编译的原理。学习了编译原理能够更加深入的了解计算机各种高级语言使用的原理&#xff0c;能使自己更加容易更加好的学习好程序语言&#xff0…

iOS提示气泡,带动画

1.效果如图&#xff1a; 从项目中抠出来的&#xff0c;做了简单的封装。 2.用法&#xff1a; //顶部提示HYNoticeView *noticeTop [[HYNoticeView alloc] initWithFrame:CGRectMake(50, 66, 250, 40) text:"这里可以查询全城婚礼人的档期哦&#xff01;" position:…

GIt/Github常用命令

1&#xff09;git init:初始化本地仓库 2&#xff09;创建文件&#xff1a;touch read.txt 3&#xff09;当操作本地的文件时&#xff0c;使用常用的命令&#xff0c;如&#xff08;mv&#xff0c;ls。。&#xff09;就可以操作&#xff0c;当操作暂存区的文件时需要在命令前家…

python练习题(python之“求一个数的阶乘并求结果中从后向前数第一个不为0(零)的数” 等)

实验环境&#xff1a;python2.7 题目1&#xff1a;python之“求一个数的阶乘并求结果中从后向前数第一个不为0(零)的数”程序&#xff1a; import math def factorial(n): #定义一个函数&#xff0c;返回一个数的阶乘 if n0: return 1 else: sumn*factorial(n-…

【动画1】UIView动画

讲一下动画。将分为以下5篇博客。 一&#xff09;UIView动画 二&#xff09;Layer动画 三&#xff09;3D动画 四&#xff09;转场动画 五&#xff09;第三方动画框架 相关代码&#xff1a;https://github.com/dolacmeng/AnimationDemo 参考资料&#xff1a;iOS Animation…

【python】解压文件

参考&#xff1a;http://essen.iteye.com/blog/1941489 tarfile模块 具体使用方法&#xff1a; https://docs.python.org/2/library/tarfile.html 例子&#xff1a;一次性解压所有文件 import tarfilet tarfile.open("abc.tgz", "r:gz")t.extractall(path…

JS设计模式——3.封装与信息隐藏

封装、信息隐藏与接口的关系 信息隐藏是目的&#xff0c;封装是手段。 接口提供了一份记载着可供公共访问的方法的契约。它定义了两个对象间可以具有的关系。只要接口不变&#xff0c;这个关系的双方都是可以替换的。 一个理想的软件系统应该为所有类定义接口。 创建对象的基本…

nginx源码编译、负载均衡及模块的扩展

1、nginx源码编译 实验环境&#xff1a; iptables和selinux关闭 redhat6.5 nginx&#xff1a;test1: 172.25.1.11 [roottest1 ~]# ls nginx-1.14.0.tar.gz [roottest1 ~]# tar zxf nginx-1.14.0.tar.gz [roottest1 ~]# useradd -s /sbin/nologin nginx [roottest1 ~]# i…

LinkedHashMap and LinkedHashSet

LinkedHashMap实现了Map接口&#xff0c;是HashMap的直接子类&#xff0c;它同时满足HashMap和linked list的某些特性。可将LinkedHashMap看作采用linked list增强的HashMap。 LinkedHashMap在HashMap的基础上&#xff0c;采用双向链表&#xff08;doubly-linked list&#xff…

Windows Phone开发(19):三维透视效果

Windows Phone开发&#xff08;19&#xff09;&#xff1a;三维透视效果 原文:Windows Phone开发&#xff08;19&#xff09;&#xff1a;三维透视效果 三维效果也可以叫透视效果&#xff0c;所以&#xff0c;我干脆叫三维透视效果。理论知识少讲&#xff0c;直接用例开场吧&am…

【动画2】CALayer动画

一&#xff09;UIView动画 二&#xff09;CoreAnimation动画 前言&#xff1a;上一篇已经介绍了UIKit给我们封装好的UIView动画的使用&#xff0c;UIKit动画是建立在CoreAnimation动画之上的&#xff0c;CoreAnimation是直接作用于CALayer上而非UIView。一、CoreAnimation动画…

nginx+tomcat+memcache实现负载均衡、session共享

实验架构图&#xff1a; Table of Contents 1、配置tomcat 2、安装memcache 3、查看tomcat和memcache是否配置好 4、nginx实现负载均衡&#xff1a; 5、客户端进行测试&#xff1a; 6、验证结论&#xff1a; 7、总结&#xff1a; 实验环境&#xff1a; linux redhat6.…

(转)二叉树系列面试问题

转自 &#xff1a;http://blog.csdn.net/luckyxiaoqiang/article/details/7518888/ 版权所有&#xff0c;转载请注明出处&#xff0c;谢谢&#xff01;http://blog.csdn.net/walkinginthewind/article/details/7518888 树是一种比较重要的数据结构&#xff0c;尤其是二叉树。二…

百度UEditor开发案例(JSP)

本案例的开发环境&#xff1a;MyEclipsetomcatjdk 本案例的开发内容&#xff1a;用百度编辑器发布新闻&#xff08;UEditor的初始化开发部署&#xff09;编辑已发过的新闻&#xff08;UEditor的应用——编辑旧文章&#xff09;上传附件、图片等 由于百度编辑器强大的功能&a…