安装配置Nginx

步骤一:构建Nginx服务器

      1)使用源码包安装nginx软件包

 
  1. [root@proxy ~]# yum -y install gcc make            #安装编译工具
  2. [root@proxy ~]# yum -y install pcre-devel            #正则表达式依赖包
  3. [root@proxy ~]# yum -y install openssl-devel        #SSL加密依赖包
  4. [root@proxy ~]# tar -xf nginx-1.22.1.tar.gz
  5. [root@proxy ~]# cd nginx-1.22.1
  6. [root@proxy nginx-1.22.1]# ./configure \
  7. --prefix=/usr/local/nginx \                #指定安装路径
  8. --user=nginx \                            #指定用户
  9. --group=nginx \                            #指定组
  10. --with-http_ssl_module                    #开启SSL加密功能
  11. [root@proxy nginx-1.22.1]# make            #编译
  12. [root@proxy nginx-1.22.1]# make install    #安装
  13. cd /usr/local/nginx/                    #切换目录
  14. ls /usr/local/nginx/                    #查看目录

注意:

conf 配置文件 sbin 主程序

html 网站页面 logs 日志

       2)nginx命令的用法

 
  1. [root@proxy nginx]# useradd -s /sbin/nologin nginx
  2. /usr/local/nginx/sbin/nginx                    #启动服务
  3. /usr/local/nginx/sbin/nginx -s stop            #关闭服务
  4. /usr/local/nginx/sbin/nginx -s reload        #重新加载配置文件
  5. /usr/local/nginx/sbin/nginx -V                #查看软件信息

ss命令可以查看系统中启动的端口信息,该命令常用选项如下:

-a显示所有端口的信息

-n以数字格式显示端口号

-t显示TCP连接的端口

-u显示UDP连接的端口

-l显示服务正在监听的端口信息,如httpd启动后,会一直监听80端口

-p显示监听端口的服务名称是什么(也就是程序名称)

nginx服务默认通过TCP 80端口监听客户端请求:

可以通过 ss -ntulp | grep nginx 命令来进行查看,是否启动Nginx.Nginx网页目录存在与nginx目录下的html下,一个以  .html   为扩展名的文件中

案例2:用户认证

问题

通过调整Nginx服务端配置,实现以下目标:

  1. 访问Web页面需要进行用户认证
  2. 用户名为:tom,密码为:123456

通过Nginx实现Web页面的认证,需要修改Nginx配置文件,在配置文件中添加auth语句实现用户认证。最后使用htpasswd命令创建用户及密码即可

步骤一:修改Nginx配置文件

1)修改/usr/local/nginx/conf/nginx.conf

 
  1. [root@proxy nginx]# vim /usr/local/nginx/conf/nginx.conf
  2. .. ..
  3. server {
  4. listen 80;
  5. server_name localhost;
  6. auth_basic "Input Password:";                        #认证提示符信息
  7. auth_basic_user_file "/usr/local/nginx/pass";        #认证的密码文件
  8. location / {
  9. root html;
  10. index index.html index.htm;
  11. }
  12. }

2)生成密码文件,创建用户及密码

使用htpasswd命令创建账户文件,需要确保系统中已经安装了httpd-tools。

 
 
  1. [root@proxy nginx]# yum -y install httpd-tools
  2. [root@proxy nginx]# htpasswd -c /usr/local/nginx/pass tom        #创建密码文件
  3. New password:
  4. Re-type new password:
  5. Adding password for user tom

3)重新加载配置

 
  1. [root@proxy nginx]# /usr/local/nginx/sbin/nginx -s reload    #重新加载配置文件    
  2. #请先确保nginx是启动状态,否则运行该命令会报错,报错信息如下:
  3. #[error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

2)追加账户

 
  1. htpasswd /usr/local/nginx/pass jerry     #追加用户,不使用-c选项
  2. New password:
  3. Re-type new password:
  4. Adding password for user jerry
  5. [root@proxy ~]# cat /usr/local/nginx/pass

通过这项操作可以实现,nginx的Web登录时实现的是加密登录,会出现一个登录页面

基于域名的虚拟主机

 The question

配置基于域名的虚拟主机,实现两个基于域名的虚拟主机,域名分别为www.a.com和www.b.com

Step

实现此案例需要按照如下步骤进行。

步骤一:修改配置文件

1)修改Nginx服务配置,添加相关虚拟主机配置如下

 
  1. [root@proxy nginx]# vim /usr/local/nginx/conf/nginx.conf
  2. http {
  3. .. ..
  4. server {
  5. listen 80;                                     #端口
  6. server_name www.b.com;                    #新虚拟主机定义域名
  7. location / {
  8. root html_b;                                    #指定网站根路径
  9. index index.html index.htm;            #默认页面
  10. }
  11. }
  12. server {
  13. listen 80;                                        #端口
  14. server_name www.a.com;                     #默认的虚拟主机,修改域名
  15. location / {
  16. root html;                                 #指定网站根路径
  17. index index.html index.htm;
  18. }
  19. }
  20. }

2)创建网站根目录及对应首页文件

 
  1. sbin/nginx -s reload #之后重新加载配置文件,服务必须是开启状态
  2. [root@proxy nginx]# mkdir html_b #创建b网站的目录
  3. echo "nginx-A~~~" > html/index.html #创建a网站测试页
  4. echo "nginx-B~~~" > html_b/index.html #创建b网站测试页
  5. vim /etc/hosts #修改hosts文件添加ip和域名的映射关系
  6. 192.168.99.5 www.a.com www.b.com
  7. curl www.a.com #检测a网站或b网站都可以看到页面

另外:

windows环境配置hosts文件

C:\Windows\System32\drivers\etc\hosts

右键---属性---安全---编辑---users---完全控制打钩

然后用文本打开hosts,在最后添加

192.168.99.5 www.a.com www.b.com

步骤三:其他类型的虚拟主机(选做)

1.基于端口的虚拟主机(参考模板)

 
  1. server {
  2. listen 8080;              #端口
  3. server_name www.a.com;         #域名
  4. ......
  5. }
  6. server {
  7. listen 8000; #端口
  8. server_name www.a.com; #域名
  9. .......
  10. }

2.基于IP的虚拟主机(参考模板)

 
  1. server {
  2. listen 192.168.88.5:80;          #IP地址与端口
  3. server_name www.a.com;         #域名
  4. ... ...
  5. }
  6. server {
  7. listen 192.168.99.5:80; #IP地址与端口
  8. server_name www.a.com;
  9. ... ...
  10. }

  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值