Apache的基本操作

安装

yum install httpd

启动

service httpd start 

在浏览器中输入以下Ip 发现无法访问

http://192.168.1.109/

输入以下命令进行网络统计

 netstat -anpl | grep 'http'

发现此时80端口和httpd都已经启动了,这时候只需要把防火墙关闭即可

 service firewalld stop

再次刷新页面,启动成功  

停止  

service httpd stop

Apache的虚拟主机配置及伪静态操作 

虚拟主机一般在配置多个域名的时候才会使用,比如一个服务器上部署多个网站,保证每个域名访问的内容和源代码是不一样的。

进入httpd目录

cd /etc/httpd/

ls

打开conf/httpd.conf

cd conf 

vi httpd.conf
  • DocumentRoot "/var/www/html"  表示文件根目录的路径(代码目录都是放在这里的),配置虚拟主机的时候我们可以自己指定代码目录
  • port 80 指的是监听的端口是80

配置虚拟主机 

<VirtualHost *:80>
ServerName www.zhangbiao.com
DocumentRoot /data/www
</VirtualHost>

创建/data/www 文件 ,因为把跟文件的目录指定到了/data/www

sudo mkdir -p  /data/www

  

在data/www 目录下创建index.html 文件

cd /data/www

vi index.html  

输入以下内容

<h1> hello world </h1>

重启httpd服务

service httpd restart

配置 hosts  linux hosts 路径  /etc/hosts   windos hosts路径  C:\Windows\System32\drivers\etc

192.168.1.109 www.zhangbiao.com

在浏览器输入

www.zhangbiao.com

发现页面显示的并不是我们输入的 hello world

查看log 日志

cd /etc/httpd/logs/
ls -al

查看访问日志

tail -f access_log

查看错误日志

tail -f error_log

在浏览器访问

www.zhangbiao.com

错误日志中出现以下提示信息

vi  /etc/httpd/conf/httpd.conf

在上面配置虚拟主机的代码段添加以下信息

<VirtualHost *:80>
ServerName www.zhangbiao.com
DocumentRoot /data/www
<Directory "/data/www">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

再次刷新页面

需要注意的是如果不能访问请进行以下检查 

DocumentRoot 和 Directory 中的字符串必须相等

data , www 必须是可执行的权限 755

selinux的问题 ,你可以把你的目录进行一下selinux权限设置

sudo setenforce 0

这条命令只是临时的,如果想要永久有效可以修改其配置文件

vi /etc/selinux/config

把 SELINUX=disabled

配置多个虚拟主机

只需要照着上面配置一个虚拟主机进行以下配置即可,在/etc/httpd/conf/httpd.cof

<VirtualHost *:80>
ServerName www.zhangbiao.com
DocumentRoot /data/www
<Directory "/data/www">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost> <VirtualHost *:80>
ServerName www.zhangbiao1.com
DocumentRoot /data/www1
<Directory "/data/www1">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

在创建 /data/www1目录再起www1下创建index.html即可

Apach伪静态

伪静态是基于 rewrite 实现的

在 /etc/httpd/conf/httpd.cof 添加以下配置 

LoadModule rewrite_module modules/rewrite.so

<VirtualHost *:80>
ServerName www.zhangbiao.com
DocumentRoot /data/www
<Directory "/data/www">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*).htmp$ index.html
</IfModule>
</Directory>
</VirtualHost>

重启服务

service httpd restart

访问已 htmp结尾的都会转到index.html文件

 http://www.zhangbiao.com/1.htmp

Nginx的基本操作

安装

yum install nginx
发现无法安装成功

需要安装 Nginx 源

sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

安装该rpm后,我们就能在/etc/yum.repos.d/ 目录中看到一个名为nginx.repo 的文件

再次安装

yum install nginx

启动

service nginx start

访问

http://192.168.1.109/

停止

service nginx stop

重载,一般都有reload无负载的迁移,因为要用restart重新启动的时候,需要关闭程序在程序启动,需要一定的时间

service nginx reload

nginx 的配置文件存放在 /etc/nginx 下面

nginx 配置虚拟主机

打开 配置文件 nginx,conf

vi  /etc/nginx/nginx.conf  

可以看到会默认加载/etc/nginx/conf.d/ 下面已conf结尾的文件 

进入 /etc/nginx/conf.d/ 下面

cd  /etc/nginx/conf.d/ 

ls

查看 default.conf  文件

cat default.conf 

查看  /usr/share/nginx/html 下的文件

ll /usr/share/nginx/html

把default.conf 复制一份到zhang.conf

cp default.conf zhang.conf

内容如下

server {
listen 80;
server_name www.zhangbiao.com;
root /data/www;
index index.html index.htm; }

访问

http://www.zhangbiao.com/

nginx配置多个端口和域名访问

在zhangbiao.conf 中配置多监听一个端口和servername如下

server {
listen 80;
listen 9999;
server_name www.zhangbiao.com www.zhangtao.com;
root /data/www;
index index.html index.htm; }

配置hosts

 

重启nginx

service nginx restart

访问新增的端口

http://www.zhangbiao.com:9999

访问新填的域名

http://www.zhangtao.com/

 

Nginx 伪静态的实现

修改zhang.conf 增加location配置

server {
listen 80;
listen 9999;
server_name www.zhangbiao.com www.zhangtao.com;
root /data/www;
index index.html index.htm;
location / {
rewrite ^(.*)\.htmp$ /index.html;
} }

  

重启Nginx

service nginx restart

访问

http://www.zhangtao.com/1.htmp

 

Nginx 日志格式化

打开  /etc/nginx/nginx.conf

vi /etc/nginx/nginx.conf  

添加自定义的log_format 和修改access_log 关键字

    log_format  zhang  '$remote_addr - "$http_user_agent"';

    access_log  /var/log/nginx/access.log  zhang;

重写加载nginx

service nginx reload  

打开日志文件存储的路径

tail -f /var/log/nginx/access.log

访问

http://www.zhangbiao.com/

可以看到日志信息如下

 

 我们可以把不同的虚拟主机存储各自的 log 文件 ,在 /etc/nginx/conf.d/zhang.conf ,添加以下日志配置

access_log  /var/log/nginx/access_zhang.log zhang;

重启 Nginx 服务

service nginx reload

访问

http://www.zhangbiao.com/

这时在 /var/log/nginx 下多了 access_zhang.log 文件

更多的nginx log_formt 配置可以百度检索

nginx log_formt

Nginx 反向代理 和 负载均衡 

反向代理

访问  www.zhangbiao.com  进行反向代理的我的博客页面

进入 /etc/nginx/conf.d 目录

编辑 zhang.conf

upstream imooc_hosts{
server 118.89.106.129:80;
} server {
listen 80;
listen 9999;
server_name www.zhangbiao.com www.zhangtao.com;
root /data/www;
index index.html index.htm;
access_log /var/log/nginx/access_zhang.log zhang; location / {
#rewrite ^(.*)\.htmp$ /index.html;
proxy_set_header Host www.54php.cn;
proxy_pass http://118.89.106.129;
} }

重启

service nginx reload

访问

http://www.zhangbiao.com/

 负载均衡

主要作用是减少网站的压力,进行分流

访问同一个url 第一次是server1 返回的结果,第二次是server2返回的结果

进入 /etc/nginx/conf.d 目录

编辑 zhang.conf  加入以下配置

upstream zhang_hosts{
server 118.89.106.129:80;
server 192.168.1.109;
} server {
listen 80;
listen 9999;
server_name www.zhangbiao.com www.zhangtao.com;
root /data/www;
index index.html index.htm;
access_log /var/log/nginx/access_zhang.log zhang; location / {
#rewrite ^(.*)\.htmp$ /index.html;
proxy_set_header Host www.54php.cn;
proxy_pass http://zhang_hosts;
} }

扩展 配置weight 权重,访问5次server1 才切换到server2

upstream zhang_hosts{
server 118.89.106.129:80 weight=5;
server 192.168.1.109 weight=1;
}

重启

service nginx reload

访问

www.zhangbiao.com

 再次刷新

 Nginx 调试

有时我们对Nginx 配置出错的时候,我们可以逐行的进行调试找到错误出现的位置

Nginx 可以通过 return 关键字 返回请求的域名这个可以自己设置 ,返回成功即以上的代码没问题

在 /etc/nginx/conf.d/zhang.conf

添加以下代码

    add_header Content-Type "text/plain;charset=utf-8";
return 200 "$http_host";

访问

http://www.zhangbiao.com/

返回  

访问

http://www.zhangtao.com/

反向代理转向不同的机器,nginx 报 502 的错误

可以尝试输入以下命令

setsebool -P httpd_can_network_connect 1

  

Linux 典型应用之WebServer 安装和配置的更多相关文章

  1. Linux(Ubuntu)下MySQL的安装与配置

    转自:http://www.2cto.com/database/201401/273423.html 在Linux下MySQL的安装,我一直觉得挺麻烦的,因为之前安装时就是由于复杂的配置导致有点晕.今 ...

  2. Linux/CentOS环境下如何安装和配置PhantomJS工作环境

    PhantomJS 是一个基于WebKit的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, C ...

  3. Linux下Weblogic 11g R1安装和配置

    自己留着好好看看! 文章摘自 :http://blog.163.com/ng_0125@126/blog/static/170162360201311773235995/ 1.  安装前 1  确定w ...

  4. Linux搭建JDK、Tomcat安装及配置

    一.JDK安装及配置 1.JKD下载地址:http://pan.baidu.com/s/1i5NpImx 2.查看安装: rpm -qa | grep jdk 3.卸载:rpm -e --nodeps ...

  5. linux -- Ubuntuserver图形界面下安装、配置lampp、phpmyadmin

    PHP开发和服务器运行环境首选LAMP组合,即Linux+Apache+Mysql+Php/Perl/Python,能最优化服务器性能.如何在本地电脑Ubuntu 中安装和配置LAMP环境搭建?Ubu ...

  6. Linux 下 JDK + Eclipse + PyDev 安装与配置

    一:JDK / JRE 环境 Eclipse 是运行于Java虚拟机中的,所以必须先安装Java环境才能进行开发测试.JRE(Java Runtime Environment)是运行环境,JDK(Ja ...

  7. Linux CentOS 7下Memcached 安装与配置

    前言 本篇文章记录一下Linux CentOS 7中关于Memcached的安装与配置. 安装 安装memcached之前首先需要安装libevent,我这里用的版本是: •libevent-2.0. ...

  8. linux应用之bugfree的安装及配置

    Bugfree3.0.4 Linux环境安装指南 bugfree系统安装的前提是,配置LAMP环境(apache+mysql+php),下面以centos6.3系统为例介绍bugfree3.0.4的安 ...

  9. linux应用之nginx的安装及配置(centos)

    Ubuntu/CentOS 系统上安装与配置Nginx 一.在线安装: Ubuntu:sudo apt-get install nginx CentOS: sudo yum install nginx ...

随机推荐

  1. 利用Audacity软件分析ctf音频隐写

    分析音频得到摩斯电码 看波的宽度分辨长短音 比较细的就是短音,代表"." 比较粗的就是长音,代表"-" 中间的间隔就是" " 得到摩斯电码

  2. June. 20 2018, Week 25th. Wednesday

    Be brave. Take risks. Nothing can substitute experience. 要敢于冒险,你的经历是无可替代的. From Paulo Coelho. Each s ...

  3. python3编写网络爬虫15-Splash的使用

    Splash是一个JavaScript渲染服务 是一个带有HTTP API的轻量级浏览器 同时对接了python的Twisted 和QT库 利用它可以实现对动态渲染页面的抓取 功能介绍 1.异步方式处 ...

  4. Eclipse JVM terminated.exit code=13

    今天,在安装Nomad PIM时碰到这个问题,因为这个应用是基于32位的Eclipse平台开发的,而我的电脑是64位的Windows 7,当然安装的JDK也是64位的,于是报错. 搜索了网上,给了许多 ...

  5. 《Java大学教程》—第13章 程序包

    接下来,是第二学期的内容,也是相对深入的Java学习. 自测题:1.    在类的开发过程中,程序包的作用是什么?P321程序包是为了方便定位和部署类,还可以避免将来类之间出现名称冲突. 2.    ...

  6. Teradata超长数据会截断

    1.数据库版本 Teradata 15.10 2.测试案例: create multiset table test_stg ( col1 ) CHARACTER SET LATIN not null ...

  7. C#反射の反射接口

    C#反射の反射详解(点击跳转)C#反射の反射接口(点击跳转)C#反射反射泛型接口(点击跳转)C#反射の一个泛型反射实现的网络请求框架(点击跳转) 上一篇中叙述了反射的情况,下面主要讲一些反射的实际用途 ...

  8. Linux操作系统有什么吸引力,在程序员中这么受欢迎?

    Linux操作系统有什么吸引力,在程序员中这么受欢迎? 在过去的几十年里,操作系统已经取得了很大的进步.曾经由微软Windows或苹果MacOS主导的操作系统,如今已不再是常态.千禧年之后,随着人们对 ...

  9. SQLite的文件锁、并发与pager---(SQLite学习手册(锁和并发控制))

    一.概述: 在SQLite中,锁和并发控制机制都是由pager_module模块负责处理的,如ACID(Atomic, Consistent, Isolated, and Durable).在含有数据 ...

  10. redis加锁

    1. redis加锁分类 redis能用的的加锁命令分表是INCR.SETNX.SET2. 第一种锁命令INCR 这种加锁的思路是, key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 ...