Nginx在Centos中的使用

Nginx在Centos中的使用

安装过程可以见博客:https://blog.csdn.net/qq_34039018/article/details/90373093

这里主要说一下配置过程:

我想要实现的是外网主机访问服务器,然后服务器将访问请求重定向到服务器中的虚拟机里面去。

参考博客:https://www.imooc.com/article/45030

比如说我的服务器公网ip是211.69.197.64,绑定的域名是www.zhangyaya.xyz。而我的项目部署在服务器的ubuntu虚拟机8000端口中,虚拟机的网络地址218.102.199.128,我想通过访问域名访问到虚拟机的218.102.199.128:8000地址。

我在腾讯云上申请了ssl证书,由于用的是Nginx服务器,所以使用针对Nginx的证书。

分别是.crt的公钥和.key的私钥。

通过命令whereis ngnix可以查看Nginx的安装位置,一般是/usr/local/nginx,打开nginx的conf文件夹,里面有nginx.conf配置文件。将.crt的公钥和.key的私钥复制到/conf文件夹下。

配置如下:

user  root;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
	listen 80;
        server_name  www.zhangyaya.xyz;
        location /mail/ {
            proxy_pass http://218.199.102.128:8000/;
        }
	location /xxx/ {
            proxy_pass http://www.baidu.com/;
        }

    }
	# HTTPS server
    #
    server {
        listen       443 ssl;
        server_name  www.zhangyaya.xyz;

        ssl_certificate      1_www.zhangyaya.xyz_bundle.crt;
        ssl_certificate_key  2_www.zhangyaya.xyz.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location /mails/ {
            proxy_pass http://218.199.102.128:8000/;
        }
	location /xxxs/ {
            proxy_pass https://www.baidu.com/;
        }
     }
}

解释:

说明下,上图应该是proxy_pass https://www.baidu.com/;  我图片中少了//,记得补上。

 

测试修改是否有语法错误:

#检测
sudo /usr/local/nginx/sbin/nginx -t

#停止
sudo /usr/local/nginx/sbin/nginx -s stop

#重新启动
sudo /usr/local/nginx/sbin/nginx -s reload

#启动
sudo /usr/local/nginx/sbin/nginx

效果测试:

https测试:

1. 测试mails:https://www.zhangyaya.xyz/mails/

由下图访问可以看到,https没有报证书无效或者不安全等错误,说明https配置正确。

2. 测试:https://www.zhangyaya.xyz/xxxs/

这个好像不知道什么原因,没能重定向成功,可能是百度不支持重定向啥的,具体原因不清楚,没深究。

 

 

2.http测试

2.1.mail测试 : https://www.zhangyaya.xyz/mail/

完成访问

 

2.2. xxx测试: https://www.zhangyaya.xyz/xxx/

直接跳转到百度

 

3.问题说明

3.1  方法配置conf文件确没有起效?

答:可能使配置错了地方,nginx.conf文件一般位于/usr/local/nginx/conf目录下,检查自己是否配置对了文件。

也可能是后台运行了好几个nginx,一般正常运行后,只有两个进程,用sudo lsof -i:80查看,把多余的杀掉,或者全部杀掉,再重新启动,如下图:

3.2 图片未重定向?

这里这是举了一个很简单的样例,便于理解。如果要重定向图片,需要使用通配符,这个资料很多,不再赘述。另外,证书去网上申请,都是免费的,大概10分钟就好了,我这个是在腾讯云申请的,不要用自己生成的,这样在谷歌浏览器访问的时候会显示证书不完全/无效,或者连接不安全等问题。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值